Z3有没有一种"reference manual"

Is there a kind of "reference manual" for Z3

阅读 https://www.rise4fun.com/Z3/tutorial 上的优秀教程后,我开始使用 Z3。但现在我想大致了解 Z3 的 SMTLIB2 方言中可用的 all 命令。

不幸的是,我只找到了不同语言绑定的参考手册,但没有找到 SMTLIB2 本身的参考手册。

我不知道有任何这样的参考手册,浏览 source code 可能是你目前最好的选择。

关于这样一本手册的存在,我当然可能是错的,但事实是,关于 Z3 的 SMT-LIB 方言的问题经常通过 Z3 问题跟踪器(例如 #4549, #4536, #4460)提出,这表明有没有参考手册。开发人员的回复也没有暗示任何此类手册。

您可以在 http://smtlib.cs.uiowa.edu/

中阅读有关 SMTLib 的所有信息

特别是,文档 http://smtlib.cs.uiowa.edu/papers/smt-lib-reference-v2.6-r2017-07-18.pdf 是所有 SMTLib 命令的“官方”文档。

对于逻辑,你想浏览:http://smtlib.cs.uiowa.edu/logics.shtml

现在,这个文档不是 Z3 特定的。但在很大程度上,它捕获了 Z3 支持的所有 SMT commands/logics,并且 Z3 是实现规范方面最“合规”的求解器之一。当然有一些差异:例如,规范从不讨论优化,而 Z3 确实支持优化,同样适用于集合操作和一些其他“附加功能”。正如 Malte 指出的那样,这些文档是可用的,但可能不容易浏览。我最喜欢的链接是:

如果您要查找的特定信息未包含在这些文档中,那么这就是该论坛的用途!祝你好运..