| key.data?, inodekey(ino) ∈ ro, key ∈ ri[datakey(ino, n), adr], key = datakey(ino, n) ∨ key ∈ ri ⊦ # ro = 0, (ri[datakey(ino, n), adr] ⊖ ro)[key] = (ri ⊖ ro)[key], ro = ∅, key ∈ ro, inodekey(key.ino) ∈ ro |
Used simplifier rules: ⊦ datakey(ino, n) ∈ ri ∧ ¬ datakey(ino, n) ∈ ks ∧ ¬ inodekey(ino) ∈ ks → (ri ⊖ ks)[datakey(ino, n)] = ri[datakey(ino, n)]; (s)% ⊦ datakey(m, m0).data?; (s)% ⊦ key ≠ key0 → ri[key0, adr][key] = ri[key]; (s)% ⊦ key ≠ key0 → (key ∈ ri[key0, adr] ↔ key ∈ ri); (s)% ⊦ datakey(m, m0) = datakey(m1, m2) ↔ m = m1 ∧ m0 = m2; (ws)% ⊦ key.data? → (m = key.ino ∧ m0 = key.part ↔ key = datakey(m, m0)); (elim) Used terms: key, m, m0