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