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