def __truediv__(self, other: 'ExactRealProgram'):
     other = cast_input(other)
     return ExactDiv([self, other])
 def __sub__(self, other: 'ExactRealProgram'):
     other = cast_input(other)
     return ExactSub([self, other])
 def __mul__(self, other: 'ExactRealProgram'):
     other = cast_input(other)
     return ExactMul([self, other])
 def __add__(self, other: 'ExactRealProgram'):
     other = cast_input(other)
     return ExactAdd([self, other])
 def __rtruediv__(self, other: 'ExactRealProgram'):
     return cast_input(other) / self
 def __rmul__(self, other: 'ExactRealProgram'):
     return cast_input(other) * self
 def __rsub__(self, other: 'ExactRealProgram'):
     return cast_input(other) - self
 def __radd__(self, other: 'ExactRealProgram'):
     return cast_input(other) + self