[Math] Converting English statements to Boolean expressions

discrete mathematicslogic

Let $F(x,y)$ be the predicate that "Person $x$ and Person $y$ are friends." Let $L(x,c)$ be the predicate that "Person $x$ likes cuisine $c$."

  1. No one has any friends – $\forall x,y \lnot(F(x,y))$
  2. Tina is not friends with anyone – $\forall x \lnot(F(\text{Tina}, x))$
  3. Jacob is not friends with anyone who is a friend of John – $\forall x (F(\text{John}, x) \rightarrow \lnot F(\text{Jacob}, x))$
  4. Austin is friends with anyone who likes Singaporean food – $\forall x (L(x, \text{Singaporean}) \rightarrow F(\text{Austin}, x))$
  5. Pierre has exactly one friend who likes French food – $\exists x (F(\text{Pierre}, x) \land L(x, \text{French}) \land \forall y (F(\text{Pierre}, y) \land y \ne x \rightarrow \lnot L(y, \text{French})))$

I'm a little new to translating between English and boolean expressions, so I'm wondering if these statements are correct. Some might be redundant in terms of logic, so if anyone knows how to optimize or shorten them, any advice would be appreciated. Thanks!

Best Answer

Expression 5 can be simplified using $\exists !$ symbol which means "exists unique". Using this symbol (quantifier) second part of the statement you wrote is not needed and expression gets simplified.

Related Question