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