我创建了一个自定义理论插件,目前它什么都不做。回调都已实现并注册,但它们只是返回。然后,我使用 Z3_parse_smtlib2_string 读入了一堆声明常量、声明乐趣和断言,并将生成的 ast 传递给 Z3_assert_cnstr。随后对 Z3_check_and_get_model 的调用失败并出现以下错误:
没有为用户理论设置 mk_fresh_ext_data 回调,您必须使用 Z3_theory_set_mk_fresh_ext_data_callback
据我所知, Z3_theory_set_mk_fresh_ext_data_callback 不存在。
使用相同的字符串,但没有注册理论插件, Z3_check_and_get_model 返回 sat 并按预期提供模型。
我正在使用版本 4 和 Linux 64 位库。
完整的例子在这里: http: //pastebin.com/hLJ8hFf1