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