Z3 4.1 を使用しており、プログラムで smt lib2 形式の入力を解析したいと考えています。
Z3_parse_smtlib2_file
そのため、最初に Z3 で提供されている例 (フォルダー Z3-4.1/examples/smtlib の下にあります) を解析するために使用を試みます。しかし、多くの解析エラーが見つかり、プログラムがすぐに終了します。入力形式は正しいはずだと思います。次のコードを使用して Z3.2.smt2 を解析しようとしました。
(set-option :auto-config true)
(set-option :produce-models true)
(declare-const a Int)
(declare-fun f (Int Bool) Int)
(assert (> a 10))
(assert (< (f a true) 100))
(check-sat)
結果は次のとおりです。
smt2parser_example
(error "line 1 column 26: error setting ':auto-config', option value cannot be modified after initialization")
Error code: 4
BUG: incorrect use of Z3.
API は次のように呼び出されます。
fs = Z3_parse_smtlib2_file(ctx, fname, 0, 0, 0, 0, 0, 0);
問題はどこだ ?入力ファイルは問題ないはずです。問題は Z3_parse_smtlib2_file の引数にありますか?