You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* What are the steps to reproduce the problem?
It is often quite convenient to manipulate propositional sentences in string
format
and then pass them to dpll_satisfiable to be solved.
If you pass a string argument to dpll_satisfiable, it sometimes works correctly
(in the cases when no choice is required), but other times gives an obscure
"out of index" error.
* What is the expected output? What do you see instead?
Running:
>>> import logic
>>> logic.dpll_satisfiable("A")
{A: True}
Expected result would be {A: True}
But then the following behaviour:
>>> logic.dpll_satisfiable("A | B")
Traceback from previous calls
...
P, symbols = symbols[0], symbols[1:]
IndexError: list index out of range
I would expect to get either
{A: True}
or an error that the type of the argument should be Expr.
* What version of the product are you using? On what operating system?
The problem is in r202 (and earlier revisions) from the repository.
* Please provide any additional information below.
The debugging can be made much simpler by adding the following line to logic.py:
@@ -643,6 +643,7 @@
>>> dpll_satisfiable(P&~P)
False
"""
+ assert isinstance(s, Expr), "The argument 's' must be an instance of the
Expr type. Use logic.expr(string) to convert a string to Expr instance."
clauses = conjuncts(to_cnf(s))
symbols = prop_symbols(s)
return dpll(clauses, symbols, {})
The code in this project is wonderful for learning and teaching purposes and
adding clutter is generally not a good idea. In this case the little additional
clutter is justified to save time in debugging and ease understanding.
Original issue reported on code.google.com by juhan.er...@gmail.com on 7 Dec 2013 at 1:16
The text was updated successfully, but these errors were encountered:
Original issue reported on code.google.com by
juhan.er...@gmail.com
on 7 Dec 2013 at 1:16The text was updated successfully, but these errors were encountered: