Lecture 20: Adversary Arguments
An adversary means opposition and competition,
but not having an adversary means grief and loneliness.
— Zhuangzi (Chuang-tsu) c. 300 BC
It is possible that the operator could be hit by an asteroid and your $20 could
fall oﬀ his cardboard box and land on the ground, and while you were picking
it up, $5 could blow into your hand. You therefore could win $5 by a simple
twist of fate.
— Penn Jillette, explaining how to win at Three-Card Monte (1999)
Until Times Square was sanitized into TimesSquareLand
by Mayor Rudy Guiliani, you could often
ﬁnd dealers stealing tourists’ money using a game called ‘Three Card Monte’ or ‘Spot the Lady’. The
dealer has three cards, say the Queen of Hearts and the two and three of clubs. The dealer shufﬂes
the cards face down on a table (usually slowly enough that you can follow the Queen), and then
asks the tourist to bet on which card is the Queen. In principle, the tourist’s odds of winning are at
least one in three.
In practice, however, the tourist
wins, because the dealer cheats. There are actually
cards; before he even starts shufﬂing the cards, the dealer palms the queen or sticks it up his sleeve.
No matter what card the tourist bets on, the dealer turns over a black card. If the tourist gives up,
the dealer slides the queen under one of the cards and turns it over, showing the tourist ‘where the
queen was all along’. If the dealer is really good, the tourist won’t see the dealer changing the cards
and will think maybe the queen
there all along and he just wasn’t smart enough to ﬁgure that
out. As long as the dealer doesn’t reveal all the black cards at once, the tourist has no way to prove
that the dealer cheated!
Now let’s consider a similar game, but with an algorithm acting as the tourist and with bits instead
of cards. Suppose we have an array of
bits and we want to determine if any of them is a
Obviously we can ﬁgure this out by just looking at every bit, but can we do better? Is there maybe
some complicated tricky algorithm to answer the question “Any ones?” without looking at every
bit? Well, of course not, but how do we prove it?
The simplest proof technique is called an
argument. The idea is that an all-powerful
malicious adversary (the dealer)
to choose an input for the algorithm (the tourist). When
the algorithm wants looks at a bit (a card), the adversary sets that bit to whatever value will make
the algorithm do the most work. If the algorithm does not look at enough bits before terminating,
then there will be several different inputs, each consistent with the bits already seen, the should
result in different outputs. Whatever the algorithm outputs, the adversary can ‘reveal’ an input that
is has all the examined bits but contradicts the algorithm’s output, and then claim that that was the
input that he was using all along. Since the only information the algorithm has is the set of bits