I found the report for the ZeroDivisionError with Float(0) at http://code.google.com/p/sympy/issues/detail?id=3595. I think you could concentrate on that to solve your immediate issue. Having `And` and `Or` short circuit as you suggests might involve some design decisions that I alone am not sure if it is a good idea.