| log-cons(log, fs), replay-safe(log, fs, fi ⊖ fo), datakey(m, m0) ∈ ri ⊦ (ri ⊖ (ro ++ datakey(ino, n)))[datakey(m, m0)] = ((ri -- datakey(ino, n)) ⊖ ro)[datakey(m, m0)], datakey(m, m0) = datakey(ino, n), datakey(m, m0) ∈ ro, inodekey(m) ∈ ro |
⊦ datakey(ino, n) ∈ ri ∧ ¬ datakey(ino, n) ∈ ks ∧ ¬ inodekey(ino) ∈ ks → (ri ⊖ ks)[datakey(ino, n)] = ri[datakey(ino, n)]
log-cons(log, fs), replay-safe(log, fs, fi ⊖ fo), datakey(m, m0) ∈ ri, datakey(m, m0) ∈ ri -- datakey(ino, n) ⊦ (ri ⊖ (ro ++ datakey(ino, n)))[datakey(m, m0)] = (ri -- datakey(ino, n))[datakey(m, m0)], datakey(m, m0) = datakey(ino, n), inodekey(m) ∈ ro, datakey(m, m0) ∈ ro
Used simplifier rules: ⊦ key ∈ ri -- key0 ↔ key ≠ key0 ∧ key ∈ ri; (s) Used terms: m0, m, ro, ri -- datakey(ino, n)