| ⊦ (∀ ino. ino ∈ abs-keys(orphans(fs0, ri0)) ↔ ino ∈ abs-keys(orphans(fs, ri)) ++ n) ↔ (∀ key. key.inode? ∧ key ∈ ri0 ∧ fs0[ri0[key]].nlink = 0 ∧ key.ino ≠ ROOT_INO ↔ key = inodekey(n) ∨ key.inode? ∧ key ∈ ri ∧ fs[ri[key]].nlink = 0 ∧ key.ino ≠ ROOT_INO) |
⊦ (∀ ino. inodekey(ino) ∈ ri0 ∧ fs0[ri0[inodekey(ino)]].nlink = 0 ∧ ino ≠ ROOT_INO ↔ ino = n ∨ inodekey(ino) ∈ ri ∧ fs[ri[inodekey(ino)]].nlink = 0 ∧ ino ≠ ROOT_INO) ↔ (∀ key. key.inode? ∧ key ∈ ri0 ∧ fs0[ri0[key]].nlink = 0 ∧ key.ino ≠ ROOT_INO ↔ key = inodekey(n) ∨ key.inode? ∧ key ∈ ri ∧ fs[ri[key]].nlink = 0 ∧ key.ino ≠ ROOT_INO)
Used simplifier rules: abs-keys: ⊦ n ∈ abs-keys(ks) ↔ inodekey(n) ∈ ks;% ⊦ ino ∈ ns ++ ino0 ↔ ino = ino0 ∨ ino ∈ ns; (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)