Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In the logical programming class I was given an example:

Everyone who is sane can learn. Insane people cannot study in university. Does this imply that everyone who cannot learn, cannot study in the university?

Define the following predicates

S(x) - x is sane

L(x) - x can learn

N(x) - x cannot study in university

Then the theory is:

  1. S(x) => L(x) //Everyone who is sane can learn
  2. ~S(x) => N(x) //Insane people cannot study in university
  3. ~L(p) // person p cannot learn

Implication: N(p) // person p cannot study in university ?

The answer is: true, p cannot study in university

The homework problem says:

The king thinks that the queen thinks that she is insane. Is the king insane?

I defined the predicate T(x) - x thinks (x is sane), thinking = sanity

  1. T(k) => T(q) // the king thinks that the queen thinks
  2. T(q) => ~T(q) // the queen thinks she is insane

Implication: ~T(k) // the king is insane?

The answer is: true, the king is insane.

I'm sure this model is incorrect, and I would really appreciate if someone helped me with this.

Thank you!

share|cite|improve this question
It's bad manners to let a predicate be a negative sentence. – Git Gud Feb 17 '13 at 14:25
$GitGud$ No it isn't. In symbolically rendering English into FoL, just expose as much structure as is needed for the case in hand. – Peter Smith Feb 17 '13 at 14:27
@PeterSmith I didn't say it was wrong. – Git Gud Feb 17 '13 at 14:32
up vote 4 down vote accepted

With your key for rendering the English into the language of first order logic, the two given premisses translate as

$$\forall x(S(x) \to L(x))$$ $$\forall x(\neg S(x) \to N(x))$$

and you are asked whether these entail the following conclusion:

$$\forall x(\neg L(x) \to N(x)).$$

And that conclusion indeed follows.

For take someone $a$ such that $\neg L(a)$. Then by the first premiss we know $S(a) \to L(a)$ whence $\neg S(a)$. By the second premiss $\neg S(a) \to N(a)$, whence $N(a)$.

So by conditional proof we have shown $\neg L(a) \to N(a)$. Since $a$ was arbitrary we can generalize to get the desired conclusion.

[One comment: in most modern dialects of the language of first-order logic, we would write e.g. $Sa, Nx, \neg Lx$ etc, without further brackets after the predicate letter.]

So far so good. But as to the second example, something hopelessly confusing is going on here. 'The King thinks that $p$' engenders an intentional context. Standard first-order logical syntax can't handle intentional contexts. [You can, as you do(?), have an extensional predicate $T$ meaning "thinks", without a content clause. But note that your $T(q) \to \neg T(q)$ renders "if the queen thinks, she doesn't think" which isn't what you want at all.]

share|cite|improve this answer
I think the OP is using an "implicit" (un-translated) identification of "thinking = sanity", and if so, should have a predicate Sx: x is Sane, with a premise $\forall x(Tx \leftrightarrow Sx)$, but like you, I think intentionality isn't handled well, if at all, by first-order logical syntax. – amWhy Feb 17 '13 at 14:39

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.