| elems nx ∩ ginval = ∅, new(ax, nodes(gstore, ginval)), elems nx ⊆ dom gstore ⊦ ax.toSet ∩ abs-log(nx, gstore).toSet = ∅ |
elems(lnum + nx0) ∩ ginval = ∅, new(ax, nodes(gstore, ginval)), elems(lnum + nx0) ⊆ dom gstore, ∀ ginval, ax, gstore. elems nx0 ∩ ginval = ∅ ∧ new(ax, nodes(gstore, ginval)) ∧ elems nx0 ⊆ dom gstore → ax.toSet ∩ abs-log(nx0, gstore).toSet = ∅ ⊦ ax.toSet ∩ abs-log(lnum + nx0, gstore).toSet = ∅
Used simplifier rules: abs-log-base: ⊦ abs-log([], gstore) = [];%nat-list freely generated by [], +;;% ⊦ elems [] = ∅; (s)% ⊦ ns ∩ ∅ = ∅; (s)%int-a: ⊦ (ns ∩ ns0) ∩ ns1 = ns ∩ ns0 ∩ ns1; from specification set-union[nat-set]%int-c: ⊦ ns ∩ ns0 = ns0 ∩ ns; from specification set-union[nat-set]% ⊦ [].toSet = ∅; (s)% ⊦ as ∩ ∅ = ∅; (s)%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]