| ⊦ orphans-cons((∅)[adr1, inodenode(inodekey(ROOT_INO), md, true, 0, 0, 0)], (∅)[inodekey(ROOT_INO), adr1], ∅) |
⊦ orphans-cons(fs, ri, ro) ↔ (∀ ino. inodekey(ino) ∈ ri → (fs[ri[inodekey(ino)]].nlink = 0 ∧ ino ≠ ROOT_INO ↔ inodekey(ino) ∈ ro))
Used simplifier rules: at-ri: ⊦ ri[key0, adr][key1] = (key0 = key1 ⊃ adr;ri[key1]);%at-fs: ⊦ fs[adr0, nd][adr1] = (adr0 = adr1 ⊃ nd;fs[adr1]);%in-ri: ⊦ key0 ∈ ri[key1, adr] ↔ key0 = key1 ∨ key0 ∈ ri;% ⊦ inodekey(m) = inodekey(m0) ↔ m = m0; (s)% ⊦ ¬ key ∈ ∅; (s)% ⊦ ¬ key ∈ ∅; (s) Used terms: ∅, (∅)[inodekey(ROOT_INO), adr1], (∅)[adr1, inodenode(inodekey(ROOT_INO), md, true, 0, 0, 0)]