Hello

There are a couple of things present in the Logic module that I would like 
to discuss:

1. Ask Function in PropKB:
If KB 'A' entails formula 'B' then A U {~B} is unsatisfiable. However the 
current code seems to check if A U {B} is satisfiable. To the best of my 
understanding, this will give the right answer in many case, but not all.

2. Ask Function on a PropKB with no clauses:
The function returns False if there are no clauses. Theoretically, an empty 
clause is unsatisfiable but empty clause set is valid. Hence, it is 
satisfiable in all interpretations. So it only entails formulas that are 
satisfiable in all interpretation i.e. valid. So shouldn't an empty KB 
entail a tautology?

3. DNF Satisfiability:
As discussed before, the time taken by to_cnf is actually more than the 
time taken by the SAT solver. A relatively quick and dirty way to decide 
whether the formula resembles CNF or DNF can be to compare the number of 
conjuncts and disjuncts present in the formula. This seems to be giving 
reasonable results. So, I want to change the code to do this: If more 
conjunctive then dpll, else dnf sat. DNF Satisfiability seems to be a 
linear problem and would be easier to compute. Is this okay?

I am done with the code for the above issues and will send a PR once 
someone confirms my ideas.

-- 
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.

Reply via email to