Checking equivilence of equalities



On Tue, Feb 07, 2012 at 04:00:23PM -0500, Stavros Macrakis wrote:
> You could certainly do something like
> 
>         is  (  equal(   lhs(eq1)-rhs(eq1)  , lhs(eq2)-rhs(eq2) ) )
> 
> as you suggest, but that does NOT test that the truth-values of the
> equations are the same.
> 
> After all, 2*x=0 and x=0 are equivalent equations, but 2*x is not equal to
> x.  Logically, what you want is something like
> 
>         is  (  equal(   zerop(lhs(eq1)-rhs(eq1))  , zerop(
> lhs(eq2)-rhs(eq2) ) ) )
> 
> but Maxima doesn't support any such zerop function.
> 
> You could define zerop(q) := signum(q)^2 , which is perfectly correct, but
> the <is> system won't be able to do anything useful with that.
> 
>            -s

I am quite suprised that this functionality does not exist. I would have
thought that equality equivilence would be a commonly used feature in a
CAS system.

I will raise a feature request and see what the developers say.

Cheers

-- 
Best Regards
Edd Barrett

http://www.theunixzoo.co.uk