Suppose you walk past a barber's shop one day and see a sign that reads, "Do you shave yourself? If not, come in and I'll shave you! I shave anyone who does not shave himself, and no one else." This seems fair enough, and fairly simple, until the following question occurs to you - does the barber shave himself? If he does, then he mustn't, because he doesn't shave men who shave themselves, but then he doesn't, so he must, because he shaves every man who doesn't shave himself... and so on. Both possibilities lead to a contradiction.

This is the Barber's Paradox, which was introduced by the British mathematician, philosopher, and conscientious objector Bertrand Russell at the beginning of the twentieth century. It exposed a huge problem which changed the entire direction of twentieth century mathematics.

In the Barber's Paradox, the condition is "shaves himself," but the set of all men who shave themselves can't be constructed, even though the condition seems straightforward enough, because we can't decide whether the barber should be in or out of the set. Both conditions lead to contradictions.

Attempts to find ways around the paradox have centered on restricting the types of sets that are allowed. Russell himself proposed a "Theory of Types" in which sentences were arranged hierarchically. At the lowest level are sentences about individuals. At the next level are sentences about sets of individuals; at the next level are sentences about sets of individuals, and so on. This avoids the possibility of having to talk about the set of all sets that are not members of themselves, because the two parts of the sentence are of different types - that is, at different levels.

For this and other reasons, the most favored escape from Russell's Paradox is the so-called Zermelo-Fraenkel axiomatisation of set theory. This axiomatisation restricts the assumption of naïve set theory, which states that, given a condition, you can always make a set by collecting exactly the objects satisfying the condition. Instead, you start with individual entities, make sets out of them, and work upwards. This means that you do not have to suppose that there is a set of all sets, which means you don't have to try to divide that set up into those sets that contain themselves and those which don't. You only have to be able to make this division for the elements of any given set, which you have built up from individual entities via some number of steps.

A possible (sexist) solution: Just make the barber a woman.