I'm still confused with my first order predicate logic and I need to know what the correct translation would be for each of the English sentences to first order logic. Could anyone show me or give me some hints on what to change?
- Fluffy is a big cat, and he loves all chickens.
my ans: big(Fluffy) ∧ cat(Fluffy) ∧ [∀x. chickens(x) ⇒ loves(Fluffy,x)]
- Any cat who sees something he loves, purrs at it.
my ans: ∀x. cat(x) ⇒ see(x,y) ∧ loves(x,y) ⇒ purrs(x,y)
- If you purr at an animal and are big, the animal will bite you.
my ans: ∀x.∀y. animal(y) ⇒ purrs(x,y) ∧ big(x) ⇒ bite(y,x)
- You cannot bite something that bites you.
my ans: ∀x. ¬bite(x,y) ⇒ bite(y,x)
- Clucky is a chicken.
my ans: chicken(Clucky)
- Fluffy sees Clucky.
my ans: sees(Fluffy, Clucky)
The translation of the second sentence, "Any cat who sees something he loves purrs at it", is missing a quantifier.
I would translate the sentence as:
$\forall$x$\forall$y(Cat(x)& See(x,y) & Love(x,y) $\rightarrow$ Purrs(x,y)
Currently as you have it written, 'y' occurs free in the translation and so functions more like a name.
The fourth sentence is odd because of 'cannot', but right now the sentence in FOL reads something like "If anything doesn't bite y, y bites it." Again, you're missing a quantifier there too, so 'y' is free and denotes some object in the structure.