| gstore[lnum] = groupblock(gndx0, lax0, m0), crash(gstore, gstore0, ginval, nx0)[lnum] ↓ = groupblock(gndx, lax, m), ginval ∩ elems nx1 = ∅, inv(groupblock(gndx0, lax0, m0)), inv(gstore \ ginval), lnum ∈ gstore, lnum ∈ crash(gstore, gstore0, ginval, nx0), ∀ ginval, gstore, gstore0, nx0. elems nx1 ∩ ginval = ∅ ∧ inv(gstore \ ginval) → abs-log(nx1, crash(gstore, gstore0, ginval, nx0) ↓) = abs-log(nx1, gstore ↓) ⊦ lax.to-adr(lnum) + abs-log(nx1, crash(gstore, gstore0, ginval, nx0) ↓) = prefixn(valid-group-nodes(gndx0), lax0).to-adr(lnum) + abs-log(nx1, gstore ↓), lnum ∈ ginval |
gstore[lnum] = groupblock(gndx0, lax0, m0), ginval ∩ elems nx1 = ∅, inv(groupblock(gndx0, lax0, m0)), inv(gstore \ ginval), lnum ∈ gstore, ∀ ginval, gstore, gstore0, nx0. elems nx1 ∩ ginval = ∅ ∧ inv(gstore \ ginval) → abs-log(nx1, crash(gstore, gstore0, ginval, nx0) ↓) = abs-log(nx1, gstore ↓) ⊦ abs-log(nx1, crash(gstore, gstore0, ginval, nx0) ↓) = abs-log(nx1, gstore ↓), lnum ∈ ginval
Used simplifier rules: down-block-explicit: ⊦ groupblock(gndx, lax, m0) ↓ = groupblock (prefixn(valid-group-nodes(gndx), gndx), prefixn(valid-group-nodes(gndx), lax), m0);%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set]% ⊦ ax + ax0 = ax + ax1 ↔ ax0 = ax1; (s)% ⊦ groupblock(gndx, lax, m).ladrlist = lax; (s)% ⊦ groupblock(gndx, lax, m).gndlist = gndx; (s)% ⊦ n ∈ crash(gstore, gstore0, ginval, nx) ↔ n ∈ gstore ∨ n ∈ ginval; (ws)%⊦ groupblock(gndx, lax, m) = groupblock(gndx0, lax0, m0) ↔ gndx = gndx0 ∧ lax = lax0 ∧ m = m0; (ws)%⊦ n ∈ crash(gstore, gstore0, ginval, nx) → crash(gstore, gstore0, ginval, nx)[n] = (n ∈ nx ∨ ¬ n ∈ ginval ⊃ groupblock (gstore[n].gndlist, gstore[n].ladrlist, (n ∈ gstore0 ⊃ gstore0[n].ref-size;0)) ;gstore0[n] ); (s)