2016-03-03 64 views
1

我不明白什麼Horn子句是在序言。 •Horn子句是一個恰好具有一個正文字的子句。prolog中的Horn子句是什麼?

 root(X) :- \+ left(X,Y), \+ right(X,Y). 

因此,對於這個一個它不是一個喇叭條款的原因有多個條款嗎?或者有什麼方法可以將其表述爲喇叭條款?

+0

我強烈建議您訪問此鏈接(http://www.learnprolognow.org/slides/official/Horn.pdf) –

回答

4

由於\+表示否定爲失敗(*),因此您給出的作爲示例的子句不具有純粹的邏輯含義,但取決於Prolog的評估策略。在古典邏輯中,號角子句是最多有一個正面文字的子句。使用邏輯符號,它可以寫爲¬ A1 ∨ ... ∨ ¬ An ∨ B,相當於A1 ∧ ... ∧ An → B。用人的話來說,這意味着:假設A1到An可以證明,那麼我們可以證明B.在Prolog中,我們把它寫成b :- a1, ..., an.當我們知道沒有條件時某些事情是真的時候,有一種特殊的形式叫做事實。從邏輯上講,你可以把它寫成true → A,在Prolog中這就是a.

(*)一個公式是錯誤的,因爲它不能被證明是正確的。另一個可以谷歌密切相關的關鍵字是封閉的世界假設。

+1

以下是捐款:¬,∨,∧,→ – false

+0

merci beaucoup! –