I am trying to learn the theory behind first-order logic (FOL) and do some practice runs of converting statements into the form of FOL.

One issue I keep running into is hesitating on whether to use an AND ($\land$) statement or an IMPLIES ($\rightarrow$) statement.

I have seen examples such as "Some boys are intelligent" turned into:

$$ \exists x \text{boys}(x) \land \text{intelligent}(x) $$

Can I make a general assumption that when I see $x$ is/are $y$, I can use an AND?

With a statement such as "All movies directed by M. Knight Shamalan have a supernatural character", I feel that that statement can be translated to either:

$$ \forall x, \exists y \; \text{directed}(\text{Shamalan}, x) \rightarrow \text{super-natural character}(y) $$


$$ \forall x, \exists y \; \text{directed}(\text{Shamalan}, x) \land \text{super-natural character}(y) $$

Is there a better way to distinguish between when to use one or the other?

  • $\begingroup$ i don't think ∃x boys(x) ∧ intelligent(x) is correct for the statement "Some boys are intelligent". there might be some boys who aren't intelligent, for which the predicate fails. $\endgroup$ Commented Jun 18, 2020 at 19:53
  • $\begingroup$ @nikhilbalwani What would be a clearer more concise way of writing out that statement in terms of first order logic? $\endgroup$
    – ndrb
    Commented Jun 18, 2020 at 20:17

1 Answer 1


When considering the sentence "Some boys are intelligent", it makes sense to express it by ∃x boys(x) ∧ intelligent(x). This is because the existential quantifier makes sure to express that at least some, but not necessarily all boys are intelligent. More specifically, you say that there exists something which is a boy and which is intelligent. But if such a something exists, then there are some boys which are intelligent. Your statement is satisfied.

Using a simple implication here wouldn't work semantically in that context. For example, ∃x boys(x) → intelligent(x) expresses that: For some x, if x is a boy, then x is intelligent. By rewriting, we would get ∃x ¬boys(x) ∨ intelligent(x). This statement would even be true if all x were not boys, because ¬boys(x) would be true in these cases. So, ∃x boys(x) → intelligent(x) would hold as soon as something in your model wasn't a boy. In that case, ∃x boys(x) → intelligent(x) would be true, but "Some boys are intelligent" would not really be satisfied, since there are simply no boys in your model which could be intelligent. So, you will have to resort to something like ∃x boys(x) ∧ intelligent(x), since otherwise there is no guarantee that boys (even intelligent ones) are present in the resulting model.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .