| # ax = # ndx, gstore[@(m3, m4, m5)] = mkgnode(nd0, m6, boolvar1, boolvar2), ax[n - # @(m, m0, m1) '] = @(m3, m4, m5), gstore[@(m, m0, m1)] = mkgnode(nd, m2, boolvar, boolvar0), @(m, m0, m1) ∈ gstore, n ≤ # ndx, ∀ n. n < # ndx → ax[n] ∈ gstore ∧ ¬ ax[n].lnum ∈ ginval ∧ gstore[ax[n]].nd = ndx[n] ⊦ n < # @(m, m0, m1) ', m ∈ ginval, @(m3, m4, m5) ∈ gstore ∧ ¬ m3 ∈ ginval ∧ nd0 = (nd ' + ndx)[n] |
# ax = # ndx, gstore[@(m3, m4, m5)] = mkgnode(nd0, m6, boolvar1, boolvar2), gstore[@(m, m0, m1)] = mkgnode(nd, m2, boolvar, boolvar0), ax[n - 1] = @(m3, m4, m5), @(m, m0, m1) ∈ gstore, n ≤ # ndx, ∀ n. n < # ndx → ax[n] ∈ gstore ∧ ¬ ax[n].lnum ∈ ginval ∧ gstore[ax[n]].nd = ndx[n] ⊦ n = 0, m ∈ ginval, @(m3, m4, m5) ∈ gstore ∧ ¬ m3 ∈ ginval ∧ nd0 = (nd ' + ndx)[n]
Used simplifier rules: ⊦ m < 1 ↔ m = 0; (s)% ⊦ # adr ' = 0 +1; (s)