Translation of Predicate Logic

260 Views Asked by At

I translated the following sentence into Predicate Logic, but I'm not quite sure about my translation...

As for me, it is very difficult to express "exactly" in predicate logic :( Could you please correct me if this is wrong?

There is exactly one book that no students read.

∃y(book(y)∧¬∃x(student(x)∧∀yreads(x, y)))

Thank you for your help.

3

There are 3 best solutions below

0
On

A correct answer is: There is exactly one $y$ such that $y$ is a book and there is no $x$ such that $x$ is a student and $x$ reads $y$. Note that $\exists !$ denotes "there is exactly one". Note that $y$ appears in the beginning denoting the exactly one thing having the following property; so you don't have to quantify $y$ again (and doing it makes no sense and indicates that you may be not sure about the use of quantifiers).

0
On

NOTE: In a system which doesn't have the $\exists$! quantifier, one would express the property '$\exists$! X: P(X)' as '$\exists$ X: [P(X) and ($\forall$ Y: P(Y) $\implies$ Y=X)]'

0
On

Your attempt:

There is exactly one book that no students read.

∃y(book(y)∧¬∃x(student(x)∧∀yreads(x, y)))

has various problems:

First of all, you quantify the $y$ twice. Syntactically, there is nothing wrong with that, but whereas the first $y$ is predicated to be a book, the second is not. Hence, the second part ends up saying that there is no student that reads everything, and everything includes things that aren't even books! OK, so what if we add the book predicate back in? Well, then you would get something like:

$\exists y (book(y) \land \neg \exists x (student(x) \land \forall y (book(y) \rightarrow reads(x,y))))$

OK, but now the second part means that there is no student who reads every book. But that is not at all what the sentence is meant to express, which is that there is exactly one book that not all students read. For example, suppose there are 2 students A and B, and 3 books C,D, and E, and suppose A reads C and D, and B reads C and E. Then there is no student who reads every book, but there is a book that all students read, and more importantly, there are two books that not all students read.

Another problem with your sentence so far is that we are not saying anything about the first $y$ other than that it is a book. But of course your intent was to say that this is the book that not all students read, and that's what you tried to capture with the second part. OK, so to do this, you should really just drop the second quantifier $\forall y$:

$\exists y (book(y) \land \neg \exists x (student(x) \land reads(x,y)))$

OK, but that is not right either, because this ends up saying that there is a book that no students reads, and all you want to say about $y$ is that not all students read that book, i.e. that some students don't read the book. OK, so we need to change the quantifier for the students (and change the logical operator from an $\land$ to a $\rightarrow$ accordingly):

$\exists y (book(y) \land \neg \forall x (student(x) \rightarrow reads(x,y)))$

OK, so now you have a book that not all students read. But: it may not be the only book that not all students read. Now, as suggested by other Answers, if you are allowed to use $\exists !$, you can simply do:

$\exists y ! (book(y) \land \neg \forall x (student(x) \rightarrow reads(x,y)))$

But if you are not allowed to use $\exists !$, you can do the following:

$\exists y ((book(y) \land \neg \forall x (student(x) \rightarrow reads(x,y))) \land (\forall z ((book(z) \land \neg \forall x (student(x) \rightarrow reads(x,z))) \rightarrow z = y))$

Notice how the part $book(z) \land \neg \forall x (student(x) \rightarrow reads(x,z))$ uses the same construction as for the $y$, i.e. this is saying that $z$ is a book that not all students read. But then the sentence also says that any such $z$ must be identical to $y$. In other words, there can be no book other than $u$ that not all students read.