| # lax = (m0 + 1) + # gndx, # gndx1 = m0 + 1, gndx1.last = mkgnode(nd, m1, boolvar, false), gstore2[n] = groupblock(gndx1 + gndx, lax, m), valid-group-nodes(gndx1) = valid-group-nodes(gndx1 + gndx), inv(groupblock(gndx1 + gndx, lax, m)), inv(gstore2 \ ginval), n ∈ gstore2 ⊦ ax0 + prefixn(m0 + 1, lax).to-adr(n) = [], gndx1 = [], n ∈ ginval, ∃ gndx0. m0 + # gndx0 = # lax ∧ gndx1 + gndx = gndx1.butlast + gndx0 ∧ (ax0 + prefixn(m0 + 1, lax).to-adr(n)).butlast = ax0 + prefixn(m0, lax).to-adr(n) ∧ valid-group-nodes(gndx1.butlast) = valid-group-nodes(gndx1.butlast + gndx0) |
⊦ gndx = [] ↔ ¬(∃ gndx0, gnd. gndx = gndx0 + gnd ')
# gndx1 = m0 + 1, # lax = (m0 + 1) + # gndx, gndx1.last = mkgnode(nd, m1, boolvar, false), gstore2[n] = groupblock(gndx1 + gndx, lax, m), valid-group-nodes(gndx1) = valid-group-nodes(gndx1 + gndx), inv(gstore2 \ ginval), inv(groupblock(gndx1 + gndx, lax, m)), n ∈ gstore2 ⊦ ax0 + prefixn(m0 + 1, lax).to-adr(n) = [], n ∈ ginval, ∀ gndx0, gnd. gndx1 ≠ gndx0 + gnd ', ∃ gndx0. m0 + # gndx0 = # lax ∧ gndx1 + gndx = gndx1.butlast + gndx0 ∧ (ax0 + prefixn(m0 + 1, lax).to-adr(n)).butlast = ax0 + prefixn(m0, lax).to-adr(n) ∧ valid-group-nodes(gndx1.butlast) = valid-group-nodes(gndx1.butlast + gndx0)
Used terms: gndx1