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