Debugging a program—or any system, such as a robot—often involves reducing the amount of unknowns until only one culprit is left. The situation is like a mystery story. A detective interrogates all the suspects and gathers clues until everybody but one suspect has an alibi. Along the way various red herrings lead the hero astray. But with sufficient confidence that there must be a logical explanation, the mystery is eventually solved.