| ri0 ⊖ ks0 = ri1 ⊖ ro1, ks0.inodes?, ro1.inodes?, key ∈ ro1, key ∈ ks0, ks0 ⊆ ro1 ⊦ # ro1 = 0, # ks0 = 0, ks0 = ∅, ro1 = ∅, ((ri0 \ datakeys(key, ri0)) -- key) ⊖ (ks0 -- key) = ri1 ⊖ ro1 |
⊦ ri = ri0 ↔ (∀ key. (key ∈ ri ↔ key ∈ ri0) ∧ ri[key] = ri0[key])
ri0 ⊖ ks0 = ri1 ⊖ ro1, ro1.inodes?, ks0.inodes?, key ∈ ks0, key ∈ ro1, ks0 ⊆ ro1 ⊦ # ks0 = 0, # ro1 = 0, ks0 = ∅, ro1 = ∅, ∀ key0. (key0 ∈ ((ri0 \ datakeys(key, ri0)) -- key) ⊖ (ks0 -- key) ↔ key0 ∈ ri1 ⊖ ro1) ∧ (((ri0 \ datakeys(key, ri0)) -- key) ⊖ (ks0 -- key))[key0] = (ri1 ⊖ ro1)[key0]
Used terms: ri1 ⊖ ro1, ((ri0 \ datakeys(key, ri0)) -- key) ⊖ (ks0 -- key)