Today I was surprised by the following treatment of equations in Mathematica. I understand, for example, the following
In: a*b/a
Out: b
and nobody cares about what was the value of a. But I was quite surprised to find out that the same behavior takes place in case of equations. For example,
In: a*b/a!=0
Out: b!=0
I would expect the result a!=0&&b!=0
(or the original equation unchanged).
This leads to quite unexpected behavior in more complicated expressions. For example, if I wondered, whether there is a regular matrix of the form $A=\pmatrix{b/a&c\cr 0&a}$ such that $A\pmatrix{0\cr1}=\pmatrix{1\cr 0}$, I would write
In: Resolve[Exists[{a,b,c}, {{b/a,c},{0,a}}.{0,1}=={1,0} && Det[{{b/a,c},{0,a}}] != 0]]
Out: True
which surprisingly yields positive answer.
So, is this my bad programming? Should I put all equations into Reduce or something?