Thanks for the tip about `.has()` taking multiple symbols. As for traversing through the args, I am sticking to standard SymPy idioms here.