| sdt0[str][p0] = dnode(md0, sdt), p0 ∈ sdt0[str], ∀ md2, sdt1, md3, sdt2, q, md4. dnode(md2, sdt1)[p0] = dnode(md3, sdt2) ∧ p0 ∈ dnode(md2, sdt1) → (q ∈ dnode(md2, sdt1)[p0, dnode(md4, sdt2)] ↔ q ∈ dnode(md2, sdt1)), ∃ tree, sdt1. sdt0 = sdt1[str, tree] ∧ ¬ str ∈ sdt1 ⊦ q0 ∈ sdt0[str][p0, dnode(md1, sdt)] ↔ q0 ∈ sdt0[str], p0 = ε |
tree[p0] = dnode(md0, sdt), p0 ∈ tree, ∀ md2, sdt1, md3, sdt2, q, md4. dnode(md2, sdt1)[p0] = dnode(md3, sdt2) ∧ p0 ∈ dnode(md2, sdt1) → (q ∈ dnode(md2, sdt1)[p0, dnode(md4, sdt2)] ↔ q ∈ dnode(md2, sdt1)) ⊦ q0 ∈ tree[p0, dnode(md1, sdt)] ↔ q0 ∈ tree, p0 = ε, str ∈ sdt1
Used simplifier rules: ⊦ sdt[str, tree][str] = tree; (s)