If I compare two expressions in Maxima, it tells me they are equivalent, as expected:
(%i25) is(equal( sqrt(2)*sqrt(5), sqrt(10) ));
(%o25) true
But if I multiply each expression by a constant, it then tells me they're not equivalent any more:
(%i26) is(equal( sqrt(2)*sqrt(5)*2, sqrt(10)*2 ));
(%o26) false
Surely they must still be equivalent if I do the same thing to both expressions? If I try adding a constant instead of multiplying, it returns true as expected:
(%i27) is(equal( sqrt(2)*sqrt(5)+2, sqrt(10)+2 ));
(%o27) true
version info
(%i2) build_info();
(%o2) Maxima version: "5.32.1"
Maxima build date: "2014-01-10 01:52:55"
Host type: "x86_64-unknown-linux-gnu"
Lisp implementation type: "GNU Common Lisp (GCL)"
Lisp implementation version: "GCL 2.6.10"
is(equal( sqrt(a)sqrt(b), sqrt(ab) ));
– John B Feb 02 '20 at 01:05unknownis the correct output tois(equal( sqrt(a)*sqrt(b), sqrt(a*b) ));unless you setradexpand=allorassume(a>0)orassume(b>0)I think this is simply a bug – miracle173 Feb 03 '20 at 15:10(%i2) build_info(); (%o2) Maxima version: "5.32.1" Maxima build date: "2014-01-10 01:52:55" Host type: "x86_64-unknown-linux-gnu" Lisp implementation type: "GNU Common Lisp (GCL)" Lisp implementation version: "GCL 2.6.10"
– John B Feb 04 '20 at 14:50