| ((tr(r, t) * P))(H) ⊦ r = null, ∃ t0, a, t1. t = branch(t0, a, t1) |
t = branch(t2, a0, t3), ((tr(r, t) * P))(H) ⊦ r = null, ∃ t0, a, t1. t = branch(t0, a, t1)
[Concretesimprules((Csimpgen(tree freely generated by leaf, branch;) Csimpseq( ⊦ tr(r, leaf) = (emp ∧ ⌜r = null⌝ )) Csimpseq( ⊦ ⌜false⌝ = false) Csimpseq( ⊦ (false ∧ P) = false) Csimpseq( ⊦ ((P0 ∧ P1) ∧ P2) = (P0 ∧ P1 ∧ P2)) Csimpseq( ⊦ (P0 ∧ P1) = (P1 ∧ P0)) Csimpseq( ⊦ false * P = false) Csimpseq( ⊦ (P0 * P1) * P2 = P0 * P1 * P2) Csimpseq( ⊦ P0 * P1 = P1 * P0) Csimpseq( ⊦ ¬ false(H))))]