| key.data?, log-cons(log, fs), replay-safe(log, fs, fi ⊖ fo), key ∈ ri ⊦ (ri ⊖ (ro ++ datakey(ino, n)))[key] = ((ri -- datakey(ino, n)) ⊖ ro)[key], key = datakey(ino, n), key ∈ ro, inodekey(key.ino) ∈ ro |
key = datakey(m, m0), key.data?, log-cons(log, fs), replay-safe(log, fs, fi ⊖ fo), key ∈ ri ⊦ (ri ⊖ (ro ++ datakey(ino, n)))[key] = ((ri -- datakey(ino, n)) ⊖ ro)[key], key = datakey(ino, n), inodekey(m) ∈ ro, key ∈ ro
Used simplifier rules: ⊦ key.data? → (m = key.ino ∧ m0 = key.part ↔ key = datakey(m, m0)); (elim) Used terms: key, m, m0