| inodekey(ino) ∈ ri, fs[ri[inodekey(ino)]].nlink ≠ 0 ∨ ino = ROOT_INO ⊦ (abs-files(fs, ri) \ abs-keys(orphans(fs, ri)))[ino] = mkfile(fs[ri[inodekey(ino)]].size, fs[ri[inodekey(ino)]].meta, fs[ri[inodekey(ino)]].nlink, abs-content(ino, fs, ri ⊖ orphans(fs, ri))), fs[ri[inodekey(ino)]].directory, fs[ri[inodekey(ino)]].nlink = 0 ∧ ino ≠ ROOT_INO |
⊦ ino ∈ files ∧ ¬ ino ∈ ns → (files \ ns)[ino] = files[ino]
inodekey(ino) ∈ ri, ino ∈ abs-files(fs, ri), fs[ri[inodekey(ino)]].nlink ≠ 0 ∨ ino = ROOT_INO ⊦ abs-files(fs, ri)[ino] = mkfile(fs[ri[inodekey(ino)]].size, fs[ri[inodekey(ino)]].meta, fs[ri[inodekey(ino)]].nlink, abs-content(ino, fs, ri ⊖ orphans(fs, ri))), fs[ri[inodekey(ino)]].directory, ino ∈ abs-keys(orphans(fs, ri)), fs[ri[inodekey(ino)]].nlink = 0 ∧ ino ≠ ROOT_INO
Used simplifier rules: in-files: ⊦ ino ∈ abs-files(fs, ri) ↔ inodekey(ino) ∈ ri ∧ ¬ fs[ri[inodekey(ino)]].directory;%abs-keys: ⊦ n ∈ abs-keys(ks) ↔ inodekey(n) ∈ ks;%⊦ key ∈ orphans(fs, ri) ↔ key.inode? ∧ key ∈ ri ∧ fs[ri[key]].nlink = 0 ∧ key.ino ≠ ROOT_INO; (s)% ⊦ inodekey(m).inode?; (s)% ⊦ inodekey(m).ino = m; (s) Used terms: ino, abs-keys(orphans(fs, ri)), abs-files(fs, ri)