使用Prover9证明一阶逻辑定理

时间:2018-11-09 11:31:54

标签: theorem-proving first-order-logic

我正在尝试使用Prover9证明问题,它一直说“精疲力尽”(这意味着我的逻辑是错误的),我不知道我在翻译中做错了什么。

问题:

  1. 牛是吃草的动物。

  2. 我不吃草。

  3. 除了我,我家唯一的动物是猫。
  4. 除了我家中的那些动物,没有动物带我去。
  5. 我讨厌那些不带走我的动物。
  6. 当我讨厌动物时,我会避免它。
  7. 所有喜欢凝视月亮的动物都适合 宠物。
  8. 没有动物是食肉动物,除非它们在夜间徘徊。
  9. 每只猫科动物都吃一些比自己小的动物。
  10. 我不是家里最小的动物。
  11. 只有肉食动物会吃动物。
  12. 牛不适合宠物。
  13. 夜间徘徊的动物总是喜欢凝视月亮。
  14. 我避免牛。

我的解决方案:

%1.牛是吃草的动物。

all x (Cow(x) -> Animal(x) & eats(x, Grass)).

%2.我不吃草。

- eats(me,Grass).

%3。除了我,我家唯一的动物是猫。

- (exists x (x != (me)) | ((Animal(x) & In(x) & -Feline(x)))).

%4.除了我家中的那些动物,没有动物带我去。

all x (Animal(x) & -(In(x)) -> -talk(x,me)).

%5.我讨厌不带我的动物。

all x ( Animal(x) & -talk(x,me) -> detest(me,x)).

%6.当我讨厌动物时,我会避免它。

all x (Animal(x) & detest(me,x) -> avoid(me,x)).

%7.每个喜欢凝视月亮的动物都是 %适合宠物。

all x (Animal(x) & gaze(x, Moon) -> Pet(x)).

%8.除非晚上有动物觅食,否则没有肉食性动物。

all x (Animal(x) & prawl(x) -> Carn(x)).

%9.每个猫科动物都吃一些比自己小的动物。

all x exists y (Feline(x) & Animal(y) & smaller(y,x) -> eats(x,y) ).

%10.我不是家里最小的动物。

exists x (Animal(x) & smaller(x,me)).

%11.只有食肉动物会吃动物。

-(all x all y (Animal(y) & Animal(x) & (-Carn(x)) -> eats(x,y))).

%12.牛不适合宠物。

all x (Cow(x) -> -Pet(x)).

%13.夜间徘徊的动物总是喜欢凝视月亮。

all x (Animal(x) & prawl(x) -> gaze(x, Moon)).

****%的目标:我没有牛。****

所有x(母牛(x)->避免(me,x))。

0 个答案:

没有答案