| gstore0[n] = groupblock(gndx0, lax0, m0), groupblock(gndx0, lax0, m0) = groupblock(gndx, lax, m), dom gstore0 ∪ elems nx = dom gstore ∪ ginval, n ∈ ginval, n ∈ crash(gstore, gstore0, ginval, nx), fi.lebs ⊆ dom gstore0, n ∈ gstore0 → m0 = (range fi | n).size ⊦ m = (range fi | n).size, n ∈ nx |
(∅)[n] = groupblock(gndx0, lax0, m), dom gstore0 ∪ elems nx = dom gstore ∪ ginval, n ∈ ginval, n ∈ crash(gstore, gstore0, ginval, nx), fi.lebs ⊆ dom gstore0 ⊦ # ginval = 0, ginval = ∅, m = 0, n ∈ gstore0, n ∈ nx
Used simplifier rules: restrict-range-notin-lebs: ⊦ ¬ n ∈ gstore ∧ fi.lebs ⊆ dom gstore → range fi | n = ∅;%size-zero-01: ⊦ ns ≠ ∅ → # ns ≠ 0; (forward) from specification set-basic[nat-set]%ne-01: ⊦ n ∈ ns → ns ≠ ∅; (forward) from specification set-basic[nat-set]% ⊦ ∅.size = 0; (s)% ⊦ ¬ n ∈ gstore → gstore[n] = (∅)[n]; (s)%⊦ groupblock(gndx, lax, m) = groupblock(gndx0, lax0, m0) ↔ gndx = gndx0 ∧ lax = lax0 ∧ m = m0; (ws)