#2343 fact that cannot be forgotten


(%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);


  • Stavros Macrakis

    • status: open --> closed
  • Stavros Macrakis

    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.


  • Stavros Macrakis

    • labels: --> Lisp Core - Assume

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks