| gstore[@(m, m0, m1)] = mkgnode(nd0, m2, boolvar, boolvar0) ⊦ nodes-cons(@(m, m0, m1) ' + ax, nd ' + ndx, gstore, ginval) ↔ @(m, m0, m1) ∈ gstore ∧ ¬ m ∈ ginval ∧ nd0 = nd ∧ # ax = # ndx ∧ (∀ n. n < # ax → ax[n] ∈ gstore ∧ ¬ ax[n].lnum ∈ ginval ∧ gstore[ax[n]].nd = ndx[n]) |
⊦ nodes-cons(ax, ndx, gstore, ginval) ↔ # ax = # ndx ∧ (∀ n. n < # ax → ax[n] ∈ gstore ∧ ¬ ax[n].lnum ∈ ginval ∧ gstore[ax[n]].nd = ndx[n])
gstore[@(m, m0, m1)] = mkgnode(nd0, m2, boolvar, boolvar0) ⊦ #(@(m, m0, m1) ' + ax) = #(nd ' + ndx) ∧ (∀ n. n < #(@(m, m0, m1) ' + ax) → (@(m, m0, m1) ' + ax)[n] ∈ gstore ∧ ¬ (@(m, m0, m1) ' + ax)[n].lnum ∈ ginval ∧ gstore[(@(m, m0, m1) ' + ax)[n]].nd = (nd ' + ndx)[n]) ↔ @(m, m0, m1) ∈ gstore ∧ ¬ m ∈ ginval ∧ nd0 = nd ∧ # ax = # ndx ∧ (∀ n. n < # ax → ax[n] ∈ gstore ∧ ¬ ax[n].lnum ∈ ginval ∧ gstore[ax[n]].nd = ndx[n])
Used terms: ginval, gstore, nd ' + ndx, @(m, m0, m1) ' + ax