在急切的SMT求解器中,SMT公式被编码为一个满足的布尔公式,并被提供给SAT求解器。通常,对于QF_UF公式,通过Ackermann减少或Bryant减少来减少未解释的函数,然后通过等式图方法构造等公差布尔公式。
所以我想知道是否可以调用现有的SMT求解器来获得给定QF_UF公式的equisatisfiable布尔公式,而不会破解求解器的低级实现。例如,Z3有一些转换输入问题的策略(例如tseitin-cnf
和elim-term-ite
),是否存在这种翻译的策略?
答案 0 :(得分:2)
在z3中,您可以使用https://gist.github.com/nunoplopes/8cd9fb433b2663c99cb34c8a95ae812f
等补丁转储DIMACS您还可以使用bit-blast策略来获取SAT公式,该公式将超过布尔Z3变量。我认为不保证会以CNF或NNF或其他任何形式存在。