を生成しているz3の実数の乗算を含むいくつかの単純な制約がありunknown
ます。問題は、ラップされていないバージョンがを生成するため、データ型でラップされていることのようsat
です。
簡略化したケースを次に示します。
(declare-datatypes () ((T (NUM (n Real)))))
(declare-const a T)
(declare-const b T)
(declare-const c T)
(assert (is-NUM a))
(assert (is-NUM b))
(assert (is-NUM c))
(assert (= c (NUM (* (n a) (n b)))))
(check-sat)
;unknown
そしてデータ型なし:
(declare-const a Real)
(declare-const b Real)
(declare-const c Real)
(assert (= c (* a b)))
(check-sat)
;sat
私はz33.2を使用していますが、これはWebインターフェースでも再現可能です。