Hi:

the example

import sympy
energy=sympy.symbols('E',positive=True)
from sympy.assumptions.assume import global_assumptions
global_assumptions.add(sympy.Q.positive(energy-1))
position=sympy.symbols('r',real=True)
momentum=energy-1-sympy.exp(position)
interval=sympy.solveset(momentum,position,sympy.S.Reals)    
print(interval)

the output is:Intersection((-oo, oo), {log(E - 1)})

And then I ask:
sympy.ask(sympy.Q.positive(energy-1))
the output is true

So it seems that solveset totally ignores the global_assumptions. How to tell 
solveset the global_assumptions, so it can use them to do more simplification?

I also try sympy.refine and sympy.simplify to simplify the final interval, but 
none of them can simplify interval to just {log(E-1)};

By the way, I want to ask how does the assumption system interact with other 
part of sympy. I know I can give assumption when I define variables, like 
real=True,
positive=True. But I can not give relative assumption, like E+1 is positive or 
A-B is greater than C. I figure out global_assumptions may consider relative
assumption. But how about the other parts of sympy, like solveset, integrate, 
integrate.transform, simplify? Do they take global_assumptions into 
consideration?
I know mathematica, maple and maxima all support relative assumption. And they 
can use the assumptions to do more simplification. Does the assumption system in
sympy act like the same way?

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/8ca64f15-1a83-4a66-87db-fa0f9ebea279%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to