| ∀ n0. n0 < 1 → (true → 〈RED(ks(n0); t)〉 ((even(n0) → t = K) ∧ (odd(n0) → t = K _ K))) ⊦ 〈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) } }〉 〈n := 1 ; tn0 := tn ; if tn0 ≠ none then tn0 := some(tn0 .t _ ks(n) .2) else { RED1(K; tn0) ; if tn0 ≠ none then tn0 := some(ks(n) .1 _ tn0 .t) }〉 〈if tn0 ≠ none then RED(tn0 .t; t0) else t0 := ks(n)〉 ((even(n) → t0 = K) ∧ (odd(n) → t0 = K _ K)) |
⊦
∀ n0. n0 < 1 → (true → 〈RED(ks(n0); t)〉 ((even(n0) → t = K) ∧ (odd(n0) → t = K _ K))) ⊦ 〈if ap(K) ∧ ap(K .1) ∧ K .1 .1 = K ∧ value(K .1 .2) ∧ value(K .2) then tn0 := some(K .1 .2) else if ap(K) ∧ ap(K .1) ∧ ap(K .1 .1) ∧ K .1 .1 .1 = S then let v1 = K .1 .1 .2, v2 = K .1 .2, v3 = K .2 in if value(v1) ∧ value(v2) ∧ value(v3) then tn0 := some(v1 _ v3 _ (v2 _ v3)) else tn0 := none else tn0 := none〉 〈tn := tn0 ; 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) } }〉 〈n := 1 ; tn0 := tn ; if tn0 ≠ none then tn0 := some(tn0 .t _ ks(n) .2) else { RED1(K; tn0) ; if tn0 ≠ none then tn0 := some(ks(n) .1 _ tn0 .t) }〉 〈if tn0 ≠ none then RED(tn0 .t; t0) else t0 := ks(n)〉 ((even(n) → t0 = K) ∧ (odd(n) → t0 = K _ K))
[[CONCRETESIMPRULES : ()]]