| 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) ⊦ #n sdt0[str] < #n dnode(md0, sdt0), Ptree(sdt0[str]), Ptree(dnode(md0, sdt0)) |
⊦ #n dnode(md, sdt) = 1 + #n sdt
#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))
Used simplifier rules: count-dnode: ⊦ #n dnode(md, sdt) = 1 + #n sdt;% ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic[directory-tree-inst]%c: ⊦ m + n = n + m; from specification nat-basic[directory-tree-inst]%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic[directory-tree-inst]% ⊦ m < n + 1 ↔ ¬ n < m; (s)