First Order Logic Question - "All cats either love or hate dogs."

3.1k Views Asked by At

Given the following set of predicates:

$$\{cat(x), dog(x), love(x, y), hate(x, y)\}$$

How would you transform the following English statement into First Order Logic...

Statement: "All cats either love or hate dogs."

I came up with two possible ways to represent the statement, I am leaning towards the first, but I can also see the second being correct. Can someone give me some reasoning why one would be more correct than the other?

$$ \forall x \forall y (cat(x) \implies dog(y) \land [love(x, y) \lor hate(x, y)]) $$

$$ \forall x \forall y (cat(x) \land dog(y) \implies [love(x,y) \lor hate(x,y)])$$

2

There are 2 best solutions below

4
On

Neither of your suggestions captures the meaning I get from the original sentence.

However, the second one is the most wrong. It will be true as soon as there exists anything that is not a dog. Namely, no matter what $x$ is, you can choose the non-dog to be $y$, and then ${\rm cat}(x)\land{\rm dog}(y)$ will be false, which automatically makes the entire implication true.

The first one is better, but what it says is that every cat either loves or hates some dog. I would understand the sentence in the problem as saying that every cat belongs to one of two types: those that hate all dogs, and those that love all dogs. And that's not what your suggestion expresses.

2
On

Statement: "All cats either love or hate dogs."

I am sure there are different ways to interpret this statement, but how about:

$\forall x:[ Cat(x)\implies \neg Dog(x)]$

$\space\space\space\land \forall x:[Cat(x) \implies \forall y:[Dog(y) \implies Loves(x,y) \land \neg Hates(x,y)]$

$\space\space\space\space\space\space\lor \space \forall y:[Dog(y) \implies \neg Loves(x,y) \land Hates(x,y)]] $

Here, I assume:

  1. No cat can be a dog, and no dog can be a cat.
  2. No cat can both love and hate any dog.
  3. Every cat either loves all dogs or it hates all dogs. The original statement seems to rule out the possibility of a cat loving some dogs and hating others.

EDIT:

If you want to allow the possibility of an individual being both a dog and a cat and both loving and hating itself, as has been suggested, you could simplify matters:

$\forall x:[Cat(x) \implies \forall y :[Dog(y) \implies Loves(x,y)]\lor \forall y:[Dog(y) \implies Hates(x,y)] $