How do you deduce complete list of the five beers you can drink, in this LSAT question?

I don't know if this is a real LSAT question, or if the author made it up, but my head already aches from looking at it! Does it have a valid solution?

M Kimes. Ivy Briefs: True Tales of a Neurotic Law Student 2007. p 11.

Image text:

Under the guise of examining your logical reasoning skills, the LSAT ties your brain into intricate knots. It does so by asking questions no far removed from this:

A man walks into a bar, and the bartender tells him that he will serve him five free beers if he can answer one question correctly. The man readily agrees. The bartender lines up eight beers on the bar: an Amstel Light, a Budweiser, a Corona, a Dixie, an El Toro, a Fosters, a Guinness, and a Heineken. He sets forth the following rules: If you drink the Amstel and the Guinness, you must also drink the Heineken. If you drink the Dixie, you may not drink the Fosters or the Guinness. If you drink the El Toro, you may not drink the Budweiser. You must drink exactly two of the three bottles of Budweiser, Corona, and Fosters. Now, you have three minutes to come up with a complete and accurate list of he five beers that you can drink to follow all of these rules. Go! (Note: you may not change your mind and ask for a shot of Jack Daniel's instead.)

Because I am the type of geek who gets an instant endorphin high when presented with a task that involves making checklists or graphs, with solving puzzles or logic games of any sort, or with answering any type of question in a multiple-choice format, the LSAT was my friend.

[TL;DR] You can get to 6 answers by picking a different first choice of rule to fulfil and then by applying the logical consequences of the remaining rules.

• Amstel, Budweiser, Corona, Dixie, Heineken;
• Amstel, Budweiser, Corona, Guinness, Heineken;
• Amstel, Budweiser, Fosters, Guinness, Heineken;
• Amstel, Corona, Fosters, Guinness, Heineken;
• Amstel, Corona, El Toro, Fosters, Heineken; or
• Corona, El Toro, Fosters, Guiness, Heineken.

Starting with rule 1:

If you drink the Amstel and the Guinness, you must also drink the Heineken.

Lets assume that we're going to drink the Amstel and the Guinness and so our 3rd beer must be the Heineken which gives 2 more that are unpicked (out of Budweiser, Corona, Dixie, El Toro and Fosters).

The fourth rule is:

You must drink exactly two of the three bottles of Budweiser, Corona, and Fosters.

This means that, once we've decided to drink the beers in Rule 1, we must either drink:

• Amstel, Budweiser, Corona, Guinness, Heineken;
• Amstel, Budweiser, Fosters, Guinness, Heineken; or
• Amstel, Corona, Fosters, Guinness, Heineken.

None of these three options violate rule 2:

If you drink the Dixie, you may not drink the Fosters or the Guinness.

since we aren't drinking the Dixie.

or rule 3:

If you drink the El Toro, you may not drink the Budweiser.

since we aren't drinking the El Toro.

Starting with rule 2:

If you drink the Dixie, you may not drink the Fosters or the Guinness.

And drink the Dixie, then by Rule 4:

You must drink exactly two of the three bottles of Budweiser, Corona, and Fosters.

We know that we can't drink the Fosters (since we're drinking the Dixie), so we must drink the Budweiser and Corona. This leaves the options for the remaining drinks as two out of: Amstel, El Toro or Heineken.

Rule 3 says:

If you drink the El Toro, you may not drink the Budweiser.

Well, in this option, we are drinking the Budweiser so we cannot drink the El Toro and the beers we're drinking must be:

• Amstel, Budweiser, Corona, Dixie, Heineken

Starting with rule 3:

If you drink the El Toro, you may not drink the Budweiser.

And drink the El Toro, then by Rule 4:

You must drink exactly two of the three bottles of Budweiser, Corona, and Fosters.

We know that we can't drink the Budweiser (since we're drinking the El Toro), so we must drink the Corona and Fosters. This leaves the options for the remaining drinks as two out of: Amstel, Dixie, Guinness or Heineken.

Rule 2 says:

If you drink the Dixie, you may not drink the Fosters or the Guinness.

Well, in this option, we are drinking the Fosters so we cannot drink the Dixie and this then leaves us drinking 2 beers out of: Amstel, Guinness or Heineken.

Rule 1 states:

If you drink the Amstel and the Guinness, you must also drink the Heineken.

Since we've got 3 beers picked already and only want 2 remaining ones then we can't drink Amstel and Guinness as we would then also have to drink the Heineken and we can only pick 2-of-the-3. Therefore the remaining options are Heineken and one of the other two:

• Amstel, Corona, El Toro, Fosters, Heineken; or
• Corona, El Toro, Fosters, Guiness, Heineken.

Checking that is all the options:

Another method is to get the set of valid combinations for BCDEF (based on Rules 2-4) and the set of valid combinations for AGH (based on Rule 1) and then combine them to give valid lists of 5 drinks:

• Rule 4 means we must have a pair of drinks from the set { (BC), (BF), (CF) }.

• Rule 2 means that when F is not being drunk we could chose to add D to the drinks giving the possible sets: { (BC), (BCD), (BF), (CF) }

• Rule 3 means that when B is not being drunk we could chose to add E to the drinks giving the possible sets: { (BC), (BCD), (BF), (CEF), (CF) }

This is all the possible combinations of the drinks from BCDEF.

Independently:

• Rule 1 considers the drinks AGH and gives the possible sets of drinks { (), (A), (G), (H), (AH), (GH), (AGH) }

Since we must drink 5 drinks in total, we can combine the two sets and eliminate any combinations that do not total 5 giving:

