用户理论插件的前端?

时间:2012-09-27 22:05:58

标签: z3

是否可以使用smt-lib或类似的API进行C / C ++来解析用户理论插件的输入?例如,在示例用户理论“test_user_theory.c”中,如何在输入文件中声明字符串变量和常量字符串(不将其分解为位向量)?提前致谢。

1 个答案:

答案 0 :(得分:3)

函数z3_parse_smtlib_stringz3_parse_smtlib_filez3_parse_smtlib2_stringz3_parse_smtlib2_file允许用户使用给定的排序和声明绑定任意符号。 因此,您可以使用理论插件中定义的声明连接有限数量的符号。这不是一个完美的解决方案,因为一些理论定义了任意数量的函数/常数声明和排序。例如,算术理论定义了符号:012等。数组理论定义了一个"无限"各种各样的。

请注意,理论插件API现已过时。 Z3源代码现在可用,Z3定理证明器的扩展可以直接在实际代码库中实现。 Z3源代码可在http://z3.codeplex.com获得。我计划在将来的版本中删除理论插件API。