| 〈RED1(ks(n0); tn)〉 tn = tn0, tn0 = none → n0 ≤ 1, tn0 ≠ none → ¬ n0 ≤ 1 ∧ tn0 = some(ks(n0 - 2)), ¬ (ap(ks(n0) _ K) ∧ ap((ks(n0) _ K) .1) ∧ (ks(n0) _ K) .1 .1 = K ∧ value((ks(n0) _ K) .1 .2) ∧ value((ks(n0) _ K) .2)), ¬ (ap(ks(n0) _ K) ∧ ap((ks(n0) _ K) .1) ∧ ap((ks(n0) _ K) .1 .1) ∧ (ks(n0) _ K) .1 .1 .1 = S), tn = none ⊦ 〈RED1((ks(n0) _ K) .1; tn)〉 〈if tn ≠ none then tn := some(tn .t _ (ks(n0) _ K) .2) else if value((ks(n0) _ K) .1) then { RED1((ks(n0) _ K) .2; tn) ; if tn ≠ none then tn := some((ks(n0) _ K) .1 _ tn .t) }〉 ((tn = none → n0 = 0) ∧ (tn ≠ none → n0 ≠ 0 ∧ tn = some(ks(n0 + 1 - 2)))) |
〈RED1(ks(n0); tn)〉 tn = tn0, tn0 = none → n0 ≤ 1, tn0 ≠ none → ¬ n0 ≤ 1 ∧ tn0 = some(ks(n0 - 2)), ¬ (ap(ks(n0)) ∧ ks(n0) .1 = K ∧ value(ks(n0) .2)), ¬ (ap(ks(n0)) ∧ ap(ks(n0) .1) ∧ ks(n0) .1 .1 = S) ⊦ 〈RED1(ks(n0); tn)〉 〈if tn ≠ none then tn := some(tn .t _ K) else if value(ks(n0)) then { RED1(K; tn) ; if tn ≠ none then tn := some(ks(n0) _ tn .t) }〉 ((tn = none → n0 = 0) ∧ (tn ≠ none → n0 ≠ 0 ∧ tn = some(ks(n0 + 1 - 2))))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ value(K)], [CSIMPSEQ : ⊦ (t _ t0) .2 = t0], [CSIMPSEQ : ⊦ (t _ t0) .1 = t], [CSIMPSEQ : ⊦ ap(t _ t0)])]]