| fid ∈ sdt0.fids, ∀ str0. str0 ∈ sdt0[str, tree] → (∀ fid. fid ∈ sdt0[str, tree][str0].fids → (∃ p. p ∈ sdt0[str, tree][str0] ∧ sdt0[str, tree][str0][p] = fnode(fid))), ∀ sdt1, fid, md. # sdt1 < # sdt0[str, tree] → fid ∈ sdt1.fids ∧ (∀ str. str ∈ sdt1 → (∀ fid. fid ∈ sdt1[str].fids → (∃ p. p ∈ sdt1[str] ∧ sdt1[str][p] = fnode(fid)))) → (∃ p. p ∈ dnode(md, sdt1) ∧ dnode(md, sdt1)[p] = fnode(fid)) ⊦ str ∈ sdt0, ∃ p. p ∈ dnode(md, sdt0[str, tree]) ∧ dnode(md, sdt0[str, tree])[p] = fnode(fid) |
fid ∈ sdt0.fids, ∀ str0. str0 ∈ sdt0[str, tree] → (∀ fid. fid ∈ sdt0[str, tree][str0].fids → (∃ p. p ∈ sdt0[str, tree][str0] ∧ sdt0[str, tree][str0][p] = fnode(fid))), ∀ sdt1, fid, md. # sdt1 < # sdt0[str, tree] → fid ∈ sdt1.fids ∧ (∀ str. str ∈ sdt1 → (∀ fid. fid ∈ sdt1[str].fids → (∃ p. p ∈ sdt1[str] ∧ sdt1[str][p] = fnode(fid)))) → (∃ p. p ∈ dnode(md, sdt1) ∧ dnode(md, sdt1)[p] = fnode(fid)) ⊦ str ∈ sdt0, ∃ p. p ∈ dnode(md, sdt0[str, tree]) ∧ dnode(md, sdt0[str, tree])[p] = fnode(fid), fid ∈ sdt0.fids ∧ (∀ str. str ∈ sdt0 → (∀ fid. fid ∈ sdt0[str].fids → (∃ p. p ∈ sdt0[str] ∧ sdt0[str][p] = fnode(fid))))
fid ∈ sdt0.fids, ∀ str0. str0 ∈ sdt0[str, tree] → (∀ fid. fid ∈ sdt0[str, tree][str0].fids → (∃ p. p ∈ sdt0[str, tree][str0] ∧ sdt0[str, tree][str0][p] = fnode(fid))), ∃ p. p ∈ dnode(md, sdt0) ∧ dnode(md, sdt0)[p] = fnode(fid), ∀ sdt1, fid, md. # sdt1 < # sdt0[str, tree] → fid ∈ sdt1.fids ∧ (∀ str. str ∈ sdt1 → (∀ fid. fid ∈ sdt1[str].fids → (∃ p. p ∈ sdt1[str] ∧ sdt1[str][p] = fnode(fid)))) → (∃ p. p ∈ dnode(md, sdt1) ∧ dnode(md, sdt1)[p] = fnode(fid)) ⊦ str ∈ sdt0, ∃ p. p ∈ dnode(md, sdt0[str, tree]) ∧ dnode(md, sdt0[str, tree])[p] = fnode(fid)
Used simplifier rules: ⊦ ¬ str ∈ sdt → # sdt[str, tree] = # sdt + 1; (s)% ⊦ m < n + 1 ↔ ¬ n < m; (s)% ⊦ ¬ n < n; (s)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic[directory-tree-inst]%c: ⊦ m + n = n + m; from specification nat-basic[directory-tree-inst] Used terms: sdt0, fid, md