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