# Translation from English to Predicate Logic

I am studying Predicate Logic now. Could you please help me how to translate a sentence into predicate logic?

How can I translate the following sentence into predicate logic?

"No student read exactly one book."

I've already translated this but I am not sure about the part "exactly one" in the sentence..

Is this correct? If there is something wrong, could you please tell me what the mistakes are?

Thank you for your help. I really appreciate it :>

• "No student read exactly one book" means that every student (reads more than one book or doesn't read at all). [Parentheses to make clear that every one satisfies one or the other, not that every one satisfies the first or everyone satisfies the second.] – Javi May 7 '17 at 21:08
• Thank you for replying to me. I'm so sorry I'm too beginner to understand your explanation. Would you be able to give a little bit more detailed explanation, please? Was my formula wrong? – Sam May 7 '17 at 21:14
• @Sam I edited my post to explain how your original answer is wrong ... – Bram28 May 7 '17 at 23:58
• @Bram28 I just saw your post. Thank you for your very detailed explanation. I deeply appreciate your help. I am going to revise this once again and I hope I can understand better! Thank you so much once again :) – Sam May 8 '17 at 0:04
• @Sam You're quite welcome! – Bram28 May 8 '17 at 0:28

has a few problems. First of all, there are no quantifiers for $x1$ and $y$. I assume you want those to be existentials, so let's add them:

OK, but that is still not right: this statement says that there is some student who has read two or more books (and thus not exactly one book), but the statement says that there is no student who has read exactly one book, which is the same as saying that it is true for all students that they have not read exactly one book.

OK, so maybe we should change the existential into a universal? Let's see:

$\forall x∃x1∃y(student(x)∧read(x, x1)∧book(x1)∧book(y)∧¬(x1=y))$

No, that is still not right, because a student not reading exactly one book does not mean they have to read 2 or more books ... they could also read no books at all. So ... we should give every student the option of either reading no books, or two or more books:

$\forall x (student(x)\rightarrow (\neg \exists x1 (book(x)∧ read(x,x1)) \lor ∃x1∃y(read(x, x1)∧ book(x1)∧book(y)∧read(x,y)∧¬(x1=y)))$

(oh yeah, you also forgot to include the $read(x,y)$ statement)

OK, here is another way of doing this one. The statement effectively denies that there is a student that reads exactly one book.

So, we can use as a basic setup:

$$\neg \exists x (Student(x) \land 'x-reads-exactly-one-book')$$

Now, how can we symbolize that $x$ reads exactly one book? To do that, we can say that there is a book that $x$ reads, and that all the books that $x$ reads are that one book. So, '$x$ reads exactly one book' becomes:

$$\exists y (Book(y) \land Reads(x,y) \land \forall z ((Book(z) \land Reads(x,z)) \rightarrow z=y))$$

OK, so fill this in the larger statement, and we get:

$$\neg \exists x (Student(x) \land \exists y (Book(y) \land Reads(x,y) \land \forall z ((Book(z) \land Reads(x,z)) \rightarrow z=y)))$$

$\forall x \forall y \exists z ((S(x) \wedge B(y) \wedge R(x,y)) \rightarrow (B(z) \wedge R(x, z) \wedge y \neq z))$

Bring the quantifiers to the front. ("If any student has read any book, then something else is also a book read by that student".)

• I wonder why this old answer has just picked up a downvote? It's a correct solution in the normalised form. Possibly best read in the light of Bram28's answer for motivation, I admit. – HTFB Apr 15 '19 at 9:17