私は量子に問題があります。Z3の量子付き関数
a(0)= 0とし、a(n + 1)はx(n)の値に基づいてa(n)+1またはa(n)+2のいずれかになります。任意のx(。)とすべてのnについて、a(n)< = n * 2と期待できます。ここで
はZ3のためのコードです:
(declare-fun a (Int) Int)
(declare-fun x (Int) Int)
(declare-fun N() Int)
(assert (forall
((n Int))
(=> (>= n 0)
(= (a (+ n 1))
(ite (> (x n) 0)
(+ (a n) 1)
(+ (a n) 2)
)
)
)
))
(assert (= (a 0) 0))
(assert (> (a N) (+ N N)))
(check-sat)
(get-model)
私はそれは常に "タイムアウト" しながら、Z3は、 "UNSAT" を返すことを願っています。 Z3がこの種の量指定子を扱うことができるかどうか、誰かが助言を与えることができるのだろうかと思います。
ありがとうございました。
あなたはあなたの財産を証明する証拠誘導を必要とZ3は行うことはできません誘導の証明 –