sympy/sympy — pull request #1314 by rlamy (2012-05-26 03:45:16+00:00)
Title: Refactor has

I'm finally finishing a branch I started a while ago. This:

* moves preorder_traversal to sympy.core.basic (cf. [issue 2822](http://code.google.com/p/sympy/issues/detail?id=2822)),
* uses it in atoms(), has(), find() and count(),
* refactors `Basic.has()` avoiding hardcoded references to specific subclasses,
* fixes bugs like `(x*y).has(x + y) == True` and `(x & y &z).has(x & y) == False`.