預設邏輯

預設邏輯是邏輯學家提出的用來形式化有預設假定的推理的非單調邏輯。

標準邏輯只能表達某個事物為真或某個事物為假，但類似於 “預設的，某個事物是真的” 的事實則可以使用預設邏輯進行表達。推理經常會涉及到在多數時候是真但不總是真的事實，而預設邏輯則可以解決這樣的推理問題。

經典的例子是：“鳥通常會飛”。這個規則可以在標準邏輯中表達為：要麼 “所有鳥都會飛”—— 這與企鵝不會飛的事實相矛盾；要麼 “除了企鵝、鴕鳥... 的所有鳥都會飛”—— 這又要求規則逐一指定出所有的例外。預設邏輯致力於將這樣的推理規則形式化，而不需要明確提及所有的例外。

預設邏輯的語法

預設理論是對。是邏輯公式的集合，叫做背景理論，形式化的是確實已知的事實。是預設規則的集合，每個都有形式：

依據這種預設，如果我們相信（先決條件）是真的，並且每個（論據）都相容於我們當前的信仰，我們匯出信仰（結論）是真的。

在中邏輯公式和在預設中的所有公被初始的假定為一階邏輯公式，但是它們潛在的可以是任意形式邏輯的公式。公式都是命題邏輯的情況是研究最多的。

1.1 例子

預設規則 “鳥通常會飛” 被下列預設所形式化：

這個規則意味著，如果是鳥，並且可以假定它會飛，則我們得出結論它會飛。包含某些關於鳥的事實的背景理論在下面列出：

W = {Bird（禿鷲）, Bird（企鵝）, ¬ Flies（企鵝）, Flies（鷹）}。

依據這個預設規則，禿鷲會飛，因為前件 Bird（禿鷲）是真的，並且論據 Flies（禿鷲）與當前已知不矛盾。相反的，Bird（企鵝）不允許得出結論 Flies（企鵝）: 即使預設的前件 Bird（企鵝）是真的，論據 Flies（企鵝）與已知相矛盾。從這個背景理論和這個預設，不能得出結論 Bird（鷹），因為預設規則只允許從 Bird（X）推出 Flies (X)，但不能反過來。從推論規則的結論推出前提是結論的一種解釋形式，這是溯因推理的目標。

常見的預設假定是不知道為真的東西都被相信是假的。這叫做封閉世界假定，並在預設邏輯中對每個事實使用像下列這樣的預設來形式化。

例如，計算機語言 Prolog 在推導否定的時候，使用了某種程度的預設假定：如果否定的原子不能被證明為真，則它被假定為假。但是要注意，Prolog 使用了所謂的否定為失敗：當直譯器必須求值原子的時候，它嘗試證明是真，並如果這失敗了則結論為是真。轉而在預設邏輯中，預設有作為論據，它只能在與當前知識一致的時候應用。

1.2 限制

預設是無條件的或無先決條件的，如果它沒有先決條件（或者等價的說先決條件是重言式）。一個預設是正規的，如果它有等價於它的結論的一個單一論據。一個預設是超正規的，如果它是無條件的和正規的。一個預設是半正規的，如果它的所有論據都蘊涵它的結論。一個預設理論叫做無條件的、正規的、超正規的、或半正規的，如果它包含的所有預設分別都是無條件的、正規的、超正規的或半正規的。

預設邏輯的語義

一個預設規則可以應用於一個理論，如果它的前件被這個理論所蘊涵，並且它的論據都一致於這個理論。預設規則的應用導致它的結論增加到這個理論。其他預設規則接著可以應用於結果的理論。當沒有預設規則可以應用於理論的時候，這個理論就叫做預設理論的擴充套件。預設規則可以按不同的次序應用，這可以導致不同的擴充套件。例子是有兩個擴充套件的預設理論：

因為尼克松既是共和黨的人又是貴格會的人，兩個預設都可以應用。但是，應用第一個預設導致尼克松是不愛好和平的人的結論。以同樣的方式，應用第二個預設我們得出尼克松是愛好和平的人，因此使第一個預設不可應用。這種特定的預設理論因此有兩個擴充套件，其中一個是真，而另一個是假。

預設邏輯的最初的語義基於的是函式的不動點。下面是一個等價的演算法定義。如果預設包含有自由變數的公式，它被認為表示透過向所有這些變數給出一個值而得到所有預設的集合。預設對命題理論是可應用的，如果並且所有理論是一致的。這個預設對的應用得到理論。透過應用下列演算法可以生成一個擴充套件：

T=W / 當前理論 /

A=0 / 迄今應用的預設的集合 /

/ 應用一序列的預設 /

while 有個不在 A 中的預設 d 對於 T 是可應用的

增加 d 的結論到 T

增加 d 到 A

/ 最終的一致性檢查 /

if

for 所有預設 d in A

T 一致於 d 的所有論據

then

輸出 T

這個演算法是非確定性的，因為對於給定的理論有很多預設可以應用。在尼克松菱形的例子中，第一個預設的應用導致第二個預設不能應用的一個理論，反之亦然。作為結果，可以生成兩個擴充套件：在其中一個里尼克松是愛好和平的人和另一個里尼克松不愛好和平的人。

最終的所有已經應用的預設的論據的一致性檢查使某些理論不能有任何擴充套件。特別是，這發生在對於可應用的預設的所有序列這個檢查都失敗的時候。下列預設理論就沒有擴充套件：

因為一致於預設被應用到的背景理論，所以得出結論是假的。但是這個結果破壞了應用第一個預設所有做的假定。因此，這個理論沒有擴充套件。

