【发布时间】:2012-11-03 22:15:02
【问题描述】:
我正在尝试使用 Z3(Microsoft Research 开发的 SMT 求解器)检索某些一阶理论的所有可能模型。这是一个最小的工作示例:
(declare-const f Bool)
(assert (or (= f true) (= f false)))
在这个命题案例中,有两个令人满意的分配:f->true 和 f->false。因为 Z3(以及一般的 SMT 求解器)只会尝试找到一个令人满意的模型,所以不可能直接找到所有解决方案。 Here 找到了一个好用的命令,叫(next-sat),不过好像最新版的Z3已经不支持了。这对我来说有点不幸,总的来说我认为该命令非常有用。还有其他方法吗?
【问题讨论】:
标签: z3 smt theorem-proving