Is there a reason to return Python floats? I would suggest to return SymPy exact expression, that is, `Integer(1) / 2` or something similar.