在z3py中的一些Implies条件下证明布尔公式

时间:2017-01-01 11:41:18

标签: boolean counter z3 solver z3py

我是使用Z3py的新手,我的任务是为两种解决方案生成反例(sat和不饱和)。
是否有任何函数可以为不良解决方案生成反例?

1 个答案:

答案 0 :(得分:0)

unsat表示没有满足给定断言的模型。您只能在问题为sat时提取模型。因此,要在提出问题时回答您的问题,您无法从unsat解决方案创建模型:它只是不存在。

一种典型的方法是断言你要证明的公式的negation;如果该公式可以满足,那么您的原始公式是可证伪的;也就是说,有一个反例。也许这就是你想要做的?那就是:如果公式的否定具有令人满意的模型,则该模型是原始公式的反例。这就是建立在SMT求解器之上的大多数证明者的工作原理,通过发送他们试图证明和取回的内容的否定unsat.如果证明者返回一个模型,那么它就是一个反例。