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