在 Z3 中自定义 LIA 量词消除

发布于 2024-12-09 23:14:36 字数 518 浏览 0 评论 0原文

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

Z3 曾经有 QUANT_ARITH 配置,表示使用 Cooper 方法或 Omega 测试来消除 LIA 量词。但该选项在 Z3 2.6 中被 ELIM_QUANTIFIERS 取代(请参阅 Z3 发行说明)。

我想问一下内部Z3 3.2如何知道使用哪种方法来消除量词?用户是否可以影响之前像QUANT_ARITH这样的方法的选择?

此外,随着策略规范语言的引入, Z3允许我们通过扩展或组合这些方法来定制量词消除吗?

I'm doing quantifier elimination on LIA using F# and Z3 3.2 API.

Z3 used to have QUANT_ARITH configuration which indicates the use of Cooper's method or the Omega test for LIA quantifier elimination. But that option was replaced by ELIM_QUANTIFIERS in Z3 2.6 (see Z3 release notes).

I want to ask internally how Z3 3.2 knows which method to use for quantifier elimination? Can users affect the choice of method like QUANT_ARITH before?

Furthermore, with the introduction of strategy specification language, will Z3 allow us to customize quantifier elimination by extending or combining these methods?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

倾城°AllureLove 2024-12-16 23:14:36

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

关于策略规范语言,我们最终将公开执行量词消除的策略。
我们目前正在开发此基础设施,更多消息即将发布。

The quantifier elimination module was re-implemented. The new implementation should be faster and correct.
The latest Z3 does not have a implementation of Cooper’s method or Omega test.
You can find more details about the actual quantifier elimination procedure used in Z3 at:
“Linear Quantifier Elimination as an Abstract Decision Procedure, Nikolaj Bjørner, IJCAR 2010”.

Regarding the strategy specification language, we will eventually expose tactics for performing quantifier elimination.
We are currently working on this infrastructure, more news are coming soon.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文