| gndx + mkgnode(nd, n, boolvar, true) ' = mkgnode(nd0, m, true, boolvar1) ' + gndx0, # gndx + 1 < # ndx, ∀ n0. ¬ # gndx < n0 → (mkgnode(nd0, m, true, boolvar1) ' + gndx0)[n0].nd = ndx[n0], ∀ n0. (n0 ≠ 0 ∧ ¬ # gndx < n0 → ¬ (mkgnode(nd0, m, true, boolvar1) ' + gndx0)[n0].start) ∧ (¬ # gndx < n0 → ¬ (mkgnode(nd0, m, true, boolvar1) ' + gndx0)[n0].end), 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 = [] |
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 = []
Used terms: # gndx0