| m = 0 ∧ ino ≠ ROOT_INO ↔ inodekey(ino) ∈ ro, fs[ri[inodekey(ino)]] = inodenode(inodekey(ino), md, boolvar, m, m0, m1), ro.inodes?, ri-closed(ri, fs, ro), ri[inodekey(ino)] ∈ fs, inodekey(ino) ∈ ri, ∀ key. key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]) ⊦ (m ≠ 0 ∨ ino = ROOT_INO ⊃ (ri ⊖ ro)[inodekey(ino), adr];(boolvar ⊃ (ri ⊖ ro) -- inodekey(ino);(ri ⊖ ro) ⊖ inodekey(ino))) = ri[inodekey(ino), adr] ⊖ ro, ino = 0 |
m = 0 ∧ ino ≠ ROOT_INO ↔ inodekey(ino) ∈ ro, fs[ri[inodekey(ino)]] = inodenode(inodekey(ino), md, boolvar, m, m0, m1), m = 0, ro.inodes?, ri-closed(ri, fs, ro), inodekey(ino) ∈ ri, ri[inodekey(ino)] ∈ fs, ∀ key. key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]) ⊦ (boolvar ⊃ (ri ⊖ ro) -- inodekey(ino);(ri ⊖ ro) ⊖ inodekey(ino)) = ri[inodekey(ino), adr] ⊖ ro, ino = 0, ino = ROOT_INO
Used simplifier rules: replay-orphans-inode: ⊦ ¬ inodekey(ino) ∈ ro → (ri ⊖ ro)[inodekey(ino), adr] = ri[inodekey(ino), adr] ⊖ ro;% ⊦ inodekey(m) ∈ ks → ri[inodekey(m), adr] ⊖ ks = ri ⊖ ks; (s)