-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Regarding Cardinality Constraint Encoding #4665
Comments
Signed-off-by: Nikolaj Bjorner <[email protected]>
There are a number of different ways to control the encoding. These weren't well exposed so I have pushed a fix for this now.
When pb.solver is set to solver, which is the default, Pseudo-Booleans are not going to be converted. |
* fixing issue #4651 * regression fix * fix #4662 Signed-off-by: Nikolaj Bjorner <[email protected]> * na Signed-off-by: Nikolaj Bjorner <[email protected]> * reenabled lift_ites_throttled with an additional filter, without the filter finding the model in report #4651 goes from .02s to 20s, also updated pretty printing of regexes to be more accurate * removing temp testing variable * Allow to skip System.loadLibrary() calls from Java Native class (#4667) * using intended utility methods for sort detection * adding ack/model Signed-off-by: Nikolaj Bjorner <[email protected]> * add smt params dependency Signed-off-by: Nikolaj Bjorner <[email protected]> * missing file Signed-off-by: Nikolaj Bjorner <[email protected]> * deps Signed-off-by: Nikolaj Bjorner <[email protected]> * order Signed-off-by: Nikolaj Bjorner <[email protected]> * persist fields Signed-off-by: Nikolaj Bjorner <[email protected]> * dbg build Signed-off-by: Nikolaj Bjorner <[email protected]> * reset caches Signed-off-by: Nikolaj Bjorner <[email protected]> * sr Signed-off-by: Nikolaj Bjorner <[email protected]> * fix cmake build Signed-off-by: Nikolaj Bjorner <[email protected]> * shuffle dependencies Signed-off-by: Nikolaj Bjorner <[email protected]> * warnings /errors Signed-off-by: Nikolaj Bjorner <[email protected]> * update include Signed-off-by: Nikolaj Bjorner <[email protected]> * missing cmakelists Signed-off-by: Nikolaj Bjorner <[email protected]> * update cmake Signed-off-by: Nikolaj Bjorner <[email protected]> * add depend Signed-off-by: Nikolaj Bjorner <[email protected]> * add depend Signed-off-by: Nikolaj Bjorner <[email protected]> * virtual method Signed-off-by: Nikolaj Bjorner <[email protected]> * path Signed-off-by: Nikolaj Bjorner <[email protected]> * move parameters from ast/rewriter to params Signed-off-by: Nikolaj Bjorner <[email protected]> * move fpa Signed-off-by: Nikolaj Bjorner <[email protected]> * fix warnings Signed-off-by: Nikolaj Bjorner <[email protected]> * remove pragma Signed-off-by: Nikolaj Bjorner <[email protected]> * dbg Signed-off-by: Nikolaj Bjorner <[email protected]> * updated sat_smt Signed-off-by: Nikolaj Bjorner <[email protected]> * na Signed-off-by: Nikolaj Bjorner <[email protected]> * fix #4651 Signed-off-by: Nikolaj Bjorner <[email protected]> * encoding options #4665 Signed-off-by: Nikolaj Bjorner <[email protected]> * expose name inclusion as optional Signed-off-by: Nikolaj Bjorner <[email protected]> * fix misc issues around #4661 introduced when adding lazy push/pop to selected theories Signed-off-by: Nikolaj Bjorner <[email protected]> * remove lazy push from theory_lra Signed-off-by: Nikolaj Bjorner <[email protected]> * na Signed-off-by: Nikolaj Bjorner <[email protected]> * fix dotnet build Signed-off-by: Nikolaj Bjorner <[email protected]> * na Signed-off-by: Nikolaj Bjorner <[email protected]> * release nodes Signed-off-by: Nikolaj Bjorner <[email protected]> * free memory in egraph Signed-off-by: Nikolaj Bjorner <[email protected]> * avoid duplicate class names frame in sat_scc and sat_smt Signed-off-by: Nikolaj Bjorner <[email protected]> * adding euf Signed-off-by: Nikolaj Bjorner <[email protected]> * elaborate on smt/drat format outline, expose euf mode as config Signed-off-by: Nikolaj Bjorner <[email protected]> * mk-var during copy Signed-off-by: Nikolaj Bjorner <[email protected]> * move theory_var_list into id_var_list and utilities from smt-enode into it, prepare for theory variables in egraph Signed-off-by: Nikolaj Bjorner <[email protected]> * with bounded Signed-off-by: Nikolaj Bjorner <[email protected]> * na Signed-off-by: Nikolaj Bjorner <[email protected]> * Remove duplicate binary condition. Fixes #4668. * butterfly effect on fp? Signed-off-by: Nikolaj Bjorner <[email protected]> * prepare for theory plugins Signed-off-by: Nikolaj Bjorner <[email protected]> * file Signed-off-by: Nikolaj Bjorner <[email protected]> * build fix * remove SMTFD Signed-off-by: Nikolaj Bjorner <[email protected]> * na Signed-off-by: Nikolaj Bjorner <[email protected]> * na * na Signed-off-by: Nikolaj Bjorner <[email protected]> * na Signed-off-by: Nikolaj Bjorner <[email protected]> * na Signed-off-by: Nikolaj Bjorner <[email protected]> * na Signed-off-by: Nikolaj Bjorner <[email protected]> * na Signed-off-by: Nikolaj Bjorner <[email protected]> * na Signed-off-by: Nikolaj Bjorner <[email protected]> * na Signed-off-by: Nikolaj Bjorner <[email protected]> * SMTFD is back (#4676) * fixing issue #4651 * regression fix * reenabled lift_ites_throttled with an additional filter, without the filter finding the model in report #4651 goes from .02s to 20s, also updated pretty printing of regexes to be more accurate * removing temp testing variable * using intended utility methods for sort detection * misc edits related to nonground regexes * bug fix of state id off by 1 calculation error and improved pretty printing with regex tooltip generated in dgml state graph * removed unused method declaration * improved id to regex value map info in generated dgml * reorgd callback function for state pretty printer * updated some comments Co-authored-by: Nikolaj Bjorner <[email protected]> Co-authored-by: Sergey Vladimirov <[email protected]> Co-authored-by: Christoph M. Wintersteiger <[email protected]> Co-authored-by: Arie Gurfinkel <[email protected]>
Thanks for your kind helps. |
Dear Nikolaj,
Hope you are well. I have created a cryptographic tool in which I am using Z3 as a SMT solver and as a CNF converter as well. Regarding the former one (as the converter), I am using it to convert a SMT problem to the CNF format in which all constraints are simple logical constraints except for one which is a cardinality constraint. The aim of this conversion is using the state of the art SAT solvers. You might know a better tool to do this. If so, I would be most grateful if you let me know.
I am using the following commands to convert my SMT problem to the CNF format:
I checked it several times, and it works well. However, I am not sure if it is the best way for this conversion? Besides does it always preserve the satisfiability of the original SMT problem?
I had also the following observation:
cnf_format = z3.Tactic("card2bv")
orcnf_format = z3.Then('simplify', 'bit-blast', 'tseitin-cnf')
, it doesn't preserve the satisfiability. I mean the original SMT problem is UNSAT, while the converted one become SAT. Thank you in advance for your time.Kind regards,
Hosein
The text was updated successfully, but these errors were encountered: