为Z3开发新理论解决方案的指南和/或最小工作示例

时间:2014-10-25 09:25:31

标签: z3

从之前在StackExchange上提出的很多问题,我理解那个理论 插件现在在Z3 4.x中已被弃用,现在需要编写一个自己的理论解算器并从头开始编译Z3。

但是,我找不到任何关于如何实现这种新理论解算器的指南和/或简单的工作示例。有没有我错过的地方?如果没有,有没有人写过一个新的理论解算器,他们可以共享代码?

1 个答案:

答案 0 :(得分:2)

目前还没有关于新理论的官方示例或文档。首先,您应该决定是否需要与smt内核中所有其他理论相结合的实际理论,或者您的目标是否可以在策略中实现(可能需要更少的编码工作)。

我目前正在研究浮点数的理论插件,这是一个特别简单的理论,因为它只将浮点约束转换为位向量(然后是布尔值)。此部分尚未在主分支中,但您可以在src/smt/theory_fpa.cpp/.hfpa-api分支中看到它(确保在网页上选择了正确的分支,否则您只会看到存根尚未实施。)