| fs[⌜ino0⌝ ] = mkfile(md, (content.stream to m).buf), files1[ino0] = mkfile(m, md, # links(ino0, dirs0), content), tree0.dir?, dom of1 < ino, abs(tree0, ROOT_INO)(dirs0), afs-cons(dirs0, files1), afs-cons(dirs0, files1 \ orphans(dirs0, files1)), fids-cons(tree0, abs-files(files1), abs-of(of1)), of-cons(of1, dirs0, files1), of-cons(∅, dirs0, files1 \ orphans(dirs0, files1)), ⌜ino0⌝ ∈ fs, ino0 ∈ files1, ∀ ino. ⌜ino⌝ ∈ tree0.fids → ino ∈ files1 ⊦ # links(ino0, dirs0) = 0, links(ino0, dirs0) = ∅, mkfile(md, (content.stream to m).buf) = abs-files(files1 \ orphans(dirs0, files1))[⌜ino0⌝ ] |
⊦ ino ∈ files → abs-files(files)[⌜ino⌝ ] = mkfile(files[ino].meta, (files[ino].content.stream to files[ino].size).buf)
files1[ino0] = mkfile(m, md, # links(ino0, dirs0), content), fs[⌜ino0⌝ ] = mkfile(md, (content.stream to m).buf), tree0.dir?, dom of1 < ino, abs(tree0, ROOT_INO)(dirs0), afs-cons(dirs0, files1 \ orphans(dirs0, files1)), afs-cons(dirs0, files1), fids-cons(tree0, abs-files(files1), abs-of(of1)), of-cons(∅, dirs0, files1 \ orphans(dirs0, files1)), of-cons(of1, dirs0, files1), ino0 ∈ files1, ⌜ino0⌝ ∈ fs, ∀ ino. ⌜ino⌝ ∈ tree0.fids → ino ∈ files1 ⊦ # links(ino0, dirs0) = 0, links(ino0, dirs0) = ∅, mkfile(md, (content.stream to m).buf) = abs-files(files1 \ orphans(dirs0, files1))[⌜ino0⌝ ], ino0 ∈ files1 \ orphans(dirs0, files1)
Used simplifier rules: ⊦ ino ∈ files \ ns ↔ ino ∈ files ∧ ¬ ino ∈ ns; (s)% ⊦ ino ∈ files ∧ ¬ ino ∈ ns → (files \ ns)[ino] = files[ino]; (s)% ⊦ mkfile(m, md, m0, content).meta = md; (s)% ⊦ mkfile(m, md, m0, content).content = content; (s)% ⊦ mkfile(m, md, m0, content).size = m; (s) Used terms: ino0, files1 \ orphans(dirs0, files1)