Drinker paradox

The drinker paradox (also known as drinker's principle or (the) drinking principle) is a theorem of classical predicate logic, usually stated in natural language as: There is someone in the pub such that, if he is drinking, everyone in the pub is drinking. The actual theorem is

\exists x\in P.\ [D(x) \rightarrow \forall y\in P.\ D(y)]. \,

where D is an arbitrary predicate and P is an arbitrary set. The paradox was popularised by the mathematical logician Raymond Smullyan, who called it the "drinking principle" in his 1978 book What Is the Name of this Book?[1]

Proofs of the paradox

The proof begins by recognizing it is true that either everyone in the pub is drinking, or at least one person in the pub is not drinking. Consequently, there are two cases to consider:[1][2]

  1. Suppose everyone is drinking. For any particular person, it cannot be wrong to say that if that particular person is drinking, then everyone in the pub is drinking — because everyone is drinking. Because everyone is drinking, then that one person must drink because when ' that person ' drinks ' everybody ' drinks, everybody includes that person.[1][2]
  2. Suppose that at least one person is not drinking. For any particular nondrinking person, it still cannot be wrong to say that if that particular person is drinking, then everyone in the pub is drinking — because that person is, in fact, not drinking. In this case the condition is false, so the statement is vacuously true due to the nature of material implication in formal logic, which states that "If P, then Q" is always true if P (the condition or antecedent) is false.[1][2]

Either way, there is someone in the pub such that, if he is drinking, everyone in the pub is drinking. A slightly more formal way of expressing the above is to say that, if everybody drinks, then anyone can be the witness for the validity of the theorem. And if someone does not drink, then that particular non-drinking individual can be the witness to the theorem's validity.[3]

The proof above is essentially model-theoretic (can be formalized as such). A purely syntactic proof is possible and can even be mechanized (in Otter for example), but only for an equisatisfiable rather than an equivalent negation of the theorem.[4] Namely, the negation of the theorem is

\neg [\exists x.\ [D(x) \rightarrow \forall y.\ D(y)]]\,

which is equivalent with the prenex normal form

\forall x \exists y.\ [D(x) \wedge \neg D(y)]\,

By Skolemization the above is equisatisfiable with

\forall x .\ [D(x) \wedge \neg D(f(x))]\,

The resolution of the two clauses D(x) and \neg D(f(x)) results in an empty set of clauses (i.e. a contradiction), thus proving the negation of the theorem is unsatisfiable. The resolution is slightly non-straightforward because it involves a search based on Herbrand's theorem for ground instances that are propositionally unsatisfiable. The bound variable x is first instantiated with a constant d (making use of the assumption that the domain is non-empty), resulting in the Herbrand universe:[5]

\{ d, f(d), f(f(d)), f(f(f(d))), \ldots \}

One can sketch the following natural deduction:[4]


\cfrac
  {\cfrac
    {\cfrac
      {\forall x .\ [D(x) \wedge \neg D(f(x))]\, }
      {D(d) \wedge \neg D(f(d))}
      \forall_E
    }
    {\neg D(f(d))}
    \wedge_E
    \qquad    
    \cfrac
      {\cfrac
        {\forall x .\ [D(x) \wedge \neg D(f(x))]\, }
        {D(f(d)) \wedge \neg D(f(f(d)))}
        \forall_E
      }
      {D(f(d))}
      \wedge_E
  }
  {\bot}\ 
  \Rightarrow_E

Or spelled out:

  1. Instantiating x with d yields [D(d) \wedge \neg D(f(d))] which implies \neg D(f(d))
  2. x is then instantiated with f(d) yielding [D(f(d)) \wedge \neg D(f(f(d)))] which implies D(f(d)).

Observe that \neg D(f(d)) and D(f(d)) unify syntactically in their predicate arguments. An (automated) search thus finishes in two steps:[5]

  1. D(d) \wedge \neg D(f(d))
  2. D(d) \wedge \underline{\neg D(f(d)) \wedge D(f(d))} \wedge \neg D(f(f(d)))

The proof by resolution given here uses the law of excluded middle, the axiom of choice, and non-emptiness of the domain as premises.[4]

Discussion

This proof illustrates several properties of classical predicate logic that do not always agree with ordinary language.

Excluded middle

The above proof begins by saying that either everyone is drinking, or someone is not drinking. This uses the validity of excluded middle for the statement S = "everyone is drinking", which is always available in classical logic. If the logic does not admit arbitrary excluded middle—for example if the logic is intuitionistic—then the truth of S \or \neg S must first be established, i.e., S must be shown to be decidable.[6]

Material versus indicative conditional

Most important to the paradox is that the conditional in classical (and intuitionistic) logic is the material conditional. It has the property that A \rightarrow B is true if B is true or if A is false (in classical logic, but not intuitionistic logic, this is also a necessary condition).

So as it was applied here, the statement "if he is drinking, everyone is drinking" was taken to be correct in one case, if everyone was drinking, and in the other case, if he was not drinking — even though his drinking may not have had anything to do with anyone else's drinking.

In natural language, on the other hand, typically "if...then..." is used as an indicative conditional.

Non-empty domain

It is not necessary to assume there was anyone in the pub. The assumption that the domain is non-empty is built into the inference rules of classical predicate logic.[7] We can deduce D(x) from \forall x D(x), but of course if the domain were empty (in this case, if there were nobody in the pub), the proposition D(x) is not well-formed for any closed expression x.

Nevertheless, if we allow empty domains we still have something like the drinker paradox in the form of the theorem:

(\exists x.\ [x=x]) \rightarrow \exists x.\ [D(x) \rightarrow \forall y.\ D(y)]

Or in words:

If there is anyone in the pub at all, then there is someone such that, if he is drinking, then everyone in the pub is drinking.

Temporal aspects

Although not discussed in formal terms by Smullyan, he hints that the verb "drinks" is temporally ambiguous by citing a postcard written to him by two of his students, which contains the following dialogue (emphasis in original):[1]

Logician / I know a fellow who is such that whenever he drinks, everyone does.
Student / I just don't understand. Do you mean, everyone on earth?
Logician / Yes, naturally.
Student / That sounds crazy! You mean as soon as he drinks, at just that moment, everyone does?
Logician / Of course.
Student / But that implies that at some time, everyone was drinking at once. Surely that never happened!

History and variations

Smullyan in his 1978 book attributes the naming of "The Drinking Principle" to his graduate students.[1] He also discusses variants (obtained by substituting D with other, more dramatic predicates):

As "Smullyan's ‘Drinkers’ principle" or just "Drinkers' principle" it appears in H.P. Barendregt's "The quest for correctness" (1996), accompanied by some machine proofs.[2] Since then it has made regular appearance as an example in publications about automated reasoning; it is sometimes used to contrast the expressiveness of proof assistants.[4][5][8]

See also

References

  1. 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 Raymond Smullyan (1978). What is the Name of this Book? The Riddle of Dracula and Other Logical Puzzles. Prentice Hall. chapter 14. How to Prove Anything. (topic) 250. The Drinking Principle. pp. 209–211. ISBN 0-13-955088-7.
  2. 2.0 2.1 2.2 2.3 H.P. Barendregt (1996). "The quest for correctness". Images of SMC Research 1996. Stichting Mathematisch Centrum. pp. 54–55. ISBN 978-90-6196-462-9.
  3. Peter J. Cameron (1999). Sets, Logic and Categories. Springer. p. 91. ISBN 978-1-85233-056-9.
  4. 4.0 4.1 4.2 4.3 Marc Bezem , Dimitri Hendriks (2008) Clausification in Coq
  5. 5.0 5.1 5.2 J. Harrison (2008). "Automated and Interactive Theorem Proving". In Orna Grumberg, Tobias Nipkow, Christian Pfaller. Formal Logical Methods for System Security and Correctness. IOS Press. pp. 123–124. ISBN 978-1-58603-843-4.
  6. Martin Abadi; Georges Gonthier; Benjamin Werner (1998). "Choice in Dynamic Linking". In Igor Walukiewicz. Foundations of Software Science and Computation Structures. Springer. p. 24. ISBN 3-540-21298-1.
  7. Martín Escardó; Paulo Oliva. "Searchable Sets, Dubuc-Penon Compactness, Omniscience Principles, and the Drinker Paradox". Computability in Europe 2010. p. 2.
  8. Freek Wiedijk. 2001. Mizar Light for HOL Light. In Proceedings of the 14th International Conference on Theorem Proving in Higher Order Logics (TPHOLs '01), Richard J. Boulton and Paul B. Jackson (Eds.). Springer-Verlag, London, UK, 378-394.