"Anything anyone eats and is not killed as a result is food" - First order logic representation

6.9k Views Asked by At

Given the required predicates:

eats(x,y) : x eats y

food(x) : x is food

killed(x) : x is killed

I am confused as to how to represent this statement in First Order Logic

Would it be

$\forall(xy)eats(x,y)\wedge \neg killed(x)\to food(y)$

Or

$\forall(xy)eats(x,y)\wedge food(y) \to \neg killed(x)$

Or is it something else all together. An explanation along with the answer would be greatly appreciated.

1

There are 1 best solutions below

2
On BEST ANSWER

I would read the statement as "For all $x$: If ($x$ has an eater $y$) and ($y$ is not killed), then ($x$ is food)"

$\exists y\ eats(y, x)$: There is some $y$ that eats $x$

$\neg killed(y)$: $y$ was not killed

$food(x)$: $x$ is food

$$\forall x(\exists y\ eats(y, x)\wedge\neg killed(y)\implies food(x))$$