| 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 |
key = datakey(m, m0), key.data?, log-cons(log, fs), replay-safe(log, fs, fi ⊖ fo), key ∈ ri ⊦ (ri ⊖ (ro ++ inodekey(ino)))[key] = ((ri ⊖ inodekey(ino)) ⊖ ro)[key], key = inodekey(ino), m = ino, 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