| gstore[n] = groupblock(gndx, lax, m0), gstore[m1] = groupblock(gndx0, lax0, m4), m1 ∈ gstore, @(m2, m3) ∈ lax0, n ∈ gstore ⊦ nodes(gstore[n, groupblock(gndx, lax, m)], ginval)[@(m1, m2, m3)] = nodes(gstore, ginval)[@(m1, m2, m3)], m1 ∈ ginval |
⊦ adr ∈ nodes(gstore, ginval) → nodes(gstore, ginval)[adr] = gstore[adr].nd
gstore[m1] = groupblock(gndx0, lax0, m4), gstore[n] = groupblock(gndx, lax, m0), n ∈ gstore, @(m2, m3) ∈ lax0, m1 ∈ gstore, @(m1, m2, m3) ∈ nodes(gstore[n, groupblock(gndx, lax, m)], ginval) ⊦ gstore[n, groupblock(gndx, lax, m)][@(m1, m2, m3)].nd = nodes(gstore, ginval)[@(m1, m2, m3)], m1 ∈ ginval
Used simplifier rules: nodes-gstore-in: ⊦ adr ∈ nodes(gstore, ginval) ↔ ¬ ¬(adr ∈ gstore ∧ ¬ adr.lnum ∈ ginval);% ⊦ ¬ adr ∈ fs → fs[adr] = (∅)[adr]; (s)% ⊦ groupblock(gndx, lax, m).gndlist = gndx; (s)% ⊦ groupblock(gndx, lax, m).ladrlist = lax; (s)%gstore[n].gndlist = gndx, gstore[n].ladrlist = lax ⊦ n ∈ gstore → (adr ∈ gstore[n, groupblock(gndx, lax, m)] ↔ adr ∈ gstore); (s)%⊦ gstore[n] = groupblock(gndx, lax, m0) ∧ n ∈ gstore ∧ @(n0, n1) ∈ lax → @(n, n0, n1) ∈ gstore; (ss)% ⊦ @(m, m0, m1).lnum = m; (s) Used terms: @(m1, m2, m3), ginval, gstore[n, groupblock(gndx, lax, m)]