>I'm still waiting for you to explain why this line of code is changed. It was clearly written as lhs.is_Add on purpose. The change to (lhs - rhs).is_Add means that it is almost always True.    Oh sorry, actually that was the wrong step instead I just wanted to retain the code (realized during discussion) as it was in the 1st commit of this PR i.e. https://github.com/sympy/sympy/blob/04a73dd8a2d57e6d5c5e89b38330c3e4b6575b61/sympy/solvers/solveset.py#L1984-L2023      