| gstore[m] = groupblock(gndx, lax, (range ri | m).size), inv(gstore \ ginval), m ∈ ginval, m ∈ gstore, ∀ key. key ∈ ri → ri[key] ∈ nodes(gstore ↓, ginval) ∧ key-cons(key, nodes(gstore ↓, ginval)[ri[key]]), ∃ key. key ∈ ri ∧ ri[key] = @(m, m0, m1) ⊦ # ginval = 0, ginval = ∅ |
ri[key] = @(m, m0, m1), gstore[m] = groupblock(gndx, lax, (range ri | m).size), inv(gstore \ ginval), key ∈ ri, m ∈ gstore, m ∈ ginval, ∀ key0. key0 ∈ ri → ri[key0] ∈ gstore ↓ ∧ ¬ ri[key0].lnum ∈ ginval ∧ key-cons(key0, nodes(gstore ↓, ginval)[ri[key0]]) ⊦ # ginval = 0, ginval = ∅
Used simplifier rules: nodes-gstore-in: ⊦ adr ∈ nodes(gstore, ginval) ↔ ¬ ¬(adr ∈ gstore ∧ ¬ adr.lnum ∈ ginval);