Scope, assumptions, asksign, context. Was Re: Bug in Maxima 5.30.0



That sounds great.  One thing to be careful about -- Maxima allows
retraction of assertions, so any deductions from a given assertion would
also have to be retracted.  For example:

assert(a>b)$
assert(c>0)$
sign(a-b+c) => calls Fourier-Motzkin, gets pos
assert(a-b+c>0)   <<< derived assertion

forget(c>0)$  <<< must also forget a-b+c>0

The simplest thing to do would be to forget *all* derived assertions
whenever forget was called.  That is obviously crude, but obviously
correct. There are various refinements possible keeping track of the
dependency structure.

One problem here is that if the user *explicitly *adds assert(a-b+c>0),
Maxima considers that a redundant assertion -- we must somehow record that
it is no longer a derived assertion, though.

               -s




On Mon, Sep 2, 2013 at 12:45 PM, Barton Willis <willisb at unk.edu> wrote:

>  For linear inequations (=, < <=, =/=), Fourier-Motzkin elimination
> (basically Gauss elimination on inequations) can correctly deduce the
> sign of any linear expression (actually determine lower and upper bounds).
> The fact database could save the triangularized inequations
> so appending a new fact could be done relatively quickly. Forgetting a
> fact might require re-building the triangularized inequations from
> scratch.
>
> Maxima allows nonlinear assumptions (for example assume(bessel_j(x,x)>
> 42)). Deciding how to handle such assumptions is a puzzle.
>
> --Barton
>
>  ------------------------------
>
>    I agree ... there is a lot to be done in this area.  The work splits
> up logically into three parts:
>
>  * Scope of identifiers
>  * Scope of assumptions
>  * Core mathematical inference
>
>
>