Richard,
I don't understand why you're building messy wheels within wheels to work
around the quirks of assume/forget when the context mechanism was designed
precisely to solve the problem you have -- simply and straightforwardly
(and if it doesn't, it's a bug in the context system, not your code).
As for
there is no way to fix Maxima if it allows inconsistent facts to be present
at the same time, which it does.
Are you referring to your sequence (assume(c>1), c:-1)? Yes, it is true
that Maxima does not object to this. Not sure how it could. Checking the
compatibility of every assignment with the assumption database would make
assignments prohibitively expensive. Anyway, even leaving aside
theoretical limits on inference, Maxima's assumption inference engine is
pretty weak .
-s
On Sun, Jun 3, 2012 at 11:38 AM, Richard Hennessy <rich.hennessy at verizon.net
> wrote:
> I have come up with a fix to the leaking problem in simp_given() that
> fixes these two bugs and I don't think it can get any better than this even
> if you use contexts, but I am not sure of that.
>
> (%i19) kill(all);
> (out0) done
> (%i1) load(pw);
> (out1) C:/Maxima-5.27.0/share/maxima/**5.27.0/share/contrib/pw.mac
> (%i2) assume(c>0);
> (out2) [c > 0]
> (%i3) facts();
> (out3) [kind(sinh, one_to_one), kind(log, one_to_one), kind(tanh,
> one_to_one), kind(log, increasing), c > 0]
> (%i4) c:-1;
> (out4) - 1
> (%i5) facts();
> (out5) [kind(sinh, one_to_one), kind(log, one_to_one), kind(tanh,
> one_to_one), kind(log, increasing), c > 0]
> (%i6) simp_given(c,c>1);
> (out6) - 1
> (%i7) facts();
> (out7) [kind(sinh, one_to_one), kind(log, one_to_one), kind(tanh,
> one_to_one), kind(log, increasing), c > 0]
> (%i8) simp_given(signum(c),c>1);
> (out8) 1
> (%i9) facts();
> (out9) [kind(sinh, one_to_one), kind(log, one_to_one), kind(tanh,
> one_to_one), kind(log, increasing), c > 0]
> (%i10) d:c;
> (out10) - 1
> (%i11) facts();
> (out11) [kind(sinh, one_to_one), kind(log, one_to_one), kind(tanh,
> one_to_one), kind(log, increasing), c > 0]
> (%i12) simp_given(signum(c),c>d);
> (out12) 1
> (%i13) simp_given(signum(c),d>0);
> (out13) 1
> (%i14) facts();
> (out14) [kind(sinh, one_to_one), kind(log, one_to_one), kind(tanh,
> one_to_one), kind(log, increasing), c > 0]
> (%i15) simp_given(signum(d),d>0);
> (out15) - 1
> (%i16) facts();
> (out16) [kind(sinh, one_to_one), kind(log, one_to_one), kind(tanh,
> one_to_one), kind(log, increasing), c > 0]
> (%i17)
>
> This is better but still wrong in some ways but there is no way to fix
> Maxima if it allows inconsistent facts to be present at the same time,
> which it does.
>
> Rich
>
> PS Here is the new improved and better simp_given().
>
> simp_given(__e, [__fcts]) ::=
> buildq
> (
> [__e,__fcts],
> block
> (
> [_fct, _otherfacts:facts()],
> unwind_protect
> (
> (
> apply(assume, __fcts),
> expand(__e, 0, 0)
> ),
> for _fct in facts() do
> (
> if not member(_fct, _otherfacts) then
> apply('forget, ['_fct])
> )
> )
> )
> );
>
> I have updated pw.mac on www.sourceforge.net with this fix. I changed
> the version number to 6.5.
>
>
>
> -----Original Message----- From: Richard Hennessy
> Sent: Saturday, June 02, 2012 7:34 PM
> To: Barton Willis ; Stavros Macrakis
>
> Cc: maxima at math.utexas.edu
> Subject: Re: [Maxima] pw.mac
>
> Oops, your both right. I didn't catch these cases. It is a bug. Contexts
> should fix that.
>
>
> -----Original Message----- From: Barton Willis
> Sent: Saturday, June 02, 2012 5:25 PM
> To: Stavros Macrakis ; Richard Hennessy
> Cc: maxima at math.utexas.edu
> Subject: RE: [Maxima] pw.mac
>
>
> A crazy chained assignment:
>
> (%i3) (a : b, b : c, c : d, d : e)$
>
> No facts:
>
> (%i4) facts();
> (%o4) []
>
> Call simp_given on 1 with one fact a < b
>
> (%i5) simp_given(1,a<b);
> (%o5) 1
>
> And oops--a fact leaked out:
>
> (%i6) facts();
> (%o6) [d>c]
>
> Isn't this a bug?
>
>
>
> --Barton
>
>
>
> ______________________________**_________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/**mailman/listinfo/maxima<http://www.math.utexas.edu/mailman/listinfo/maxima>
>