【发布时间】:2012-01-13 08:10:24
【问题描述】:
如何计算属性值? 这是一个例子:
(declare-fun x () bool)
(declare-fun y () bool)
(declare-fun z () bool)
(assert (AND x (OR y z)))
有了这个,我会得到 2 个模型:
x=true and y=true
x=true and z=true
现在,我想要的是这样的:
(declare-fun x () bool)
(declare-fun y () bool)
(declare-fun z () bool)
(declare-fun x.val () Int)
(declare-fun y.val () Int)
(declare-fun z.val () Int)
(assert (= x.val 2))
(assert (= y.val 3))
(assert (= z.val 5))
(assert (AND x (OR y z)))
(assert (> sum 6))
所以,我想得到属性总和大于6的模型:
x=true and z=true
也许使用数组是实现这一目标的一种方法......
【问题讨论】: