On an Island of Knights and Knaves (where Knights always tell the truth and Knaves always lie), a Knight will never contradict himself unless some true fact changes. I was wondering: can a Knave contradict himself (regarding presently unchanging facts)? If he did wouldn't that mean he told the truth about 'something'?
Knave can easily contradict himself.
For example, let's take a set of facts:
Fact A, which is FALSE
Fact B, which is TRUE
If you ask a knave "what is A?" he would answer TRUE. Then "what is B?" - he would answer FALSE.
Then ask what A AND B is. He would answer TRUE (FALSE AND TRUE = FALSE).
But combining his previous answers logician would conclude that A AND B = FALSE (TRUE AND FALSE = FALSE).
I think I can do it in one: "Will you answer "yes" to this question?"
If the knave will not, he would say "no", but he has to lie and say "yes".
If he will, then he would say "yes", but has to lie and say "no".
The added benefit of this question is that it does not force knights into a contradictory loop (they will truthfully say "yes"/"no").
My friend suggested another interesting idea to answer this question.
Contradict himself means to say something illogical, independently of the perception of the reality. For example, "sky is not blue" would not be contradiction, may be our Knave is colorblind, or just crazy. But must leave here a criteria for what is logical and what is not anyway. So the logic provides us a facts, which are postulated to be true for all people.
Therefore one question is enough, just ask something like "Does A is true if and only if A is true?". Since the Knave should use the same logic as we do (otherwise it would not be a Knave in our definition), he will answer "No", and this way we would understand immediately that it is a Knave.
If we take general definition of the word: "contradiction is a situation in which inconsistent elements are present.". We can see that to contradict himself one need to say a set of statement, which can not be all true simultaneously (because of logic). Sometimes to create such a conditions one statement is enough.