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