【问题标题】:How can you translate prolog rules and query into first order logic?如何将 prolog 规则和查询转换为一阶逻辑?
【发布时间】:2015-11-12 16:32:36
【问题描述】:

我正在尝试了解如何翻译序言规则

brother(g(x), g(y)) :- brother(x,y).
brother(n,n).

到一阶逻辑。

∀x,y(brother(x,y) -> brother(g(x), g(y)) 是正确答案吗?

【问题讨论】:

  • 程序文本有多个语法错误。
  • 谢谢,我更新了

标签: prolog first-order-logic


【解决方案1】:

不,答案不正确。

首先,确定 Prolog 程序中的 xyn 是否实际上是逻辑变量。在这种情况下,您需要更改程序:Prolog 变量以大写字母或下划线开头。因此,假设您将程序更改为:

brother(g(X), g(Y)) :- brother(X, Y).
brother(N, N).

那么你给出的翻译还是不足以捕捉到这个逻辑程序的声明性含义。

例如,仅使用您给出的含义,您能否推导出 一个实际成立的语句

【讨论】:

    猜你喜欢
    • 2015-04-19
    • 2012-09-20
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 2011-04-19
    • 2015-02-15
    • 1970-01-01
    相关资源
    最近更新 更多