1
(set-option :smt.mbqi true)
(declare-fun R(Int) Int)
(declare-const a Int)
(assert (= (R 0) 0))
(assert (forall ((n Int)) (=> (> n 0) (= (R n) (+ (R (- n 1)) 1)))))
(assert (not (= a 5)))
(assert (not (= (R a) 5)))
(check-sat)
私はZ3で上記のコードを試しましたが、Z3は答えることができません。私はどこで私が間違えたのか教えてください。Z3で再帰関数を処理するには?