Keep the gradient flowing

Queries and performance

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, branch master. It now relies even more on logic.inference.satisfiable(), which is just an implementation of …

Reading CNF files

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 …

Logic module merged

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.

The boolean satisfiability problem

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

Then it will not know …

Initial implementation of the query system

I sent some patches to sympy-patches with an initial implementation of the query system. You can check it out by pulling from my branch: git pull master into your sympy repo. Some examples of what you can do (sample isympy session): In [1 …

Assumption system and automatic theorem proving. Should I be learning LISP ?

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 …

Homenaje a Antonio Vega en La Percha

El pasado jueves estuvimos en La Percha tocando algunas canciones de Antonio Vega. El vídeo se lo ha currado mi padre mezclando el sonido del directo con una grabación que hicimos en casa de Migue

LOS ESCLAVOS: homenaje a Antonio Vega from Felipe Pedregosa on Vimeo.

Fun with the new Logic module

The logic module is slowly becoming useful. This week I managed to get some basic inference in propositional logic working. This should be enough for the assumption sysmtem (although having first-order inference would be cool). You can pull from my branch: `` git pull …

Boolean algebra, first steps

The first task for my Summer of Code project is to write a nice boolean algebra module. I wanted a clean module that follows SymPy's object model and that plays well with other objects. In practice this means that it should inherit from Basic and that it should behave well …

Logic modules in python

As a prerequisite of my GSOC project I have to do some modifications on sympy's current logic module (see previous post), so I decided to go out and take a look at what others are doing in this area. aima-python is a project that tries to implement all algorithms found …