關於單調謂詞的推理

**** 可以通過應用宣告性推理來除錯單調謂詞。

在純 Prolog 中,程式設計錯誤可能導致以下一種或所有現象:

  1. 謂語不正確成功的情況下,它應該會失敗
  2. 謂語錯誤失敗的情況下,它應該獲得成功
  3. 謂詞意外地迴圈,它應該只產生一組有限的答案。

作為一個例子,考慮如何通過宣告性推理除錯 case(2):我們可以系統地刪除謂詞的子句的目標,並檢視查詢是否仍然失敗。在單調程式碼中,刪除目標最多可以使得結果程式更加通用。因此,我們可以通過檢視哪些目標導致意外故障來查明錯誤。