Z3 获得SMT公式的较小模型
比如说,我有一些可以被sat的公式,但我想得到更小(或更大)的可能值,所以可以用这个公式 有没有办法告诉SMT解算器给出这种小的解决方案 例如: a+1>10 在那个例子中,我希望SMT解算器给我的解是10而不是100 干杯Z3 获得SMT公式的较小模型,z3,smt,Z3,Smt,比如说,我有一些可以被sat的公式,但我想得到更小(或更大)的可能值,所以可以用这个公式 有没有办法告诉SMT解算器给出这种小的解决方案 例如: a+1>10 在那个例子中,我希望SMT解算器给我的解是10而不是100 干杯 注意:我刚刚看到一位z3作者的回答,三年前,他们在z3中实现了这个功能。你知道它是否已经实施了吗 可以使用最大化和最小化 这从Z3版本4.4.1起生效。Z3版本4.3.3中没有它,所以它是在这些版本之间添加的。 (declare-const x Int) (assert (
注意:我刚刚看到一位z3作者的回答,三年前,他们在z3中实现了这个功能。你知道它是否已经实施了吗 可以使用
最大化
和最小化
这从Z3版本4.4.1起生效。Z3版本4.3.3中没有它,所以它是在这些版本之间添加的。
(declare-const x Int)
(assert (> (+ x 1) 10))
(minimize x)
(check-sat)
(get-model)