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