class_docstr: Represents an upper or lower bound or an equality between a symbol
  and some constant.
class_docstr_tok: ["Represents","an","upper","or","lower","bound","or","an","equality","between","a","symbol","and","some","constant","."]
code: def __init__(self, var, const, upper, equality, strict=None):
      if not equality in [True, False]:
          assert equality in [True, False]
  
      self.var = var
      if isinstance(const, tuple):
          s = const[1] != 0
          if strict:
              assert s == strict
          self.bound = const[0]
          self.strict = s
      else:
          self.bound = const
          self.strict = strict
      self.upper = upper if not equality else None
      self.equality = equality
      self.strict = strict
      assert self.strict is not None
  
imports: from sympy.solvers.solveset import linear_eq_to_matrix
  from sympy.matrices.dense import eye
  from sympy.assumptions import Predicate
  from sympy.assumptions.assume import AppliedPredicate
  from sympy.assumptions.ask import Q
  from sympy.core import Dummy
  from sympy.core.mul import Mul
  from sympy.core.add import Add
  from sympy.core.relational import Eq, Ne
  from sympy.core.sympify import sympify
  from sympy.core.singleton import S
  from sympy.core.numbers import Rational, oo
  from sympy.matrices.dense import Matrix
label_desc: Use image node_id 1 to create a new Boundary object  with example: obj = Boundary(var, const, upper, equality, strict)