Skip to content
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

Generate full Dimacs files #46

Open
fabian-kruse opened this issue Nov 7, 2022 · 1 comment
Open

Generate full Dimacs files #46

fabian-kruse opened this issue Nov 7, 2022 · 1 comment

Comments

@fabian-kruse
Copy link

fabian-kruse commented Nov 7, 2022

Hello,
I am using cadical on a series of very similar formulas with the goal of proving them unsatisfiable. For this I use the IPASIR interface of cadical. Generally, I have two questions:

  1. Since I try to solve similar formulas, I read in the part of the formula that is the same for all of them using the add(int lit) function of the IPASIR interface. Then I use the the assume(int lit) function to include a set of literals in the next solve() call. For the next call I then assume a different set of cubes. My problem here is, that I would like to generate a drat proof file for every call of the solve() function, but cadical requires me to pass a single file after initilizing the solver. Is there a way to generate individual files? If not, I would need to parse the larger part of the formula for every call, which would disallow the advantage of an incremental solver.

  2. Secondly, I would like to very the generated drat proof with drat trim. However, drat trim also requires the original dimacs formula as an additional input. Since I used the IPASIR interface, I never actually generated the formulas as individual files and preferably would like to do so with the help of cadical. Cadical has a funcion write_dimacs() which generates a simplified formula (which is great), but since my formulas should be unsatisfiable the simplified formulas consist of an empty formula. Is there a way to generate the initial formula?

Kind regards

@arminbiere
Copy link
Owner

Sorry for the late answer, but I did not see this until now. Combining proofs with incremental solving is not officially supported yet as several design issues are unsolved, i.e., how to use extension variables and also, what you seemed to be interested, how to stitch together pieces of DRAT proofs, even though I learned that there is a TACAS'23 paper coming up with Marijn Heule as co-author, which faced and solved similar issues in the context of generating proofs for distributed SAT solving with CaDiCaL.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants