Help with converting sentences into predicate logic

482 Views Asked by At

Consider a language of predicate logic with a constant symbol $mcdonald$, with unary predicate symbols $cow$, $farmer$ and $old$, and with a binary predicate symbol $owns$.

Am I correct in my translations of the following sentences into predicate logic with equality, using only the above predicate and constant symbols?

a) McDonald is an old farmer.

My attempt: $farmer(mcdonald) \land old(mcdonald)$

b) All farmers are old.

My attempt: $\forall x (farmer(x) \implies old(x)) $

c) There are no old cows.

My attempt: $\neg \exists x ( cow(x) \land old(x)) $

d) Every farmer owns a cow.

My attempt: $ \forall x(farmer(x) \implies \exists y (cow(y) \land owns(x,y))) $

e) Old farmers only own old cows.

My attempt: $ \forall x(old(x) \land farmer(x) \implies \exists y (cow(y) \land old(y) \land owns(x,y))) $

f) Some old farmers own more than one cow.

My attempt: $\exists x \exists y \exists z(farmer(x) \land cow(y) \land cow(z) \land owns(x,y) \land owns(x,z) \land y \ne z) $

1

There are 1 best solutions below

3
On BEST ANSWER

a) through d) are correct!

e) is not right: your statement ends up saying that every old farmer owns an old cow, but that does not rule out that an old farmer can also own a cow that is not old. You need to say that if an old farmer owns any cows, then it is an old cow. (At least, I am guessing that that was intended ... The sentence is a bit ambiguous .. It could also mean: if an old farmer owns anything at all, then it is an old cow ... But I think the first interpretation makes a bit more sense). So:

$\forall x ((farmer(x) \land old(x)) \Rightarrow \forall y ((cow(y) \land owns(x,y)) \Rightarrow old(y)))$

Also, add $old(x)$ to f) ... Otherwise correct.