| gstore[m] = groupblock(gndx, lax, m2), ri[key] = @(m, m0, m1), inv(gstore \ ginval), ri-cons(ri, nodes(gstore ↓, ginval)), key ∈ ri, m ∈ gstore, m ∈ gstore → m2 = (range ri | m).size ⊦ m ∈ remove-refsize0(gstore) |
gstore[m] = groupblock(gndx, lax, (range ri | m).size), ri[key] = @(m, m0, m1), inv(gstore \ ginval), ri-cons(ri, nodes(gstore ↓, ginval)), key ∈ ri, m ∈ gstore ⊦ ∃ adr. adr ∈ ri ∧ adr.lnum = m
Used simplifier rules: size-0: ⊦ ri-cons(ri, nodes(gstore ↓, ginval)) ∧ inv(gstore \ ginval) → ((range ri | m).size = 0 ↔ ¬(∃ adr. adr ∈ range ri ∧ adr.lnum = m));% ⊦ adr ∈ range ri ↔ adr ∈ ri; (s)% ⊦ groupblock(gndx, lax, m).ref-size = m; (s)% ⊦ n ∈ remove-refsize0(gstore) ↔ n ∈ gstore ∧ gstore[n].ref-size ≠ 0; (ws)