| fs[ri[inodekey(ino)]].key = inodekey(ino), fs[ri[inodekey(ino)]].inode?, ro.inodes?, orphans-cons(fs, ri, ro), ri-closed(ri, fs, ro), inodekey(ino) ∈ ri, ri[inodekey(ino)] ∈ fs, ∀ 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(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
Used simplifier rules: ⊦ nd.inode? → ( ( ( ( (key = nd.key ∧ md = nd.meta) ∧ (boolvar ↔ nd.directory)) ∧ m = nd.nlink) ∧ m0 = nd.nsubdirs) ∧ m1 = nd.size ↔ nd = inodenode(key, md, boolvar, m, m0, m1)); (elim) Used terms: fs[ri[inodekey(ino)]], key0, md, boolvar, m, m0, m1