| ginval ∩ elems nx = ∅, dom gstore0 ∪ elems nx = dom gstore ∪ ginval, inv(gstore \ ginval) ⊦ inv(gstore[nx.last]), ∀ nx0, n. nx ≠ nx0 + n ' |
(elems nx0 ∪ dom gstore0) ++ n = dom gstore ∪ ginval, ginval ∩ elems nx0 = ∅, inv(gstore \ ginval) ⊦ inv(gstore[n]), n ∈ ginval
Used simplifier rules: elems-append: ⊦ elems(nx0 + n ') = elems nx0 ++ n;% ⊦ (nx + n ').last = n; (s)%int-c: ⊦ ns ∩ ns0 = ns0 ∩ ns; from specification set-union[nat-set]%int-a: ⊦ (ns ∩ ns0) ∩ ns1 = ns ∩ ns0 ∩ ns1; from specification set-union[nat-set]% ⊦ ns ∩ (ns0 ++ n) = ∅ ↔ ns ∩ ns0 = ∅ ∧ ¬ n ∈ ns; (ws)%unc: ⊦ ns ∪ ns0 = ns0 ∪ ns; from specification set-union[nat-set]%una: ⊦ (ns ∪ ns0) ∪ ns1 = ns ∪ ns0 ∪ ns1; from specification set-union[nat-set]% ⊦ (ns ++ n) ∪ ns0 = (ns ∪ ns0) ++ n; (s)%a: ⊦ (nx + nx0) + nx1 = nx + nx0 + nx1; from specification list[nat-list-set]