I have almost completed my GSoC proposal on extending the propositional 
knowledge base and creating a new module for first order logic. However 
there are a couple of doubts that I would like to clear before putting up 
the proposal online.

   1. Will first order logic be integrated with its propositional 
   counterpart or exist independently? Going for integration will make the 
   code messy as appropriate checks will have to be made at EVERY point. On 
   the other hand, independent existence will introduce a good amount of 
   redundancy.
   2. Many concepts from first order logic are implemented in the 
   assumption system (for e.g. predicates). However these implementations seem 
   (I am not sure if they are) to be quite specific in nature. Should I try to 
   make changes to the pre-existing code and build the rest of the codebase 
   around it? Right now my proposal involves building a generic first order 
   logic module from scratch. Additionally, once the logic module is mature 
   enough to handle the requirements of the assumption system, would the new 
   assumption use the new sympy.logic or continue to use the code in 
   sympy.core / sympy.assumptions (which seems to fulfill the need except for 
   efficiency parameters).
   3. One of my ideas is to create a faster SAT solver. Picosat and minisat 
   appear to be good candidates. As suggested by @asmeurer we could always use 
   something on the lines of pycosat (without making it a hard dependency) but 
   the native solver should still be as fast as possible. Currently I am 
   inclined towards implementing minisat (as pycosat can be used for picosat). 
   Some suggestion for an appropriate solver would be helpful. Is it mandatory 
   for me to declare the solver I am going to use in my proposal? I believe 
   this decision can only be taken after actual implementation and thorough 
   benchmarking.
   4. Considering that the assumption system is supposed to use the logic 
   module heavily, some indication about the functions required (by the 
   assumption system from the logic module) would be an enormous help.
   5. If my proposal were to get selected, who would be the potential 
   mentor? A.K.A who am I supposed to bug for the next couple of days for 
   suggestions and improvements. There are some implementation issues that I 
   really want to discuss and put in the final proposal.

Thanks in advance for the help.

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/3ab02e25-4ec7-4cfb-a696-e0fef118a25e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to