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