| elems(lnum + nx0) ∩ ginval = ∅, ∀ ginval, gstore. elems nx0 ∩ ginval = ∅ → abs-log(nx0, gstore) = abs-log(nx0, gstore \ ginval) ⊦ abs-log(lnum + nx0, gstore) = abs-log(lnum + nx0, gstore \ ginval) |
ginval ∩ elems nx0 = ∅, ∀ ginval, gstore. elems nx0 ∩ ginval = ∅ → abs-log(nx0, gstore) = abs-log(nx0, gstore \ ginval) ⊦ abs-log(nx0, gstore) = abs-log(nx0, gstore \ ginval), lnum ∈ ginval
Used simplifier rules: abs-log-rec: ⊦ abs-log(n ' + nx, gstore) = gstore[n].ladrlist.to-adr(n) + abs-log(nx, gstore);%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set]% ⊦ ax + ax0 = ax + ax1 ↔ ax0 = ax1; (s)% ⊦ ¬ n ∈ ns → (gstore \ ns)[n] = gstore[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)%a: ⊦ (nx + nx0) + nx1 = nx + nx0 + nx1; from specification list[nat-list-set]% ⊦ elems(n ' + nx0) = elems nx0 ++ n; (s)% ⊦ n + nx = n ' + nx; (s)