Z3 获得SMT公式的较小模型

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 (

比如说,我有一些可以被sat的公式,但我想得到更小(或更大)的可能值,所以可以用这个公式

有没有办法告诉SMT解算器给出这种小的解决方案

例如:

a+1>10

在那个例子中,我希望SMT解算器给我的解是10而不是100

干杯


注意:我刚刚看到一位z3作者的回答,三年前,他们在z3中实现了这个功能。你知道它是否已经实施了吗

可以使用
最大化
最小化


这从Z3版本4.4.1起生效。Z3版本4.3.3中没有它,所以它是在这些版本之间添加的。
(declare-const x Int)
(assert (> (+ x 1) 10))
(minimize x)
(check-sat)
(get-model)