| 〈if m0 = 0 then abort else if ap(t1) ∧ ap(t1 .1) ∧ t1 .1 .1 = K ∧ value(t1 .1 .2) ∧ value(t1 .2) then tn0 := some(t1 .1 .2) else if ap(t1) ∧ ap(t1 .1) ∧ ap(t1 .1 .1) ∧ t1 .1 .1 .1 = S then let v1 = t1 .1 .1 .2, v2 = t1 .1 .2, v3 = t1 .2 in if value(v1) ∧ value(v2) ∧ value(v3) then tn0 := some(v1 _ v3 _ (v2 _ v3)) else tn0 := none else tn0 := none〉 〈tn1 := tn0 ; if tn1 = none then { RED1(S _ (S _ K _ K) _ (S _ K _ K); tn1): m0 ; if tn1 ≠ none then tn1 := some(tn1 .t _ (S _ (S _ K _ K) _ (S _ K _ K))) else { RED1(S _ (S _ K _ K) _ (S _ K _ K); tn1): m0 ; if tn1 ≠ none then tn1 := some(S _ (S _ K _ K) _ (S _ K _ K) _ tn1 .t) } }〉 〈if tn1 ≠ none then RED(tn1 .t; t3): m0 + 1 else t3 := S _ (S _ K _ K) _ (S _ K _ K) _ (S _ (S _ K _ K) _ (S _ K _ K))〉 t3 = t, ∀ kappa0, t. kappa0 < (m0 + 1) + 1 → (〈RED(S _ (S _ K _ K) _ (S _ K _ K) _ (S _ (S _ K _ K) _ (S _ K _ K)); t3): kappa0 〉 t3 = t → false), tn0 = tn1 ∧ t1 = S _ (S _ K _ K) _ (S _ K _ K) _ (S _ (S _ K _ K) _ (S _ K _ K)) ⊦ |
〈if m0 = 0 then abort else let v1 = S _ K _ K, v2 = S _ K _ K, v3 = S _ (S _ K _ K) _ (S _ K _ K) in if value(v1) ∧ value(v2) ∧ value(v3) then tn0 := some(v1 _ v3 _ (v2 _ v3)) else tn0 := none〉 〈tn1 := tn0 ; if tn1 = none then { RED1(S _ (S _ K _ K) _ (S _ K _ K); tn1): m0 ; if tn1 ≠ none then tn1 := some(tn1 .t _ (S _ (S _ K _ K) _ (S _ K _ K))) else { RED1(S _ (S _ K _ K) _ (S _ K _ K); tn1): m0 ; if tn1 ≠ none then tn1 := some(S _ (S _ K _ K) _ (S _ K _ K) _ tn1 .t) } }〉 〈if tn1 ≠ none then RED(tn1 .t; t3): m0 + 1 else t3 := S _ (S _ K _ K) _ (S _ K _ K) _ (S _ (S _ K _ K) _ (S _ K _ K))〉 t3 = t, ∀ kappa0, t. kappa0 < (m0 + 1) + 1 → (〈RED(S _ (S _ K _ K) _ (S _ K _ K) _ (S _ (S _ K _ K) _ (S _ K _ K)); t3): kappa0 〉 t3 = t → false) ⊦
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ t _ t0 ≠ K], [CSIMPSEQ : ⊦ ap(t _ t0)], [CSIMPSEQ : ⊦ (t _ t0) .2 = t0], [CSIMPSEQ : ⊦ (t _ t0) .1 = t])]]