2010/4/1 Aaron S. Meurer <asmeu...@gmail.com>:
> I like this idea.  Maybe it doesn't necessarily have to be tied to Symbol.  
> If there is some kind of global assumptions table, or you are in some "with 
> Assume(x, Q.something):" context, then x.is_something would just be a 
> shortcut to look it up in there.  It may make it seem to the user that the 
> assumptions are stored in the symbol, but it doesn't really matter because 
> that is just an implementation detail that he won't even care about either 
> way, unless he wants to implement some assumptions or a special symbol type 
> of his own.
>

Global assumptions are a mess, you actually never want them, I think
they should be removed from sympy. It works only for very simple and
small scripts, but not for complex stuff. If some part of your code
uses

x = Symbol('x', positive=True)

and another part

x = Symbol('x', negative=True)

you got a problem. Even if you overwrite the global assumption, it
does not work if you call a subroutine that changes them and breaks
the assumptions of the routine calling the subroutine.

Really, you don't want global assumptions, you want local assumptions.

Using Python's introspection, it should be easy to implement
assumptions that are only valid for the local scope and automatically
garbage-collected if no longer necessary. It would be maybe somewhat
hackish, but it is clearly defined behavior.

It would be a solution to clean your global assumptions explicitly,
but this is not backward-backward compatible and unnecessarily
cumbersome. And it's a huge amount of useless code added to sympy.

Vinzent

-- 
You received this message because you are subscribed to the Google Groups 
"sympy-patches" group.
To post to this group, send email to sympy-patc...@googlegroups.com.
To unsubscribe from this group, send email to 
sympy-patches+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sympy-patches?hl=en.

Reply via email to