| ri[key, adr][inodekey(ino)] = adr, ri-cons(ri, fs), key ∈ ri, inodekey(ino) ∈ ri[key, adr], ∀ ino. inodekey(ino) ∈ ri → (fs[ri[inodekey(ino)]].nlink = 0 ∧ ino ≠ ROOT_INO ↔ inodekey(ino) ∈ ro) ⊦ fs[ri[key]].nlink = 0 ∧ ino ≠ ROOT_INO ↔ inodekey(ino) ∈ ro, adr ∈ fs |
ri[key, adr][inodekey(ino)] = adr, inodekey(ino) = key, ri-cons(ri, fs), inodekey(ino) ∈ ri[key, adr], key ∈ ri, ∀ ino. inodekey(ino) ∈ ri → (fs[ri[inodekey(ino)]].nlink = 0 ∧ ino ≠ ROOT_INO ↔ inodekey(ino) ∈ ro) ⊦ fs[ri[key]].nlink = 0 ∧ ino ≠ ROOT_INO ↔ inodekey(ino) ∈ ro, adr ∈ fs
Used simplifier rules: ⊦ key ≠ key0 → ri[key0, adr][key] = ri[key]; (s)% ⊦ key ≠ key0 → (key ∈ ri[key0, adr] ↔ key ∈ ri); (s)% ⊦ key ∈ ri ∧ ri-cons(ri, fs) → ri[key] ∈ fs; (ss) Used formulas: inodekey(ino) = key