| 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) |
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 ∈ orphans(dirs0, files1), ino0 ∈ files1, ⌜ino0⌝ ∈ fs, ∀ ino. ⌜ino⌝ ∈ tree0.fids → ino ∈ files1 ⊦ # links(ino0, dirs0) = 0, # orphans(dirs0, files1) = 0, links(ino0, dirs0) = ∅, mkfile(md, (content.stream to m).buf) = abs-files(files1 \ orphans(dirs0, files1))[⌜ino0⌝ ], orphans(dirs0, files1) = ∅
Used simplifier rules: size-zero-01: ⊦ ns ≠ ∅ → # ns ≠ 0; (forward) from specification set-basic[open-files]%ne-01: ⊦ ino ∈ ns → ns ≠ ∅; (forward) from specification set-basic[dir-heap-refset]% ⊦ ino ∈ files \ ns ↔ ino ∈ files ∧ ¬ ino ∈ ns; (s)