| datakey(m, m0) ∈ ri ⊦ ((ri ⊖ key) ⊖ ks)[datakey(m, m0)] = ri[datakey(m, m0)], datakey(m, m0) = key, inodekey(m) = key, key ∈ ks, datakey(m, m0) ∈ ks, inodekey(m) ∈ ks |
⊦ datakey(ino, n) ∈ ri ∧ ¬ datakey(ino, n) ∈ ks ∧ ¬ inodekey(ino) ∈ ks → (ri ⊖ ks)[datakey(ino, n)] = ri[datakey(ino, n)]
Used simplifier rules: in-del-ro: ⊦ key ∈ ri ⊖ key0 ↔ key ∈ ri ∧ key ≠ key0 ∧ (key.data? → inodekey(key.ino) ≠ key0);%at-del-ro-data: ⊦ datakey(ino, n) ∈ ri ∧ datakey(ino, n) ≠ key0 ∧ inodekey(ino) ≠ key0 → (ri ⊖ key0)[datakey(ino, n)] = ri[datakey(ino, n)];% ⊦ datakey(m, m0).data?; (s)% ⊦ datakey(m, m0).ino = m; (s) Used terms: m0, m, ks, ri ⊖ key