Three months after I began to write sympy.queries, I feel it's about
time to include it in sympy's trunk, so today I sent for review 4
patches that implement the complete query module. It's been a lot of
fun, but it has also caused me some headaches ... specially last …
The 0.6.5 release of SymPy is taking longer than expected because some
bugs in the testing framework, so my query module is not merged into
trunk (yet). In the meantime, I am implementing a refine module (very
little code is available yet). The refine module implements a refine …
Last days I've been busy preparing the first public beta of SymPy
0.6.5. Most of the time was spent solving a bug that made
documentation tests fail under python2.4, but now that this is solved, I
hope that by the end of the week we could have …
Background: DPLL is the algorithm behind SymPy's implementation of
logic.inference.satisfiable After reading the original papers by Davis &
Putnam [1], I managed to implement a more efficient version of the DPLL
algorithm. It is 10x times faster on mediumsized problems (40
variables), and solves some wrong result bugs [2 …
After some hacking on the queries module, I finally got it right without
the limitations of past versions. You can check it out from my repo
http://fa.bianp.net/git/sympy.git, branch master. It now relies even more
on logic.inference.satisfiable(), which is just an implementation of …
The DIMACS CNF file format is used to define a Boolean expression,
written in conjunctive normal form, that may be used as an example of
the satisfiability problem. The new logic module (sympy.logic) can read
the content of a cnf file and transform it into a boolean expression
suitable …
Yesterday I finally merged the logic module in sympy's official master
branch, and should be released together with SymPy 0.6.5. Next thing to
do: profile the code and write some docs before the release.
Most annoying problem in my implementation of the query system is that
it will not solve implications if the implicates are far away from each
other. For instance, if the graph of known facts is something like this
Integer > Rational > Real > Complex
^ ^
 
 
 
Prime Even
^


MersennePrime
Then it will not know …
I sent some patches to sympypatches with an initial implementation
of the query system. You can check it out by pulling from my branch:
git pull http://fa.bianp.net/git/sympy.git master into your sympy
repo. Some examples of what you can do (sample isympy session):
In [1 …
This is the third time I attempt to write the assumption system. Other
attempts could be described as me following the rule: “For any complex
problem, there is always a solution that is simple, clear, and wrong.”
My first attempt (although better than the current assumption system)
did use very …