• { (BC)+(AGH), (BCD)+(AH), (BCD)+(GH), (BF)+(AGH), (CEF)+(AH), (CEF)+(GH), (CF)+(AGH) }

However, Rule 2 also states that D and G cannot be drunk together which eliminates one option and leaves only 6 possible combinations:

• { (ABCGH), (ABCDH), (ABFGH), (ACEFH), (CEFGH), (ACFGH) }

I drew a picture:

I had to pick 2 out of B, C, F, and B and C had the least connections/restrictions, so those two plus the required trio AGH quickly became apparent.

• Welcome to Puzzling! More complete answers have already been given, with all possible solutions listed. Please refrain from adding extra answers which give no further value. Nov 10, 2020 at 4:06
• @bobble, IMO this answer adds plenty of value, it has a helpful picture that makes it easy to visualise the problem. Other answers do not. Nov 10, 2020 at 6:24
• @bobble In the other case, it was just the use of a different program, which didn't add much value (but still adds some value). But in this case, it's a novel and very simple way to solve the problem. You'd impress the heck out of the bartender who posed this problem by scribbling that diagram on a napkin. Perhaps the LSAT examiner would be less impressed. Nov 10, 2020 at 12:51
• @bobble let me chime in. This was the only answer which made the solution obvious. I could look at the graph and come up with a solution in a few seconds. All the other answers looked like i need 15 minutes to understand. Nov 10, 2020 at 19:12
• A picture says a lot and this does a good job of representing the BCDEFG relationships but I'm not sure it accurately captures the AGH relationship as it is not "must share" but is a "if a specific two then also the third". You could represent it graphically with a circle around AG and then an arrow to a circle around H, something like i.stack.imgur.com/a4pHh.png
– MT0
Nov 10, 2020 at 20:41

It has multiple solutions (and so it cannot be solved by pure deduction); it's unlikely that it's intended as a real puzzle.

Some solutions I found within a minute or two were

ABCDH, ABCGH, and ACFGH.

I'm sure there are several more.

The given constraints are pretty coarse. Here is a rough estimate of the number of solutions:

• You can pick 5 beers out of 8 in $$\binom85 = 56$$ different ways.
• $$A \wedge G \Rightarrow H$$ can be satisfied in 7 out of 8 ways.
• $$D \Rightarrow \neg F \wedge \neg G$$ can be satisfied in 5 out of 8 ways.
• $$E \Rightarrow \neg B$$ can be satisfied in 3 out of 4 ways.
• $$B+C+F=2$$ can be satisfied in 3 out of 8 ways.
• In total, we can expect the question to have around $$56 \times \frac78 \times \frac58 \times \frac34 \times \frac38 \approx 8$$ or $$9$$ distinct solutions.

A program reveals that there are actually six distinct solutions: (Using Z3 here is a massive overkill, but I used it anyway for coolness)

import z3

solver = z3.SolverFor('QF_FD')
a, b, c, d, e, f, g, h = [z3.Bool(x) for x in 'abcdefgh']
solver += z3.Implies(z3.And(a, g), h)
solver += z3.Implies(d, z3.Not(z3.Or(f, g)))
solver += z3.Implies(e, z3.Not(b))
solver += z3.If(b, 1, 0) + z3.If(c, 1, 0) + z3.If(f, 1, 0) == 2
solver += sum(z3.If(x, 1, 0) for x in [a, b, c, d, e, f, g, h]) == 5

result = solver.check()
while result == z3.sat:
model = solver.model()
for v in 'abcdefgh':
print(v.upper() * z3.is_true(model.eval(eval(v))), end='')
print()
solver += z3.Or(*[v != model.eval(v) for v in [a, b, c, d, e, f, g, h]])
result = solver.check()


Output:

ABCDH
ABCGH
ACFGH
ABFGH
CEFGH
ACEFH

• There is no escape from Heineken, apparently. Nov 9, 2020 at 23:34
• @MichaelSeifert Indeed, as I found when I misread the question expecting it to have a unique answer; you must drink two of BCF (required), and at most one of DE (since drinking both prevents you from drinking two of BCF), meaning you must drink at least two of AGH, and this can't be AG, therefore you must drink H.
– Neil
Nov 11, 2020 at 0:57

Yet another cheat: use Mathematica, namely the command

And[(a∧g)⇒h,d⇒(¬f∧¬g),e⇒¬b,Or[b∧c∧¬f,b∧¬c∧f,¬b∧c∧f]]//LogicalExpand


returns

Or[b∧c∧¬e∧¬f∧¬g,
c∧f∧h∧¬b∧¬d,
c∧f∧¬a∧¬b∧¬d,
c∧f∧¬b∧¬d∧¬g,
b∧c∧h∧¬d∧¬e∧¬f,
b∧f∧h∧¬c∧¬d∧¬e,
b∧c∧¬a∧¬d∧¬e∧¬f,
b∧f∧¬a∧¬c∧¬d∧¬e,
b∧f∧¬c∧¬d∧¬e∧¬g]


Of these, the last three must be discarded since they exclude four bottles, and all others except the second exclude exactly three bottles, so give a unique answer. The second one excludes exactly two bottles, namely b and d, and (forcefully) includes c, f and h, so of the remaining three bottles a, e, g one may pick any two, which gives three answers. Except that in the resulting list of eight answers some are repeated, giving on the whole six different answers

{abcdh,abcgh,abfgh,acefh,acfgh,cefgh}

• Welcome to Puzzling! There have already been programming answers provided; this doesn't appear to add anything to those. Please don't post extra answers which add no value. Nov 9, 2020 at 17:49