| log-cons(log, fs), replay-safe(log, fs, fi ⊖ fo), key ∈ ri, key ∈ ri ⊖ inodekey(ino), key.data? → key.ino ≠ ino, key.data? → ¬ inodekey(key.ino) ∈ ro, key.data? → key.ino ≠ ino ∧ ¬ inodekey(key.ino) ∈ ro ⊦ (ri ⊖ (ro ++ inodekey(ino)))[key] = (ri ⊖ inodekey(ino))[key], key = inodekey(ino), key.data?, key ∈ ro |
log-cons(log, fs), replay-safe(log, fs, fi ⊖ fo), key ∈ ri ⊦ (ri ⊖ (ro ++ inodekey(ino)))[key] = ri[key], key = inodekey(ino), key.data?, key ∈ ro
Used simplifier rules: ⊦ key ∈ ri ⊖ key0 ↔ key ∈ ri ∧ key ≠ key0 ∧ (key.data? → inodekey(key.ino) ≠ key0); (ws)% ⊦ key ∈ ri ∧ key ≠ key0 ∧ ¬ key.data? → (ri ⊖ key0)[key] = ri[key]; (s)