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