| gndx.last = mkgnode(nd, m1, boolvar, boolvar0), gndx0.last = mkgnode(nd0, m2, boolvar1, boolvar2), gstore0[nx.last] = groupblock(gndx, lax, m), gstore1[nx.last] = groupblock(gndx0, lax0, m0), gstore0 =○refsize gstore1, nx.last ∈ gstore0, gndx = [] ∨ boolvar0 ⊦ nx = [], nx.last ∈ ginval, nx.last ∈ gstore1 ∧ (gndx0 = [] ∨ boolvar2) |
⊦ gstore =○refsize gstore0 ↔ (∀ n. (n ∈ gstore ↔ n ∈ gstore0) ∧ gstore[n].gndlist = gstore0[n].gndlist ∧ gstore[n].ladrlist = gstore0[n].ladrlist)
gndx0.last = mkgnode(nd0, m2, boolvar1, boolvar2), gndx.last = mkgnode(nd, m1, boolvar, boolvar0), gstore1[nx.last] = groupblock(gndx0, lax0, m0), gstore0[nx.last] = groupblock(gndx, lax, m), nx.last ∈ gstore0, ∀ n. (n ∈ gstore0 ↔ n ∈ gstore1) ∧ gstore0[n].gndlist = gstore1[n].gndlist ∧ gstore0[n].ladrlist = gstore1[n].ladrlist, gndx = [] ∨ boolvar0 ⊦ nx = [], nx.last ∈ ginval, nx.last ∈ gstore1 ∧ (gndx0 = [] ∨ boolvar2)
Used terms: gstore1, gstore0