# How to become president of the United States of America

There are three well-known requirements for an individual to become president of the United States.

1. To be a natural born U.S. citizen.
2. To be at least 35 years of age.
3. To have lived in the United States for at least 14 years.

But once an individual has been elected, there actually is a secret fourth requirement: a horribly difficult test question (see below), that only the most profound thinkers can attack. The question itself is classified, so that we cannot show the text:

Horribly difficult test question:
Xxxx xx xxx xx xxx xxxxx xxxxx xx xxx xxxx xxxxx xxxxx xxx, xx xxx xxxx xxx xx xxx xxxxxxx xx xxx xxxx xx xx xxx x xxx xx xxx xxxx xxxxxx xxx xx xx xxx xxxx xxx xx xx xxx xxxx xxx xx xx xxx xxxx xxx xx xx xxx xxxx xxx?

a)$~$ All of the below
b)$~$ None of the below
c)$~$ All of the above
d)$~$ Exactly one of the above
e)$~$ None of the above
f)$~$ None of the above

Are you able to compete with intellectual giants like George Walker Bush, and identify the correct answer?

-
Are you sure all presidents have solved this? I mean, some of them weren't the sharpest crayons in the box. – Stig Hemmer Feb 5 at 11:17
Intellectual giants like George Walker Bush? That's like calling Jar-Jar a lovable character. – Aggie Kidd Feb 5 at 15:06
@AggieKidd Clearly you've never read Darths & Droids ;) – Mason Wheeler Feb 5 at 16:17
Which answer do the voters want to hear? Do they care if I keep changing my answer until the loudest ones seem happy? – Milo Brandt Feb 5 at 16:47
So Trump has a 1 in 6 chance of being president now? Arg! – corsiKa Feb 5 at 18:50

I think the correct option is

e

Explanation

The options are (a, b, c, d, e, f) and we eliminate each option when we confirm it is wrong.

Lets Start from the last choice.
If (f) is correct, (e) will also become correct and it will contradict the (f), that is the statement none of the above is correct.

Now the available options (a, b, c, d, e)

Now lets take option (e). There is no statement that contradicts it. So there is a possibility that it's the answer.

Now, lets take (d), which is "Exactly one of the above". For this statement to be correct, we need to prove there is possibility for any of the above three option to be true. So let's just hold it here and we can check the other options.

Let's take (c), that is "All of the above". This will contradict with (b) which states none of the below is correct. So it's not None of the below.

Now the available options (a,b,d,e)

Lets just hold (b) and take (a) now. That is "All of the below", which we have proved wrong already, since many options are proved incorrect.

Now the available options are (b,d,e)

Not let's get back to (b) and (d), that is "None of the below" and "exactly one of the above" which clearly contradicts with each other. So (b) and (d) are incorrect.

So the new available options is (e)

Since, now the only possible option is (e) and it will be the correct answer.

-
We can stop at the fourth paragraph of the explanation if we assume that there is exactly one correct answer. – 2012rcampion Feb 6 at 1:41
@2012rcampion: you don't even need to assume that (although the wording of the question strongly implies it by referring to "the correct answer") you just have to assume that choosing a logically correct answer is all that is necessary. – sumelic Feb 6 at 3:19
@sumelic Yes, but it makes the argument a lot shorter. – 2012rcampion Feb 6 at 4:00
Why do you go from f to a? It's so much simpler if you go from a to f. – asmeurer Feb 6 at 17:41
Alternatively for D, if the correct answer is 'One of the above' the correct one would be correct, therefore it wouldn't be 'D'. – Shane Feb 8 at 19:05

The answer has already been posted, but I modelled the question in the modelling language MiniZinc:

int: n = 6; % Number of questions
set of int: N = 1..n;
array[N] of var bool: truth; % Truth values

% Declare variables
var bool: a;
var bool: b;
var bool: c;
var bool: d;
var bool: e;
var bool: f;

% Make sure the short variables are the same as the corresponding in truth'
constraint forall([|
a <-> truth[1],
b <-> truth[2],
c <-> truth[3],
d <-> truth[4],
e <-> truth[5],
f <-> truth[6]|]);

constraint a <-> forall([|b,c,d,e,f|]);
constraint b <-> forall([|not c, not d, not e, not f|]);
constraint c <-> forall([|a, b|]);
constraint d <-> sum (i in 1..3) (bool2int(truth[i])) = 1;
constraint e <-> forall([|not a, not b, not c, not d|]);
constraint f <-> forall([|not a, not b, not c, not d, not e|]);

