From: SourceForge.net <no...@so...> - 2007-04-06 03:56:59
|
Bugs item #1629043, was opened at 2007-01-05 14:13 Message generated for change (Comment added) made by willisbl You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1629043&group_id=4933 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Lisp Core - Assume Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Stavros Macrakis (macrakis) Assigned to: Nobody/Anonymous (nobody) Summary: assume: < doesn't imply not-equal Initial Comment: assume(r<1)$ is(equal(r,1)) => unknown (???) Maxima 5.11.0 GCL 2.6.8 Windows 2k ---------------------------------------------------------------------- >Comment By: Barton Willis (willisbl) Date: 2007-04-05 22:56 Message: Logged In: YES user_id=895922 Originator: NO Appending (simplifya e nil) might not be the right thing to do, but it does eliminate this bug: (defun equal-facts-simp (e) (let ((f (margs ($facts)))) (dolist (fi f (simplifya e nil)) (if (op-equalp fi '$equal) (setq e ($ratsubst (nth 2 fi) (nth 1 fi) e)))))) ---------------------------------------------------------------------- Comment By: Barton Willis (willisbl) Date: 2007-04-05 22:39 Message: Logged In: YES user_id=895922 Originator: NO What's the story: (%i1) assume(r<1); (%o1) [r<1] (%i2) :lisp(trace meqp csign); (MEQP CSIGN) (%i2) is(equal(x,1)),prederror : false; 1> (MEQP $X 1) 2> (CSIGN ((MPLUS RATSIMP) $X -1)) <-- the argument to csign looks specious ? <2 (CSIGN $PNZ) <-- Yikes! <1 (MEQP (($EQUAL) $X 1)) (%o2) unknown (%i8) ?csign(r-1); 1> (CSIGN ((MPLUS SIMP) -1 $R)) <1 (CSIGN $NEG) (%o8) neg <-- OK ---------------------------------------------------------------------- Comment By: Stavros Macrakis (macrakis) Date: 2007-01-05 14:19 Message: Logged In: YES user_id=588346 Originator: YES assume(r<1)$ is(equal(r,1)) => unknown (???) is(equal(r,2)) => unknown (???) On the other hand, assume(s<t)$ is(equal(s,t)) => false (OK) is(equal(s,t+1)) => unknown (oops, but probably not the same bug) assume(equal(q,1))$ is(q<1) => false (OK) is(q<=1) => true (OK) Maxima 5.11.0 GCL 2.6.8 Windows 2k ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=1629043&group_id=4933 |