| fs[ri[inodekey(ino)]] = inodenode(key0, md, boolvar, m, m0, m1), key0 = inodekey(ino), fs[ri[inodekey(ino)]].inode?, ro.inodes?, orphans-cons(fs, ri, ro), ri-closed(ri, fs, ro), ri[inodekey(ino)] ∈ fs, inodekey(ino) ∈ ri, ∀ key. key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]) ⊦ ino = 0, replay-one(adr, fs[ri[inodekey(ino)]], ri ⊖ ro) = ri[inodekey(ino), adr] ⊖ ro |
fs[ri[inodekey(ino)]] = inodenode(inodekey(ino), md, boolvar, m, m0, m1), ro.inodes?, orphans-cons(fs, ri, ro), 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
Used simplifier rules: replay-ino: ⊦ replay-one(adr, inodenode(key, md, boolvar, n, n0, m), ri) = (n ≠ 0 ∨ key.ino = ROOT_INO ⊃ ri[key, adr] ;(boolvar ⊃ ri -- key;ri ⊖ key) );% ⊦ inodenode(key, md, boolvar, m, m0, m1).inode?; (s)% ⊦ inodekey(m).ino = m; (s)