| ad.size = # ad.entries, (((ino => ad * abs(sdt, ad.entries)) * D0))(dirs), ((abs(tree1, ino) * D1))(dirs), ∀ ino0. ⌜ino0⌝ ∈ sdt.fids → ino0 ∈ files, ∀ ino. ¬ ino ∈ files ∨ ¬ ino ∈ dirs, ∀ ino. ⌜ino⌝ ∈ tree1.fids → ino ∈ files ⊦ tree1.dir? ∧ ad.meta = tree1.meta |
ad = mkdir(m, md, m0, m1, entries), m = # entries, ((abs(tree1, ino) * D1))(dirs), (((ino => ad * abs(sdt, entries)) * D0))(dirs), ∀ ino. ⌜ino⌝ ∈ tree1.fids → ino ∈ files, ∀ ino. ¬ ino ∈ files ∨ ¬ ino ∈ dirs, ∀ ino0. ⌜ino0⌝ ∈ sdt.fids → ino0 ∈ files ⊦ tree1.dir? ∧ md = tree1.meta
Used simplifier rules: ⊦ ( ((m = ad.size ∧ md = ad.meta) ∧ m0 = ad.nlink) ∧ m1 = ad.nsubdirs) ∧ entries = ad.entries ↔ ad = mkdir(m, md, m0, m1, entries); (elim) Used terms: ad, m, md, m0, entries