class_docstr: Object to keep track of upper and lower bounds
  on `self.var`.
class_docstr_tok: ["Object","to","keep","track","of","upper","and","lower","bounds","on","`","self.var","`","."]
code: def __init__(self, var):
      self.upper = LRARational(float("inf"), 0)
      self.upper_from_eq = False
      self.upper_from_neg = False
      self.lower = LRARational(-float("inf"), 0)
      self.lower_from_eq = False
      self.lower_from_neg = False
      self.assign = LRARational(0, 0)
      self.var = var
      self.col_idx = 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 LRAVariable object  with example: obj = LRAVariable(var)