| key ∈ ri ⊖ ro ↔ key ∈ ri[datakey(ino, n), adr] ⊖ ro ⊦ key = datakey(ino, n), inodekey(ino) ∈ ro, datakey(ino, n) ∈ ro, (key ∈ ri ⊖ ro ↔ key ∈ ri[datakey(ino, n), adr] ⊖ ro) ∧ (key ∈ ri ⊖ ro → (ri ⊖ ro)[key] = (ri[datakey(ino, n), adr] ⊖ ro)[key]) |
key ∈ ri, key.data? → ¬ inodekey(key.ino) ∈ ro ⊦ (ri ⊖ ro)[key] = (ri[datakey(ino, n), adr] ⊖ ro)[key], key = datakey(ino, n), datakey(ino, n) ∈ ro, inodekey(ino) ∈ ro, key ∈ ro
Used simplifier rules: ⊦ key ≠ key0 → (key ∈ ri[key0, adr] ↔ key ∈ ri); (s)%⊦ key ∈ ri ⊖ ks ↔ key ∈ ri ∧ ¬ key ∈ ks ∧ (key.data? → ¬ inodekey(key.ino) ∈ ks); (ws)