Menu

#3611 assume fails on sums

None
open
nobody
assume (35)
5
2021-01-18
2020-02-22
No

Maxima 5.43.0 http://maxima.sourceforge.net
using Lisp SBCL 1.4.14
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information.
(%i1) rel: [equal(i1+i2,i3),equal(i1-i3,i2),equal(i1,i2+i3)];

map('assume,rel) =>
[[equal((- i3) + i2 + i1, 0)], [equal((- i3) - i2 + i1, 0)], [equal((- i3) - i2 + i1, 0)]]
<<< has accepted all these assertions

map('is,rel) => [true, unknown, unknown]
<<< doesn't recognize the exact cases that were asserted

This does NOT happen if you don't assume equal(i1+i2,i3).

Discussion

  • Gunter Königsmann

    For me assume() works on some sums:

    assume((4*C_In*R_Load^2+L_Cable1)>0);
    is((4*C_In*R_Load^2+L_Cable1)>0);
    

    and

    assume((4*C_In*R_Load^2-L_Cable2)>0);
    is((4*C_In*R_Load^2-L_Cable2)>0);
    

    But the assume(equal(something)) syntax used in the original ticket seems not to be supported:

    assume(equal(C,0));
    is(C=0);
    
     
  • Robert Dodier

    Robert Dodier - 2021-01-18
    • labels: --> assume
     
  • Robert Dodier

    Robert Dodier - 2021-01-18

    Something to investigate is whether it makes a difference if the names of the variables i1, i2, i3 are permuted.

    The assume database is an ordered heap, if I understand the implementation correctly. Exactly where in the heap a new assumption is placed probably depends on variable ordering, and in turn that probably has an effect on whether is can make sense of a query. Just guessing at this point.

     

Log in to post a comment.