| range ri ∩ as = ∅, key ∈ ri, ∀ key. key ∈ ri → ri[key] ∈ fs ∧ node-closed(fs[ri[key]], ri, fs, ro) ⊦ ri[key] ∈ fs \ as ∧ node-closed((fs \ as)[ri[key]], ri, fs \ as, ro) |
⊦ ¬ adr ∈ as → (fs \ as)[adr] = fs[adr]
range ri ∩ as = ∅, key ∈ ri, ∀ key. key ∈ ri → ri[key] ∈ fs ∧ node-closed(fs[ri[key]], ri, fs, ro) ⊦ ri[key] ∈ as, ri[key] ∈ fs \ as ∧ node-closed(fs[ri[key]], ri, fs \ as, ro)
Used simplifier rules: int-a: ⊦ (as ∩ as0) ∩ as1 = as ∩ as0 ∩ as1; from specification set-union[node-store]%int-c: ⊦ as ∩ as0 = as0 ∩ as; from specification set-union[node-store]% ⊦ key ∈ ri ∧ as ∩ range ri = ∅ → ¬ ri[key] ∈ as; (s) Used terms: ri[key], as, fs