How to get multiple different unsat cores or make the core smaller with z3 (QF_LRA)

浪尽此生 提交于 2019-12-07 10:23:22

问题


After reading the previous questions Getting a "good" unsat core and getting new unsat core, I know that it is impossible to get multiple different unsat cores with z3 at present. Do you have some suggestions to make the unsat core smaller? I am using z3 c++ api to check the satisfiability of a constraints on linear real arithmetic. I found that when adding this line of code p.set(":auto-config",false) as suggested in Getting a "good" unsat core, the size of unsat core becomes smaller.

Another question is about the simplex-based algorithm of z3. I have used CPLEX to solve my application before using z3. CPLEX supports extracting the IIS (irreducible infeasible set) which is like unsat core in z3. We can set the solving algorithm to 'auto', 'primal', 'dual' in CPLEX. I found when switching the solving algorithm the IIS CPLEX gives may be different. Does z3 support setting different solving algorithms when the logic is set to QF_LRA?

来源:https://stackoverflow.com/questions/17378559/how-to-get-multiple-different-unsat-cores-or-make-the-core-smaller-with-z3-qf-l

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!