-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What is the semantics of the Qbf.result type? #13
Comments
Good question, I have no idea. |
I can't find anything obviously bad in the bindings. It might be that quantor decides -2, -3, and then propagates +1 but doesn't assign it properly? |
Very puzzling! |
Do you know of any alternative ocaml bindings to some qbf solver that provides assignments? Thanks! |
sadly, no. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Consider the following formulas
f1 = E x1 x2 x3 (x1 | -x2 | -x3) & (-x1 | x2 | x3)
andf2 = E x1 x2 x3 (x1 | x2 | x3) & (-x1 | -x2 | -x3)
. In both cases, runningQbf.solve
withQuantor.solver
returns SAT with the following assignment:mu: x1=undef, x2=false, x3=false
.This is very strange: in both cases, if I assign
x2
andx3
to false, the formulas don't simplify completely. In one case, the application of the partial assignmentmu
givesf1/mu = E x1, (-x1)
and in the second case we getf2/mu = E x1, (x1)
. In other words, the partial assignment insufficient to prove/confirm that the formula is SAT, it is not a witness. Additionally, even if we complete the partial assignment by assigning a default value to the undefined variables, we can't actually know in advance what would be the correct default (since it would be different forf1
and forf2
).If the returned partial assignment is not a witness and cannot be easily extended to a witness, why not simply returning all variables as undef (or even simpler, not returning any partial assignment)? If the current situation is not a bug, how can we characterize the return partial assignment?
Example code:
The text was updated successfully, but these errors were encountered: