属性値を計算するにはどうすればよいですか? 次に例を示します。
(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
たぶん、配列を操作することがこれを達成する方法です...