Refuting the Anti-Cantor Cranks I occasionally have the opportunity to argue with anti-Cantor cranks, people who for some reason or the other attack the validity of Cantor's diagonalization proof of the uncountability of the real numbers, arguably one of the most beautiful ideas in mathematics. They usually make the same sorts of arguments, so years ago I wrote up this FAQ to deal with them. Unfortunately, it's still hard to get anywhere with these people; the discussion frequently turns into something of this form:

ME: Suppose there is an ordered list containing all the real numbers. Then we can read off the diagonal entries and construct a real number that differs in the Nth decimal place from the Nth real number on the list. This real number obviously cannot be in the list. So the list doesn't contain all the real numbers. 

THEM: Of course your proposed number is not on the list; it's not a well-defined real number.

ME: What do you mean? I gave you the exact procedure for constructing it. You take the Nth real number on the list, and you make it differ from that number in the Nth decimal place.

THEM: But if we really have a list of all the real numbers, then your proposed number has to be somewhere in the list, right?

ME: Yes, of course, so let's say it's in the 57th place. Then it would have to differ from itself in the 57th place, which is impossible!

THEM: Exactly, it's impossible! Your definition requires that it differs in some place from itself, which is impossible, so your definition is bad.

ME: But you're only saying that it's impossible on the basis of the assumption that there's a complete list of real numbers, and the whole point is to disprove that assumption.

THEM: But we're doing this proof under that assumption, so how can we make a definition that runs contrary to that assumption?

ME: But that definition is a good one regardless of whether there are countably or uncountably many reals. It is a complete, algorithmic, unambiguous specification of the real number. What else could you want? 

THEM: I want the definition to be both unambiguous and non-contradictory, and your definition is contradictory!

ME: Forget about the purported complete lists of real numbers for a moment. Don't you agree that for any list of real numbers, complete or incomplete, it's possible to construct a real number that differs in the Nth place from the Nth number on the list?

THEM: No, it's only possible to construct such a real number if that real number isn't on the list, otherwise it's a contradictory definition.

ME: Don't you see that the contradiction is not the fault of my perfectly good definition, but rather the fault of your assumption that there are countably many real numbers?

THEM: No, I don't.

ME: But what if we took our putative complete list of real numbers, and fed it in line by line into a computer with an algorithm that spits out, digit by digit, a real number that differs in the Nth digit from the Nth number on the list? Would such a computer program work?

THEM: No it wouldn't, the computer program would hit the place on the list where the number being constructed would reside, and then it would get crash, because it can't choose a digit for the number that differs in the nth place from itself.

ME: Argh!

So how do I stop going in circles and convince them that they're wrong?

Any help would be greatly appreciated.

Thank You in Advance.
The formulation "If $f:\mathbf{N} \to \mathbf{R}$ is an arbitrary mapping, then $f$ is not surjective" clearly fixes the original list of real numbers and sets aside the potentially combatitive issue of whether or not the list is all of $\mathbf{R}$.

Significantly, the argument is no longer by contradiction, but by direct implication: The diagonal procedure constructs a real number not in the image of $f$. Perhaps this may help circumvent the sense of double-talk presumably conveyed in first positing the existence of an enumeration of $\mathbf{R}$, then arguing that some infinite decimal is not on said list.
First off, there are formally verified proofs of the theorem. In fact, every major theorem proof system or proof explorer has proved it, and it is number 22 in  the classic "100 theorems" benchmark: http://www.cs.ru.nl/~freek/100/

The problem is one may not accept the axioms and rules of inference.

However, that  is not the only problem. One may not even accept the statement as it is stated. I will show an alternative statement, which may be what the cranks have in mind.

Consider a Gödel numbering or any similar scheme from the naturals to the formulas of set theory. Clearly, this numbering lists all the possible formulas of set theory.

Since real numbers are merely formulas of set theory, the encoding will define  every real number. This last statement is bound to be controversial, but nonetheless it's a valid definition of what it means to be a real number and your cranky friends could be utilizing it. (In fact, if I am understanding Asaf correctly, interestingly enough, this is the usual definition: Undefinable Real Numbers )

No idea why this got a down-vote and a delete request. The point was not brought forward in the previous answers and is based on Hamkin's answer: https://mathoverflow.net/questions/44102/is-the-analysis-as-taught-in-universities-in-fact-the-analysis-of-definable-numb#answer-44129

Simply substitute definable real number in place of real number and the diagonalization proof no longer works. Note that each real number may be definable.