I don't know if there's a wiki, but a quick version would be
Old assumptions: Symbol('x', real=True). x.is_real. The assumptions code
lives in sympy/core/assumptions.py and the logic algorithm lives in
sympy/core/facts.py.
Advantages: Logic algorithm works well (detects invalid sets of
assumptions).
Disadvantages: Only allowed to assume things on Symbols. Tied deeply to the
core. Not easily extensible.
New assumptions: Q.positive(x), assuming(), refine(), ask(). The
assumptions code lives in sympy/assumptions/ and the logic algorithm lives
in sympy/logic.
Advantages: Can assume arbitrary things on arbitrary expressions. Separated
from the core. Easily extensible (or at least in theory on this last point).
Disadvantages: Not yet integrated with most of SymPy. The inference doesn't
do basic checks for inconsistent assumptions. Not battle tested like the
old assumptions. Not as many assumptions and logic for the assumptions are
implemented yet.
We want to remove the old assumptions and replace them with the new
assumptions, but it's a lot of work, because pretty much every part of
SymPy uses the assumptions in fundamental ways.
Aaron Meurer
On Mon, Jul 8, 2013 at 12:23 AM, Stephen Loo <[email protected]> wrote:
> Ok, I will submit pull request tonight. And any FAQ/wiki about what is
> "new assumptions"?
>
> Stephen
>
>
> Aaron Meurer於 2013年7月8日星期一UTC+8上午11時50分28秒寫道:
>>
>> Hi.
>>
>> I don't know if there are many here who can answer your questions. I
>> recommend reading the blog of Christian Muise, who wrote the module as part
>> of his Google Summer of Code project (http://haz-tech.blogspot.com/**,
>> read the posts from 2010). I have also CC'd him in this email.
>>
>> One thing I can tell you is that there are a lot of benchmarks in the
>> logic module, so you can probably determine for yourself which is faster.
>> In my experience, neither is particularly fast (or at least not as fast as
>> a well-developed C solver like picosat).
>>
>> If you want to help out with the logic stuff in SymPy, that would be
>> great. It is very important to our assumptions. See
>> https://code.google.com/p/**sympy/issues/detail?id=3929<https://code.google.com/p/sympy/issues/detail?id=3929>for
>> how I think we should be using logic in the new assumptions system.
>>
>> And by the way, here's a really easy issue that you could fix to get
>> started:
>> https://code.google.**com/p/sympy/issues/detail?id=**3856<https://code.google.com/p/sympy/issues/detail?id=3856>
>> .
>>
>> Aaron Meurer
>>
>>
>> On Sun, Jul 7, 2013 at 10:43 PM, Stephen Loo <[email protected]> wrote:
>>
>>> Hello,
>>>
>>> I am studying DPLL algorithm and reading source
>>> sympy/logic/algorithms/dpll.**py, and have some questions.
>>>
>>> Why implement boolean and integer representation of same function in
>>> this module? And why use integer representation version in public API? Is
>>> dpll2.py same functionality and performance as dpll.py? The difference
>>> between two module is function implementation and class implementation
>>> only?
>>>
>>> Thanks,
>>> Stephen
>>>
>>>
>>> --
>>> 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 sympy+un...@**googlegroups.com.
>>> To post to this group, send email to [email protected].
>>>
>>> Visit this group at
>>> http://groups.google.com/**group/sympy<http://groups.google.com/group/sympy>
>>> .
>>> For more options, visit
>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>
>>> .
>>>
>>>
>>>
>>
>> --
> 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 http://groups.google.com/group/sympy.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>
--
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 http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.