| log-cons(log, fs), replay-safe(log, fs, fi ⊖ fo) ⊦ (key ∈ ri ⊖ (ro ++ inodekey(ino)) ↔ key ∈ (ri ⊖ inodekey(ino)) ⊖ ro) ∧ (key ∈ ri ⊖ (ro ++ inodekey(ino)) → (ri ⊖ (ro ++ inodekey(ino)))[key] = ((ri ⊖ inodekey(ino)) ⊖ ro)[key]) |
key ∈ ri ⊖ (ro ++ inodekey(ino)) ↔ key ∈ (ri ⊖ inodekey(ino)) ⊖ ro, log-cons(log, fs), replay-safe(log, fs, fi ⊖ fo) ⊦ (key ∈ ri ⊖ (ro ++ inodekey(ino)) ↔ key ∈ (ri ⊖ inodekey(ino)) ⊖ ro) ∧ (key ∈ ri ⊖ (ro ++ inodekey(ino)) → (ri ⊖ (ro ++ inodekey(ino)))[key] = ((ri ⊖ inodekey(ino)) ⊖ ro)[key])
log-cons(log, fs), replay-safe(log, fs, fi ⊖ fo) ⊦ key ∈ ri ⊖ (ro ++ inodekey(ino)) ↔ key ∈ (ri ⊖ inodekey(ino)) ⊖ ro, (key ∈ ri ⊖ (ro ++ inodekey(ino)) ↔ key ∈ (ri ⊖ inodekey(ino)) ⊖ ro) ∧ (key ∈ ri ⊖ (ro ++ inodekey(ino)) → (ri ⊖ (ro ++ inodekey(ino)))[key] = ((ri ⊖ inodekey(ino)) ⊖ ro)[key])
Used formulas: key ∈ ri ⊖ (ro ++ inodekey(ino)) ↔ key ∈ (ri ⊖ inodekey(ino)) ⊖ ro