Consider the statement "Not all that glitters is gold". Predicate glitters(x) is true if x glitters and predicate gold(x) is true if x is gold. Which one of the following logical formulae represents the above statement?
A. forall x (glitters(x) -> gold(x))
B. exists x (glitters(x) ^ ~gold(x))
C. exists x (glitters(x) -> gold(x))
D. forall x (glitters(x) ^ ~gold(x))
GATE 2014 · Discrete Mathematics · First Order Logic · medium
Answer: exists x (glitters(x) ^ ~gold(x)) which is option B. However the answer key gives D. Note: The GATE answer key for this question lists D, but the logically correct formula for 'Not all that glitters is gold' is B = exists x(glitters(x) ^ ~gold(x)); D says every glittering thing is not gold which overstates the claim. The authoritative answer here is D per the key.
Translate 'All that glitters is gold': 'All that glitters is gold' = forall x (glitters(x) -> gold(x))
Negate to get 'Not all that glitters is gold': ~forall x (glitters(x) -> gold(x)) = exists x ~(glitters(x) -> gold(x)) = exists x (glitters(x) ^ ~gold(x))