| 〈RED(t; t'): kappa0 + 1 〉 t' = t1, ∀ t0, t2. ¬ 〈RED(t0; t'): kappa0 〉 t' = t2 ∨ t0 =>* t2 ∧ irred(t2), ¬ t =>* t1 ∨ ¬ irred(t1) ⊦ |
⊦
〈let tn = none in { RED1(t; tn): kappa0 ; if tn ≠ none then RED(tn .t; t0): kappa0 else t0 := t }〉 t0 = t1, ∀ t0, t2. ¬ 〈RED(t0; t'): kappa0 〉 t' = t2 ∨ t0 =>* t2 ∧ irred(t2), ¬ t =>* t1 ∨ ¬ irred(t1) ⊦
[[CONCRETESIMPRULES : ()]]