[英]How can you translate prolog rules and query into first order logic?
我想了解如何翻譯序言規則
brother(g(x), g(y)) :- brother(x,y).
brother(n,n).
一階邏輯。
∀x,y(brother(x,y) -> brother(g(x), g(y))
是正確答案嗎?
不,答案不正確。
首先,確定 Prolog 程序中的x
、 y
和n
是否實際上是邏輯變量。 在這種情況下,您需要更改程序: Prolog 變量以大寫字母或下划線開頭。 因此,假設您將程序更改為:
brother(g(X), g(Y)) :- brother(X, Y).
brother(N, N).
那么你給出的翻譯仍然不足以捕捉到這個邏輯程序的聲明性含義。
例如,僅使用您給出的含義,您能否推導出一個實際成立的語句?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.