問題は:塩が盗まれた!さて、犯人はキャタピラー、トカゲのビル、またはチェシャ猫のいずれかであることがわかりました。3 人は裁判にかけられ、法廷で次のような声明を出しました。
CATERPILLAR: Bill the Lizard ate the salt.
BILL THE LIZARD: That is true!
CHESHIRE CAT: I never ate the salt.
たまたま、そのうちの少なくとも 1 人は嘘をつき、少なくとも 1 人は本当のことを言いました。誰が塩を食べましたか?
請求書が真かどうか、すべてのステートメントが真であることは確かです。チェシャが真の場合、すべてが偽であるため、キャタピラーに違いありません。
述語計算で見てプログラミングすると、次のようになります。
suspect(caterpillar).
suspect(lizard).
suspect(cat).
:- suspect(cat), suspect(lizard).
:- suspect(cat), suspect(caterpillar).
:- suspect(lizard), suspect(caterpillar).
%where these imply not more than one of these can be true or returned in our set
しかし、これを述語論理でさらに説明すると、彼らが行った説明や嘆願をどのように説明するかわかりません。そして、あるステートメントが真である場合、他のステートメントが偽である可能性があることをどのように意味することができます.