| ((tr(r, branch(t2, a0, t3)) * P))(H) ⊦ r = null, ∃ t0, t1, a, r0, r1. branch(t2, a0, t3) = branch(t0, a, t1) ∧ ((r => mknode(r0, a, r1) * tr(r0, t0) * tr(r1, t1) * P))(H) |
⊦ tr(r, branch(t0, a, t1)) = _∃(λ r0, r1. r => mknode(r0, a, r1) * tr(r0, t0) * tr(r1, t1))
((_∃(λ r0, r1. r => mknode(r0, a0, r1) * tr(r0, t2) * tr(r1, t3)) * P))(H) ⊦ r = null, ∃ t0, t1, a, r0, r1. branch(t2, a0, t3) = branch(t0, a, t1) ∧ ((r => mknode(r0, a, r1) * tr(r0, t0) * tr(r1, t1) * P))(H)
Used terms: t3, a0, t2, r