| gndx0.head = mkgnode(nd1, m1, true, boolvar4), gndx0[n] = mkgnode(nd2, m2, boolvar5, boolvar6), gndx0[n0] = mkgnode(nd, m, boolvar, boolvar0), n0 < # ndx, n0 < # gndx0, # gndx0 < # ndx, # gndx0 + # gndx1 < # ndx, n0 + 1 < # ndx, ∀ n. n < # gndx0 + # gndx1 → (gndx0 + gndx1)[n].nd = ndx[n], ∀ n. (n ≠ 0 ∧ n < # gndx0 + # gndx1 → ¬ (gndx0 + gndx1)[n].start) ∧ (n < # gndx0 + # gndx1 → ¬ (gndx0 + gndx1)[n].end) ⊦ gndx0 + gndx1 = [], gndx0 = [], nd = ndx[n0], ndx = [] |
gndx0[n0] = mkgnode(nd, m, boolvar, boolvar0), gndx0[n] = mkgnode(nd2, m2, boolvar5, boolvar6), gnd = mkgnode(nd1, m1, true, boolvar4), gndx0 = gnd + gndx2, n0 + 1 < # ndx, # gndx0 + # gndx1 < # ndx, # gndx0 < # ndx, n0 < # gndx0, n0 < # ndx, ∀ n. (n ≠ 0 ∧ n < # gndx0 + # gndx1 → ¬ (gndx0 + gndx1)[n].start) ∧ (n < # gndx0 + # gndx1 → ¬ (gndx0 + gndx1)[n].end), ∀ n. n < # gndx0 + # gndx1 → (gndx0 + gndx1)[n].nd = ndx[n] ⊦ gndx0 + gndx1 = [], gndx0 = [], nd = ndx[n0], ndx = []
Used simplifier rules: gndx ≠ [] ⊦ gnd = gndx.head ∧ gndx0 = gndx.tail ↔ gndx = gnd + gndx0; (elim) Used terms: gndx0, gnd, gndx