我正在使用 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 中的参数吗?