| H[r0] .right = H1[r0] .right ∧ H[r0] .val = H1[r0] .val, 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 ⊦ r0 = null |
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ( r => mknode(r0, a, r1) * tr(r0, t0) * tr(r1, t1) * P0 * P1 )(H) → ( ¬ ( tr(r, branch(t0, a, t1)) * P0 * true )(H) ↔ false)], [CSIMPSEQ : ⊦ mknode(r, a, r0) .val = a], [CSIMPSEQ : ⊦ mknode(r, a, r0) .right = r0], [CSIMPSEQ : ⊦ (r => nd * P)(H) → H[r] = nd], [CSIMPSEQ : ⊦ P0 * P1 = P1 * P0], [CSIMPSEQ : ⊦ (P0 * P1) * P2 = P0 * P1 * P2])]]