См. Руководство: https://docs.sympy.org/latest/tutorial/gotchas.html#equals -знаки
Два выражения, которые у вас есть, структурно не равны:
In [2]: (~a&b)|(a&~b)
Out[2]: (a ∧ ¬b) ∨ (b ∧ ¬a)
In [3]: a^b
Out[3]: a ⊻ b
Поэтому они не будут сравниваться равными с ==
.
Вы можете упростить их, чтобы сравнить:
In [9]: simplify_logic((~a&b)|(a&~b))
Out[9]: (a ∧ ¬b) ∨ (b ∧ ¬a)
In [10]: simplify_logic(a^b)
Out[10]: (a ∧ ¬b) ∨ (b ∧ ¬a)
In [11]: simplify_logic((~a&b)|(a&~b)) == simplify_logic(a^b)
Out[11]: True