java - 在 z3 中表示推理规则

标签 java z3

我已经阅读并研究了几篇文档,但我仍然不清楚如何在 z3 中表示我的推理规则。

假设我有以下 2 个推理规则:

toy inference rules for question

是否如此简单,我的 z3 规则将是:

a. (a ^ b) => c
b. (a ^ b) => c

或者,我认为更正确的是,我是否必须声明数据类型(记录、标量等)。

从这里开始,通过阅读文档,java 实现显得相当简单。

这只是从类型系统的推理规则到命题逻辑的最初转换,这让我很困惑。

我认为我缺少推理规则(ab)和在 z3 中表示它们之间的某些联系;当我继续阅读文档时,对于如何体现这些规则仍然不清楚。

最佳答案

Z3 对于这项任务来说是一个不错的选择,尽管很难准确理解你的问题是什么。 (你的要点 ab 是完全相同的,这是故意的吗?)但本质上推理规则是蕴涵,所以从命题和蕴涵的角度来思考它们他们之间就好了。

此外,您的规则可能会有 Horn 结构(如 Prolog 中的 Horn 子句,请参阅此处: https://en.wikipedia.org/wiki/Horn_clause ),并且 Z3 有一个数据记录引擎,可以使编码此类问题变得更加容易。

请参阅此处,了解非常好的介绍:http://rise4fun.com/z3/tutorialcontent/fixedpoints我认为它可以相对轻松地应用于您的用例。

关于java - 在 z3 中表示推理规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45020081/

相关文章:

java - 比较从同一基派生的不同类的对象

c++ - 如何使用 z3 中的 arg() 函数?

python - 使用 Z3 求解器求解长度为任意大小数组的条件

python - 当公式应可满足时,Z3 求解器返回 unsat

hardware - 分布式 Z3 和每个节点的最佳硬件

java - 如何在网页上运行 Swing 应用程序?

java - Win32 GUI 演示应用程序到 Java(小程序)GUI

java - 在 App Engine Java Servlet 中查询数据存储区统计信息时出现 NullpointerException

java - 为什么使用 POI 编写大型电子表格时超链接会停止工作?

inheritance - z3 中的排序继承