#8969: problems with maxima inequalities
-------------------------+--------------------------------------------------
   Reporter:  dsm        |       Owner:  burcin
       Type:  defect     |      Status:  new   
   Priority:  minor      |   Milestone:        
  Component:  symbolics  |    Keywords:        
     Author:             |    Upstream:  N/A   
   Reviewer:             |      Merged:        
Work_issues:             |  
-------------------------+--------------------------------------------------
 'Sage Version 4.4.1, Release Date: 2010-05-02'[[BR]]mac 10.4 32 bit
 running on 10.5.8.

 sage: solve([2*x==3, x < 10], x)[[BR]][[x == (3/2)]][[BR]]sage:
 solve([2*x==3, x > 10], x)[[BR]][][[BR]]sage: solve([2*x==3, x == 10],
 x)[[BR]][][[BR]]sage: solve([2*x==3, x == 3/2], x)[[BR]][[x == (3/2)]]

 sage: solve([2*x==3, x < 4, x > 4], x)[[BR]][][[BR]]

 all work as expected, but:

 sage: solve([2*x==3, x != 5],
 
x)[[BR]]---------------------------------------------------------------------------[[BR]]!TypeError
 Traceback (most recent call last)[[BR]][[BR]]/Applications/sage/devel
 /sage-main/build/sage/<ipython console> in
 <module>()[[BR]][[BR]]/Applications/sage/local/lib/python2.6/site-
 packages/sage/symbolic/relation.pyc in solve(f, *args, **kwds)[[BR]]
 670                 s = [][[BR]]    671 [[BR]]--> 672         sol_list =
 string_to_list_of_solutions(repr(s))[[BR]]    673         if
 'solution_dict' in kwds and kwds!['solution_dict']==True:[[BR]]    674
 if isinstance(sol_list![0],
 list):[[BR]][[BR]]/Applications/sage/local/lib/python2.6/site-
 packages/sage/symbolic/relation.pyc in
 string_to_list_of_solutions(s)[[BR]]    455     from
 sage.structure.sequence import Sequence[[BR]]    456     from
 sage.calculus.calculus import
 symbolic_expression_from_maxima_string[[BR]]--> 457     v =
 symbolic_expression_from_maxima_string(s, equals_sub=True)[[BR]]    458
 return Sequence(v, universe=Objects(), cr_str=True)[[BR]]    459
 [[BR]][[BR]]/Applications/sage/local/lib/python2.6/site-
 packages/sage/calculus/calculus.py in
 symbolic_expression_from_maxima_string(x, equals_sub, maxima)[[BR]]   1527
 return symbolic_expression_from_string(s, syms,
 accept_sequence=True)[[BR]]   1528     except !!!SyntaxError:[[BR]]-> 1529
 raise !TypeError, "unable to make sense of Maxima expression '%s' in
 Sage"%s[[BR]]   1530     finally:[[BR]]   1531         is_simplified =
 False[[BR]][[BR]]!TypeError: unable to make sense of Maxima expression
 '[[x==3/2,-7/2!==0]]' in Sage

 --

 The "!==" which is causing trouble is due to the

 if equals_sub:[[BR]]            s = s.replace('=','==')

 lines in  symbolic_expression_from_maxima_string.  This could be fixed by
 changing the replace to a regexp, or adding a hack s = s.replace('!==',
 '!=') afterwards.

 This deals with the obvious problem but not the underlying one, which is
 that the result is still IMHO underprocessed:

 MODIFIED_sage: solve([2*x==3, x != 4], x)[[BR]][[x == (3/2), (-5/2) != 0]]

 when I wanted [[x == (3/2)]], or

 MODIFIED_sage: solve([2*x==3, x != 3/2], x)[[BR]][[x == (3/2), 0 != 0]]

 when I wanted [].

 In fact, even in cases not involving "!=", it's possible for maxima output
 -- %union([x = 3/2,  -5/2 # 0]) --  to be insufficiently processed,IMHO:

 sage: solve([2*x==3, (x-4)!^2 > 0], x)[[BR]][[x == (3/2), (-5/2) != 0]]

 ISTM the extra information about what condition maxima used isn't worth
 the inconvenience of having to postprocess the solutions to see if one
 exists.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/8969>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to