- status: open --> closed
(%i1) fct : notequal(-(%i*(x-%i))/(2*(1-%i*(x-%i))),0);
(%o1) notequal(-(%i*(x-%i))/(2*(1-%i*(x-%i))),0)
(%i2) assume(fct);
(%o2) [redundant]
(%i3) forget(fct);
sign: argument cannot be imaginary; found %i
-- an error. To debug this try: debugmode(true);
The fact cannot be forgotten because it was never added to the database, as indicated by "redundant". A simpler example:
assume(notequal(x,%i)) => [redundant] <<< i.e. Maxima already knows that x <> %i
facts() => [] <<< since assumption is redundant, it is not added to DB
The 'assume' system only works for reals (though of course equality and inequality are well-defined for complexes) and assumes that all variables are real. Thus:
<fresh Maxima>
is(equal(x,2)) => unknown
is(equal(x,%i)) => false
is(notequal(y,%i)) => true
Still, I would recommend that instead of simply returning 'redundant' for declarations involving complexes, that Maxima give a warning message.
-s