Let L be a language and suppose that, although L is not regular, there is nevertheless someone who claims to have a machine ℳ that recognises it: i.e., they claim to have a machine that accepts members of L and nothing else. This person is the Spiv. This machine is fraudulent of course, but how do we prove it? What we need is a bomb.
A bomb (for ℳ) is a string that is either (i) a member of L not accepted by ℳ or (more usually) (ii) a string accepted by ℳ that isn't in L. Either way, it is a certificate of fraudulence of the machine ℳ, and therefore something that explodes those fraudulent claims.
How do we find bombs? This is where the pumping lemma comes in handy. The key to designing a bomb is feeding ℳ a string w from L whose length is greater than the number of states of ℳ. ℳ accepts w. ℳ must have gone through a loop in so doing. Now we ascertain what substring w' of w sent ℳ through the loop, and we insert lots of extra copies of that substring next to the one copy already there and we know that the new "pumped" string will also be accepted by ℳ. With any luck it won't be in L, and so it will be a bomb. The key idea here is that the machine has no memory of what has happened to it beyond what is encoded by it being in one state rather than another. So it cannot tell how often it has been though a loop. We - the bystanders - know how often it has been sent through a loop but the machine itself has no idea.
Examples are always a help, so let us consider some actual challenges to the bomb-maker.
Next: 1.4.1 One-step refutations using bombs