| 〈if 1 + m = 0 then abort else { TOPRED(t1; tn1): (1 + m) -1 ; if tn1 = none ∧ ap(t1) then { RED1(t1 .1; tn1): (1 + m) -1 ; if tn1 ≠ none then tn1 := some(tn1 .t _ t1 .2) else if value(t1 .1) then { RED1(t1 .2; tn1): (1 + m) -1 ; if tn1 ≠ none then tn1 := some(t1 .1 _ tn1 .t) } } }〉 〈if tn1 ≠ none then RED(tn1 .t; t2): 1 + m else t2 := S _ (S _ K _ K) _ (S _ K _ K) _ (S _ K _ K _ (S _ (S _ K _ K) _ (S _ K _ K)))〉 t2 = t, ∀ kappa0, t. kappa0 < ((((m + 1) + 1) + 1) + 1) + 1 → (〈RED(S _ (S _ K _ K) _ (S _ K _ K) _ (S _ (S _ K _ K) _ (S _ K _ K)); t2): kappa0 〉 t2 = t → false), m ≠ 0, tn1 = tn0 ∧ t1 = S _ (S _ K _ K) _ (S _ K _ K) _ (S _ K _ K _ (S _ (S _ K _ K) _ (S _ K _ K))) ⊦ |
〈TOPRED(t1; tn1): (1 + m) -1 〉 〈if tn1 = none ∧ ap(t1) then { RED1(t1 .1; tn1): (1 + m) -1 ; if tn1 ≠ none then tn1 := some(tn1 .t _ t1 .2) else if value(t1 .1) then { RED1(t1 .2; tn1): (1 + m) -1 ; if tn1 ≠ none then tn1 := some(t1 .1 _ tn1 .t) } }〉 〈if tn1 ≠ none then RED(tn1 .t; t2): 1 + m else t2 := S _ (S _ K _ K) _ (S _ K _ K) _ (S _ K _ K _ (S _ (S _ K _ K) _ (S _ K _ K)))〉 t2 = t, ∀ kappa0, t. kappa0 < ((((m + 1) + 1) + 1) + 1) + 1 → (〈RED(S _ (S _ K _ K) _ (S _ K _ K) _ (S _ (S _ K _ K) _ (S _ K _ K)); t2): kappa0 〉 t2 = t → false), m ≠ 0, tn1 = tn0 ∧ t1 = S _ (S _ K _ K) _ (S _ K _ K) _ (S _ K _ K _ (S _ (S _ K _ K) _ (S _ K _ K))) ⊦
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ m + 1 ≠ 0], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ m + n = n + m])]]