| #n sdt0 < #n sdt0[str], str ∈ sdt0, ∀ md, sdt. (∀ str. str ∈ sdt → Ptree(sdt[str])) → Ptree(dnode(md, sdt)), ∀ fid. Ptree(fnode(fid)), ∀ tree0, Ptree. #n tree0 < #n dnode(md0, sdt0) → (∀ md, sdt. (∀ str. str ∈ sdt → Ptree(sdt[str])) → Ptree(dnode(md, sdt))) ∧ (∀ fid. Ptree(fnode(fid))) → Ptree(tree0) ⊦ Ptree(sdt0[str]), Ptree(dnode(md0, sdt0)) |
⊦ str ∈ sdt ↔ (∃ tree, sdt0. sdt = sdt0[str, tree] ∧ ¬ str ∈ sdt0)
⊦ ¬ str ∈ sdt → #n sdt[str, tree] = #n sdt + #n tree
Used simplifier rules: count-rec: ⊦ ¬ str ∈ sdt → #n sdt[str, tree] = #n sdt + #n tree;% ⊦ sdt[str, tree][str] = tree; (s)% ⊦ ¬ m + n < m; (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, str