| p0 ∈ sdt[str], str ∈ sdt, ∀ tree, q. p0 ∈ tree → (q ∈ tree -- p0 ↔ ¬ p0 ⊑ q ∧ q ∈ tree) ∨ p0 = ε ⊦ str0 ' ∈ dnode(md, sdt) -- (str ' + p0) ∧ q0 ∈ (dnode(md, sdt) -- (str ' + p0))[str0 '] ↔ ¬ str ' + p0 ⊑ str0 ' + q0 ∧ str0 ∈ sdt ∧ q0 ∈ sdt[str0], p0 = ε |
p ≠ ε ⊦ str ∈ sdt → dnode(md, sdt) -- (str ' + p) = dnode(md, sdt[str, sdt[str] -- p])
⊦ str ' ∈ dnode(md, sdt) ↔ str ∈ sdt
str ∈ sdt, p0 ∈ sdt[str], ∀ tree, q. p0 ∈ tree → (q ∈ tree -- p0 ↔ ¬ p0 ⊑ q ∧ q ∈ tree) ⊦ str0 ∈ sdt[str, sdt[str] -- p0] ∧ q0 ∈ dnode(md, sdt[str, sdt[str] -- p0])[str0 '] ↔ ¬ str ' + p0 ⊑ str0 ' + q0 ∧ str0 ∈ sdt ∧ q0 ∈ sdt[str0], p0 = ε
Used simplifier rules: del-recin: p ≠ ε ⊦ str ∈ sdt → dnode(md, sdt) -- (str ' + p) = dnode(md, sdt[str, sdt[str] -- p]);%one-ind: ⊦ str ' ∈ dnode(md, sdt) ↔ str ∈ sdt;%a: ⊦ (p + p0) + p1 = p + p0 + p1; from specification list[path]