solve satisfy;


Running it using the solver Gecode gives the answer:

a = false; b = false; c = false; d = false; e = true; f = false;'

Gecode also provides how it arrived at the answer, seen in the tree. A green node is a solution, a red node a contradiction, and blue nodes represent an unfinished branch.

First, assume a) is false. Had a) been true, then e) in particular would be true implying a) is false.

Again make an assumption of b) is false. Had b) been true e) would be false, implying b) false.

Hence we know that both a) and b) are false. This implies c) is false, d) is false (since none of a,b,c) was true). Since a,b,c,d) are all false, e) is true. Since e) is true, f) is false.

All variables are assigned and we have explored the whole search tree. The only solution is when only e) is true.

-

(e)

Explanation
Options were

a) All of the below
b) None of the below
c) All of the above
d) Exactly one of the above
e) None of the above
f) None of the above

Let's say (a) is correct then (b) has to be false which is not the case. Now say (b) is correct then it contradicts (a) which has to be false. Now say (c) is correct which cannot be as both the options (a) and (b) are contradictory. Now assume (d) is correct which cannot be as proven. At last lets say (f) is correct then (e) also has to be correct because both are the same things. So the only option that remains is (e)

-
I had the same answer and I was adding the explanation. I will remove my answer if your explanation is same as what I have in my mind. :) – AeJey Feb 5 at 9:53
@AeJey I can't compare both the explanations. Do what feels right. – manshu Feb 5 at 10:00
My explanation was a bit lengthy and different, so I just updated it. :) – AeJey Feb 5 at 10:11
Now say (b) is correct then it contradicts (a) which has to be false. I beleive, (b) being true doesn't contradict (a) as such, but it contradicts (d), after considering that (c) can't be true. – publicgk Feb 8 at 5:06
@publicgk thanks for finding the mistake. u r the first one out of the thousands...:) – manshu Feb 8 at 8:16

a and/or c being true leads to a contradiction, so it's not the case. After eliminating them, we can discover that d actually confirms b, but b doesn't confirm it, which means d is also false, giving the lie to b. Since the choices from a through d are all false, e is true and thus f is false.

-
Being the most concise, this is the best answer. All the other answers induce a bit of head spinning. – phoog Feb 6 at 5:09

Easy with SICStus Prolog and its Boolean constraint solver:

:- use_module(library(clpb)).

potus([A,B,C,D,E,F]) :-
sat(A =:= card([5],[B,C,D,E,F])),
sat(B =:= card([0],[C,D,E,F])),
sat(C =:= card([2],[A,B])),
sat(D =:= card([1],[A,B,C])),
sat(E =:= card([0],[A,B,C,D])),
sat(F =:= card([0],[A,B,C,D,E])).


This shows that there is only one solution to this puzzle, no matter the question:

?- potus([A,B,C,D,E,F]).A = B, B = C, C = D, D = F, F = 0,E = 1.`

-

Choices:
a) All of the below (aka, a-f are all true)
b) None of the below (aka, c-f are all false)
c) All of the above (aka, a-c are all true)
d) Exactly one of the above
e) None of the above (aka, a-d are all false)
f) None of the above (aka, a-e are all false)

e is correct:

a can only be true if b is true, and c through f are true. But b can only be true if c through f are false. So a is false.
Because a is false, c is false.
b can only be true if d is false. But if b is true, then d is true, so b cannot be true. Thus, b is false.
d can only be true if exactly one of a through c are true. But they are all false, so d is false.
e is true, because none of a through d are true.
f is false, because e is true.
Because e is true, we have confirmed that b is false.

-

E

And here's why:

1. Let's start from A.
2. We cannot figure out A yet. Move on to B.
3. B is false because we must assume that E is true.
4. Since B is false, A is also false.
5. Since neither A nor B is true, C is false.
6. D is false because there is exactly zero correct answers above.
7. Therefore, since A, B, C, and D are all false, E is true.
8. The answer is not F because E is true.

-
At step 3, why must we assume that particular item (__) is true? – Jasper Feb 6 at 18:41
@Jasper because we are trying to see if everything will work if we say that answer is true. – Coder256 Feb 7 at 12:05