| fs[ri[inodekey(ino)]].directory, inodekey(ino) ∈ ri, fs[ri[inodekey(ino)]].nlink ≠ 0 ∨ ino = ROOT_INO ⊦ (abs-dirs(fs, ri) \ abs-keys(orphans(fs, ri)))[ino] = mkdir (fs[ri[inodekey(ino)]].size, fs[ri[inodekey(ino)]].meta, fs[ri[inodekey(ino)]].nlink, fs[ri[inodekey(ino)]].nsubdirs, abs-children(ino, fs, ri ⊖ orphans(fs, ri))), inodekey(ino).data?, inodekey(ino) ∈ orphans(fs, ri) |
fs[ri[inodekey(ino)]].directory, inodekey(ino) ∈ ri, fs[ri[inodekey(ino)]].nlink ≠ 0 ∨ ino = ROOT_INO ⊦ (abs-dirs(fs, ri) \ abs-keys(orphans(fs, ri)))[ino] = mkdir (fs[ri[inodekey(ino)]].size, fs[ri[inodekey(ino)]].meta, fs[ri[inodekey(ino)]].nlink, fs[ri[inodekey(ino)]].nsubdirs, abs-children(ino, fs, ri ⊖ orphans(fs, ri))), fs[ri[inodekey(ino)]].nlink = 0 ∧ ino ≠ ROOT_INO
Used simplifier rules: ⊦ ¬ inodekey(m).data?; (s)% ⊦ inodekey(m).ino = m; (s)% ⊦ inodekey(m).inode?; (s)%⊦ key ∈ orphans(fs, ri) ↔ key.inode? ∧ key ∈ ri ∧ fs[ri[key]].nlink = 0 ∧ key.ino ≠ ROOT_INO; (s)