| gndx + mkgnode(nd, n, boolvar, true) ' = mkgnode(nd0, m, true, boolvar1) ' + gndx0, # gndx + 1 < # ndx, # gndx0 ≠ 0 ∧ ¬ # gndx < # gndx0 → ¬ (mkgnode(nd0, m, true, boolvar1) ' + gndx0)[# gndx0].start, ¬ # gndx < # gndx0 → ¬ (mkgnode(nd0, m, true, boolvar1) ' + gndx0)[# gndx0].end, ∀ n0. ¬ # gndx < n0 → (mkgnode(nd0, m, true, boolvar1) ' + gndx0)[n0].nd = ndx[n0], mkgnode(nd0, m, true, boolvar1) ∈ gndx ∨ mkgnode(nd0, m, true, boolvar1) = mkgnode(nd, n, boolvar, true), mkgnode(nd, n, boolvar, true) = mkgnode(nd0, m, true, boolvar1) ∨ mkgnode(nd, n, boolvar, true) ∈ gndx0 ⊦ ndx = [] |
gndx + mkgnode(nd, n, boolvar, true) ' = mkgnode(nd0, m, true, boolvar1) ' + gndx0, # gndx + 1 < # ndx, ¬ # gndx < # gndx0 → ¬ (mkgnode(nd0, m, true, boolvar1) ' + gndx0)[# gndx0].end, gndx0 ≠ [] ∧ ¬ # gndx < # gndx0 → ¬ (mkgnode(nd0, m, true, boolvar1) ' + gndx0)[# gndx0].start, ∀ n0. ¬ # gndx < n0 → (mkgnode(nd0, m, true, boolvar1) ' + gndx0)[n0].nd = ndx[n0], mkgnode(nd, n, boolvar, true) = mkgnode(nd0, m, true, boolvar1) ∨ mkgnode(nd, n, boolvar, true) ∈ gndx0, mkgnode(nd0, m, true, boolvar1) ∈ gndx ∨ mkgnode(nd0, m, true, boolvar1) = mkgnode(nd, n, boolvar, true) ⊦ ndx = []
Used simplifier rules: ⊦ # gndx = 0 ↔ gndx = []; (s)