| tree[p0] = dnode(md, sdt), p0 ∈ tree, ∀ md0, sdt0, md, sdt, q, str, tree0. dnode(md0, sdt0)[p0] = dnode(md, sdt) ∧ p0 ∈ dnode(md0, sdt0) → (q ∈ dnode(md0, sdt0)[p0, dnode(md, sdt[str, tree0])] ↔ (p0 + str ' ⊑ q ⊃ restn(# p0, q.tail) ∈ tree0;q ∈ dnode(md0, sdt0))) ⊦ q0 ∈ tree[p0, dnode(md, sdt[str, tree0])] ↔ (p0 + str ' ⊑ q0 ⊃ restn(# p0, q0.tail) ∈ tree0;q0 ∈ tree), p0 = ε, str0 ∈ sdt1 |
tree[p0] = dnode(md, sdt), tree = dnode(md1, sdt2), p0 ∈ tree, ∀ md0, sdt0, md, sdt, q, str, tree0. dnode(md0, sdt0)[p0] = dnode(md, sdt) ∧ p0 ∈ dnode(md0, sdt0) → (q ∈ dnode(md0, sdt0)[p0, dnode(md, sdt[str, tree0])] ↔ (p0 + str ' ⊑ q ⊃ restn(# p0, q.tail) ∈ tree0;q ∈ dnode(md0, sdt0))) ⊦ q0 ∈ tree[p0, dnode(md, sdt[str, tree0])] ↔ (p0 + str ' ⊑ q0 ⊃ restn(# p0, q0.tail) ∈ tree0;q0 ∈ tree), p0 = ε, str0 ∈ sdt1
⊦ p ∈ fnode(fid) ↔ p = ε
Used simplifier rules: fnode-notin: ⊦ p ∈ fnode(fid) ↔ p = ε;%directory-tree, entries-tree generated by ∅, dnode, fnode, [ ];;