| # buf = VFS_PAGE_SIZE, fs[ri[datakey(ino, ino0)]] = datanode(datakey(ino, ino0), buf), ro.inodes?, orphans-cons(fs, ri, ro), ri[datakey(ino, ino0)] ∈ fs, datakey(ino, ino0) ∈ ri, inodekey(ino) ∈ ri, ∀ key. key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]) ⊦ (¬ inodekey(ino) ∈ ro ⊃ (ri ⊖ ro)[datakey(ino, ino0), adr];ri ⊖ ro) = ri[datakey(ino, ino0), adr] ⊖ ro, fs[ri[inodekey(ino)]].directory |
# buf = VFS_PAGE_SIZE, fs[ri[datakey(ino, ino0)]] = datanode(datakey(ino, ino0), buf), ro.inodes?, orphans-cons(fs, ri, ro), inodekey(ino) ∈ ri, datakey(ino, ino0) ∈ ri, ri[datakey(ino, ino0)] ∈ fs, ∀ key. key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]) ⊦ (ri ⊖ ro)[datakey(ino, ino0), adr] = ri[datakey(ino, ino0), adr] ⊖ ro, fs[ri[inodekey(ino)]].directory, inodekey(ino) ∈ ro
Used simplifier rules: replay-drop-data: ⊦ inodekey(ino) ∈ ro → ri[datakey(ino, n), adr] ⊖ ro = ri ⊖ ro;