在Z3中自定义LIA量词消除

时间:2011-10-14 21:47:57

标签: z3 quantifiers

我正在使用F#和Z3 3.2 API对LIA进行量化消除。

Z3曾经有QUANT_ARITH配置,表示使用Cooper方法或Omega测试消除LIA量词。但是该选项在Z3 2.6中被ELIM_QUANTIFIERS取代(参见Z3 release notes)。

我想在内部询问Z3 3.2如何知道用于量词消除的方法?用户可以影响QUANT_ARITH之前的方法选择吗?

此外,随着strategy specification language的引入,Z3是否允许我们通过扩展或组合这些方法来自定义量词消除?

1 个答案:

答案 0 :(得分:2)

量化消除模块已重新实施。新的实施应该更快更正确。 最新的Z3没有实施Cooper的方法或Omega测试。 您可以在以下位置找到有关Z3中使用的实际量词消除程序的更多详细信息: “线性量词消除作为抽象决策程序,NikolajBjørner,IJCAR 2010”。

关于策略规范语言,我们最终将揭示执行量词消除的策略。 我们目前正在研究这个基础设施,不久将有更多新闻。