I know that sympy in python can set assumptions on variables, such as x is positive, negative, real, complex, etc. I was wondering if sympy can set assumptions on variables
I was wondering whether to post this as a comment but it is too long:
Short answer: not in a usable way.
The assumption system of SymPy is kind of a mess right now (version 0.7.2, latest as of May 2013). There is a possibility that it will get better this summer due to a prospective GSoC project, but this is not certain yet.
There are actually two assumption systems within SymPy. The old one, which adds the assumptions to the Symbols themselves (hence causes problems with rebuilding of expression trees) and is called in the constructor (e.g. Symbol(..., positive=True)
), and there is the new one, which is based around global variables for the global assumptions and context managers (with assume(...):
) for local ones.
Many of the functions within SymPy do check the old assumptions (for instance Abs
will check whether the keyword argument positive
was set), but there still can be misses. The new assumption system can be more powerful but is almost unused at the moment (except in very recent submodules).
In the old assumption system what you want is not possible. In the new one it is possible, but probably not implemented yet and not used in any parts of SymPy.
So you have two options: help us with the assumption systems or help us with the matrix module. Both can use some more love.