| # gndx = # lax, prefixn(valid-group-nodes(gndx), gndx)[pos(@(m1, m2), lax + ladr ')] = mkgnode(nd1, m4, boolvar3, boolvar4), gndx[pos(@(m1, m2), lax)] = mkgnode(nd0, m, boolvar1, boolvar2), gstore[n] = groupblock(gndx, lax, n0), pos(@(m1, m2), lax) < valid-group-nodes(gndx), pos(@(m1, m2), lax) < # lax, n ∈ gstore, @(m1, m2) ∈ prefixn(valid-group-nodes(gndx), lax), valid-group-nodes(gndx) ≤ # lax, n0 ≤ m0 ⊦ lax = [], nd0 = nd1, n ∈ ginval |
⊦ ¬ ladr ∈ lax → pos(ladr, lax + lax0) = pos(ladr, lax0) + # lax
# gndx = # lax, gstore[n] = groupblock(gndx, lax, n0), gndx[pos(@(m1, m2), lax)] = mkgnode(nd0, m, boolvar1, boolvar2), prefixn(valid-group-nodes(gndx), gndx)[pos(@(m1, m2), lax + ladr ')] = mkgnode(nd1, m4, boolvar3, boolvar4), pos(@(m1, m2), lax) < # lax, pos(@(m1, m2), lax) < valid-group-nodes(gndx), @(m1, m2) ∈ lax, @(m1, m2) ∈ prefixn(valid-group-nodes(gndx), lax), n ∈ gstore, n0 ≤ m0, valid-group-nodes(gndx) ≤ # lax ⊦ lax = [], nd0 = nd1, n ∈ ginval
Used simplifier rules: ⊦ m ≤ n → (n ≤ m ↔ m = n); (s)% ⊦ ¬ ladr ∈ lax → pos(ladr, lax) = # lax; (s)% ⊦ m ≠ n → (m ≤ n ↔ m < n); (s)% ⊦ ¬ ladr ∈ lax → ¬ ladr ∈ prefixn(n, lax); (s)%# gndx ≤ m ⊦ prefixn(m, gndx) = gndx; (s)% ⊦ m ≤ n → (n < m ↔ false); (s)%# lax ≤ m ⊦ prefixn(m, lax) = lax; (s) Used terms: ladr ', lax, @(m1, m2)