| log-cons(log, fs), replay-safe(log, fs, fi ⊖ fo) ⊦ key ∈ ri ⊖ (ro ++ inodekey(ino)) ↔ key ∈ ri ⊖ inodekey(ino) ∧ ¬ key ∈ ro ∧ (key.data? → ¬ inodekey(key.ino) ∈ ro) |
⊦ key ∈ ri ⊖ key0 ↔ key ∈ ri ∧ key ≠ key0 ∧ (key.data? → inodekey(key.ino) ≠ key0)
log-cons(log, fs), replay-safe(log, fs, fi ⊖ fo) ⊦ key ∈ ri ⊖ (ro ++ inodekey(ino)) ↔ (key ∈ ri ∧ key ≠ inodekey(ino) ∧ (key.data? → inodekey(key.ino) ≠ inodekey(ino))) ∧ ¬ key ∈ ro ∧ (key.data? → ¬ inodekey(key.ino) ∈ ro)
Used terms: inodekey(ino), ri, key