| 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 |
⊦ H0 ≡ H1 ↔ H0 = H1
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 : ()], [EXTRATERMS : (H[r, mknode(r4, a0, r1)], H1)]]