| H[r0] = mknode(r2, a2, r4), H[r] = mknode(r0, a0, r1), H1 ≡ H[r, mknode(r4, a0, r1)], (r0 => mknode(null, a, r6) * tr(r1, t1) * tr(r6, t2) * r => mknode(r4, a0, r1) * P)(H1), r ∈ H, ¬ (tr(r, branch(t2, a0, t1)) * P * true)(H1) ∨ a2 ≠ a ⊦ H[r0] .right = H1[r0] .right ∧ H[r0] .val = H1[r0] .val, r0 = null |
r0 ∈ H1, H[r0] = mknode(r2, a2, r4), H[r] = mknode(r0, a0, r1), H1 ≡ H[r, mknode(r4, a0, r1)], (r0 => mknode(null, a, r6) * tr(r1, t1) * tr(r6, t2) * r => mknode(r4, a0, r1) * P)(H1), r ∈ H, ¬ (tr(r, branch(t2, a0, t1)) * P * true)(H1) ∨ a2 ≠ a ⊦ H[r0] .right = H1[r0] .right ∧ H[r0] .val = H1[r0] .val, r0 = null
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (P0 * P1) * P2 = P0 * P1 * P2], [CSIMPSEQ : ⊦ P0 * P1 = P1 * P0], [CSIMPSEQ : ⊦ (r => nd * P)(H) → r ∈ H])], [EXTRAFMAS : (r0 ∈ H1)]]