sympy/sympy — pull request #2250 by jrioux (2013-07-04 09:22:50+00:00)
Title: Deep processing of cancel() for Piecewise() instances.

Now cancel(Piecewise((e1, c1), ...) returns Piecewise((cancel(e1), c1), ...)

Fixes issue 3923: Calling cancel() on a Piecewise() instance.
http://code.google.com/p/sympy/issues/detail?id=3923