Question 1101556
If Charlton is telling the truth, that means that both Davis and Rawls are the liars; in particular, Vongy is telling the truth, which would mean that Bobbins is also a liar, contradicting the fact that there are only two liars and there three truth-tellers.

So Charlton is lying. That means that at most one of Davis and Rawls are lying.

If Bobbins is telling the truth, then the second liar must be one of Rawls and Davis, which would again mean that Vongy is telling the truth, making Bobbins a third liar; this is impossible, so Bobbins is lying.

So we now know that the two liars are Charlton and Bobbins, and the remaining three are truth-tellers.

Therefore, the snoozer is either Rawls or Charlton (since Davis is telling the truth), but cannot be Rawls (since Rawls is telling the truth).

So Charlton is the one who fell asleep.

Another analysis

Bobbins and Vongy cannot both be telling the truth, so at least one of them is a liar. In particular, Charlton cannot be telling the truth, since that would give at least three liars. So the two liars are among Charlton, Bobbins, and Vongy, hence both Davis and Rawls are telling the truth; this suffices to establish that Charlton is the one who fell asleep.

And  a mathematical logical analysis

Before we start, note that (P≡Q)≡R(P≡Q)≡R is equivalent to P≡(Q≡R)P≡(Q≡R): ≡≡ is associative, and I will leave out the parentheses. Also, note that
(0)exactly 1 of P,Q,R is true≡(P≡Q≡R)∧¬(P∧Q∧R)
(0)exactly 1 of P,Q,R is true≡(P≡Q≡R)∧¬(P∧Q∧R)
So we are given distinct d,r,c,b,vd,r,c,b,v (for Davis, etc.), one of which is equal to ss (for sleeper). Writing T(x)T(x) for "xx always tells the truth", we can formalize "xx says ϕϕ" as T(x)≡ϕT(x)≡ϕ. Their statements then can be formalized as
(1)T(d)(2)T(r)(3)T(c)(4)T(b)(5)T(v)≡s=r∨s=c≡s≠v∧s≠r≡¬T(r)∧¬T(d)≡(T(r)≢T(d))≡¬T(b)
(1)T(d)≡s=r∨s=c(2)T(r)≡s≠v∧s≠r(3)T(c)≡¬T(r)∧¬T(d)(4)T(b)≡(T(r)≢T(d))(5)T(v)≡¬T(b)
Finally, we are given that exactly 3 of T(d),T(r),T(c),T(b),T(v)T(d),T(r),T(c),T(b),T(v) are true.

Since (5)(5) says that T(b)T(b) and T(v)T(v) are each others' opposites, we can use this to go from "exactly 3 of ..." to "exactly 1 of ...":
≡≡⇒≡≡≡≡≡≡exactly 3 of T(d),T(r),T(c),T(b),T(v) are true"T(b) and T(v) are each others' opposites"exactly 2 of T(d),T(r),T(c) are true"negation"exactly 1 of ¬T(d),¬T(r),¬T(c) is true"use (0)"¬T(d)≡¬T(r)≡¬T(c)"use (3); DeMorgan"¬T(d)≡¬T(r)≡T(r)∨T(d)"cancel two negations"T(d)≡T(r)≡T(r)∨T(d)"use (what Dijkstra et al. call) the golden rule"T(r)∧T(d)"use (2) and (1)"s≠v∧s≠r∧(s=r∨s=c)"use s≠r in right hand side; simplify"s≠v∧s≠r∧s=c"simplify using c≠v and c≠r"s=c
exactly 3 of T(d),T(r),T(c),T(b),T(v) are true≡"T(b) and T(v) are each others' opposites"exactly 2 of T(d),T(r),T(c) are true≡"negation"exactly 1 of ¬T(d),¬T(r),¬T(c) is true⇒"use (0)"¬T(d)≡¬T(r)≡¬T(c)≡"use (3); DeMorgan"¬T(d)≡¬T(r)≡T(r)∨T(d)≡"cancel two negations"T(d)≡T(r)≡T(r)∨T(d)≡"use (what Dijkstra et al. call) the golden rule"T(r)∧T(d)≡"use (2) and (1)"s≠v∧s≠r∧(s=r∨s=c)≡"use s≠r in right hand side; simplify"s≠v∧s≠r∧s=c≡"simplify using c≠v and c≠r"s=c
Therefore Charlton slept.

All three solutions are from
https://math.stackexchange.com/questions/125197/variation-of-a-who-is-lying-question