正規的預設理論保證至少有一個擴充套件。進一步的，正規預設理論的擴充套件是相互矛盾的。

2.1 蘊涵

預設理論可以有零個、一個或更多的擴充套件。從一個預設理論到一個公式的蘊涵可以用兩種方式定義：

懷疑的：一個公式被一個預設理論所蘊涵，如果它被它的所有擴充套件所蘊涵；

輕信的：一個公式被一個預設理論所蘊涵，如果它被它的至少一個擴充套件所蘊涵；

例如，尼克松菱形例子有兩個擴充套件，在其一中尼克松是愛好和平的人在另一箇中他不是愛好和平的人。因此，Pacifist（尼克松）和 ¬ Pacifist（尼克松）都不被懷疑的蘊涵，而二者都被輕信的蘊涵。如這個例子展示的，預設理論的輕信結論可以相互矛盾。

2.2 可供選擇的語義

預設邏輯下列可供選擇的語義都是基於同最初一樣的語法。

正當的：同最初的語義不同之處是，如果預設使集合矛盾於已應用的預設的一個論據，則不應用這個預設；

簡明的：只在預設的結論沒有被所蘊涵的時候應用它（精確的定義更加複雜，這只是背後的想法）；

約束的：只在背景理論和所有應用的（包括這個）預設的論據和結論所構成集合是一致的時候應用它；

合理的：類似於約束的預設邏輯，但是在一致性檢查中不考慮預設的結論；

謹慎的：預設可以應用但相互衝突（像尼克松菱形的例子）的不應用。

正當的和約束的語義為所有的預設理論指派至少一個擴充套件。

預設邏輯的變體

預設邏輯的下列變體同最初的語法和語義二者有所區別。

斷言變體：斷言是由一個公式和一個公式的集合構成的對。這種對指示是真，當公式已經被假定為一致於證明為真的時候。一個斷言預設理論由叫做背景理論的斷言理論（斷言公式的集合）和按原始語法定義的預設的集合構成。當一個預設應用於斷言理論的時候，把由它的結論和它的論據合成的對增加到這個理論。下列語義使用了斷言理論：

積累預設邏輯
委託假定預設邏輯
準預設邏輯

弱擴充套件：不再檢查前件在由背景理論和已應用的預設的結論構成的理論中是否是有效的，檢查前件在將要生成的擴充套件中的有效性；換句話說，生成擴充套件的演算法開始於猜測一個理論並使用它代替背景理論；從擴充套件生成的過程得到的結果實際上是一個擴充套件，只在它等價於在開始時所猜測的理論的時候。預設邏輯的這個變體在原理上與自動認識邏輯有關，在那裡理論有一種模型，在其中是真，只是因為假定為真，公式支援這個初始假定。

析取預設邏輯：預設的結論是公式的集合而不是單一的公式。在應用預設的時候，至少其中一個結論被非確定性的選擇為真。

預設上的優先順序：可以明確的指定預設的相對優先順序；在可以應用於一個理論的預設之間，只有最高優先順序的可以應用。預設邏輯的某些語義不要求明確指定優先順序；而是更多特殊性（在更少情況下可應用的）預設優於更少特殊性的預設。

統計變體：統計預設對預設附加錯誤頻率的上限；換句話說，預設被假定為是不正確的推理規則，應用它的次數到了這個分數的時候。

轉換

預設理論可以被轉換成其他邏輯的理論或反之。轉換要考慮下列條件：

結論保持：最初和轉換後的理論有同樣的（命題）結論；

忠實：這個條件有意義只在如下轉換的時候，在預設邏輯的兩個變體之間、或在預設邏輯和在其中類似於擴充套件的概念比如模態邏輯中模型存在的邏輯之間；一個轉換是忠實的，如果在最初和轉換後的理論的擴充套件（或模型）之間存在一個對映（典型的是雙射）；

模組化：從預設邏輯到其他邏輯的轉換是模組化的，如果預設和背景理論可以分開轉換；此外，向背景理論增加公式只導致向轉換的結果增加新公式；

同字母表：最初和轉換後的理論建立在相同的字母表之上；

多項式：轉換的執行時間和生成的理論的大小要求是最初理論的多項式。

轉換典型的要求忠實或至少是結論保持，而模組化和同字母表的條件有時被忽略。

在命題預設邏輯和下列邏輯之間的轉換已經研究過了：

經典命題邏輯；
自動認識邏輯；
限定於被正規理論的命題預設邏輯；
預設邏輯的可作為替代的語義；
界限。

轉換存在與否依賴於施加那種條件。從命題預設邏輯到經典命題邏輯的轉換不能總是生成多項式大小的命題理論，除非多項式層次瓦解。到自動認識邏輯的轉換存在與否依賴於是否要求模組性或使用相同的字母表。

複雜性

關於預設邏輯的下列問題的計算複雜性是已知的：

擴充套件的存在性：決定一個命題預設理論是否有至少一個擴充套件是 - 完全的；

懷疑的蘊涵：決定一個命題預設理論是否懷疑的蘊涵一個命題公式是 - 完全的；

輕信的蘊涵：決定一個命題預設理論是否輕信的蘊涵一個命題公式是 - 完全的；

擴充套件檢查：決定一個命題公式是否等價於一個命題預設理論的擴充套件是 - 完全的；

模型檢查：決定一個命題釋義是否是一個命題預設理論的擴充套件的模型是 - 完全的。

實現

有兩個系統實現了預設邏輯： DeReS 和 XRay。