| fs[ri[datakey(ino, ino0)]] = datanode(key0, buf), key0 = datakey(ino, ino0), fs[ri[datakey(ino, ino0)]].data?, ro.inodes?, orphans-cons(fs, ri, ro), ri-closed(ri, fs, ro), ri[datakey(ino, ino0)] ∈ fs, datakey(ino, ino0) ∈ ri, ∀ key. key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]) ⊦ replay-one(adr, fs[ri[datakey(ino, ino0)]], ri ⊖ ro) = ri[datakey(ino, ino0), adr] ⊖ ro |
fs[ri[datakey(ino, ino0)]] = datanode(datakey(ino, ino0), buf), ro.inodes?, orphans-cons(fs, ri, ro), ri-closed(ri, fs, ro), ri[datakey(ino, ino0)] ∈ fs, datakey(ino, ino0) ∈ ri, ∀ key. key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]) ⊦ (inodekey(ino) ∈ ri ⊖ ro ⊃ (ri ⊖ ro)[datakey(ino, ino0), adr];ri ⊖ ro) = ri[datakey(ino, ino0), adr] ⊖ ro
Used simplifier rules: replay-data: ⊦ replay-one(adr, datanode(key, buf), ri) = (inodekey(key.ino) ∈ ri ⊃ ri[key, adr];ri);% ⊦ datanode(key, buf).data?; (s)% ⊦ datakey(m, m0).ino = m; (s)