This page is keyboard accessible:
• Use Tab, Shift + Tab keys to traverse the main menu. To enter a sub-menu use the Right Arrow key. To leave a sub-menu use the Left Arrow or the Escape key.
• The Enter or the Space key opens the active menu item.
• To skip the menu and move to the main content, press Tab after the page loads to reveal a skip button.
• To get back to the top of the page anytime, press the Home key.
• For more information, click here: Accessibility   Close this tip.

Note: Full functionality of this web page requires JavaScript to be enabled in your browser.

Cantor’s First ‘Non-Denumerable’ Proof

Cantor published a proof in 1874 that the real numbers are not denumerable, that is, that there cannot be a list that can match every one of the real numbers uniquely to every one of the natural numbers. (Footnote: Georg Cantor,Über eine Eigenschaft des Inbegriffes aller reellen algebraischen Zahlen, Journal für die Reine und Angewandte Mathematik 77 (1874), pp 258-62, English translation online at Cantor’s 1874 Proof of Non-Denumerability - English Translation. Cantor also published a similar proof in 1884: Über unendliche lineare Punktmannigfaltigkeiten, Mathematische Annalen 6, 23 (1884) pp 453-488.) There is an English translation of Cantor’s original proof online at Cantor’s 1874 Proof of Non-Denumerability - English Translation.


In mathematical terms, the proof claims that there can be no mathematical function that will map every natural number to some real number so that every natural number has a corresponding real number. This proof is essentially as follows:


First of all we assume that there actually can be a function matching the natural numbers to all the real numbers; the object of the proof is to prove that this assumption cannot be correct. We call the assumed function List(x). Whenever we replace the x in List(x) by some natural number, the definition of List(x) gives some real number to correspond with this natural number.

Now we go through the natural numbers one by one, starting at zero, until we get two values for the function List(x) that are between the values 0 and 1 (which will be real numbers) – we call these first two natural numbers n1 and n2, so that the first two real number values are List(n1) and List(n2), so that we have a new interval List(n1) - List(n2) which includes all the real numbers between List(n1) and List(n2).

Cantor First Proof 1

We repeat this procedure and continue to go through the natural numbers one by one until we find the next two values of List(x) (again, these are real numbers) that are within the interval List(n1) - List(n2) For these two numbers, let the smaller be List(n1,1), and the other List(n2,2), so that we have a new interval List(n1,1) - List(n2,2).

Cantor First Proof 2

We continue this process again and again. As we do so, the interval becomes smaller and smaller. But between any two real numbers there is always another real number, since there is no such thing as a smallest difference between two real numbers. That means that no matter how long we continue the process for, there will still be two real numbers with an interval between them.

The proof now says: Seeing as the interval never vanishes, there must be at least one number (which we will call c) which lies between every interval of every List(n1,1,1, …) - List(n2,2, 2, …), for which there cannot be any corresponding natural number (which we call nc). For if there were such a natural number nc, it would follow then when that number nc was reached in the above process, that the corresponding real number c would have been added as some endpoint of some interval as List(n1,1,1, …) or List(n2,2,2, …).


This is a contradiction, since it must lie between the sequence List(n1,1,1, …) and the sequence List(n2,2,2, …). Since there is a contradiction, then the initial assumption that there can be a function List(x) that maps the natural numbers to the real numbers is wrong, and there can be no such list.


The above proof proves, of course, that there cannot be a function that maps the natural numbers to the real numbers, where the function is in the same language as the real numbers.


We note that the proof makes no mention of levels of language - no mention of meta-language or sub-language - and makes no assertions about functions that map natural numbers to real numbers but are not in the same languages as those real numbers (i.e., such function are in a meta-language to the real numbers of the list.


On The Diagonal Proof page, it is shown that if levels of language are ignored and unfounded Platonist assumptions are included, then, by the secondary argument of the Diagonal proof, this generates the result is that there are ‘more’ real numbers than natural numbers. See also the paper On Considerations of Language in the Diagonal Proof (PDF).


In this respect, the only difference between the above proof and the Diagonal proof is the difference in the description of the Diagonal number and the number c. So, in the above proof, if it is assumed that the number c ‘exists’, without regard to whether there is actually any valid mathematical definition of it, then such Platonist assumptions give the secondary result that there are ‘more’ real numbers than natural numbers.


As for the Diagonal argument, if we do not include the implicit Platonic assumptions that support the secondary argument, then the proof simply proves that there cannot be a matching function List(x) from all natural numbers to all real numbers, in the same language as the language being used for real numbers.


And as for the Diagonal argument, if the function List(x) is a function is in a meta-language, then we cannot simply assume that there can be a valid mathematical definition of c. As for the Diagonal argument, we end up with the same conclusion – that, depending on the language of the list, the ‘number’ c is not necessarily logically definable, and the proof certainly does not provide a description of how a precise mathematical definition of c might be arrived at when the function List(x) is a function is in a meta-language.


As in the case of the Diagonal argument, without unfounded assumptions concerning the ‘existence’ of things independently of language, Cantor’s first proof proves that there cannot be any function that maps the natural numbers to the real numbers, where the function is in the same language as the real numbers - but it provides no basis for the secondary argument, that there ‘exist’ undefinable real numbers.


For more details, see the Diagonal proof, the secondary argument of the Diagonal proof, and A List with no Diagonal number.

section divider


section divider



Diverse opinions and criticisms are welcome, but messages that are frivolous, irrelevant or devoid of logical basis will be blocked. Difficulties in understanding the site content are usually best addressed by contacting me by e-mail. Note: you will be asked to provide an e-mail address - any address will do, it does not require verification. Your e-mail will only be used to notify you of replies to your comments - it will never be used for any other purpose and will not be displayed. If you cannot see any comments below, see Why isn’t the comment box loading?.

section divider

The Lighter Side


Paper on the diagonal proof

There is now a paper that deals with the matter of language and the diagonal proof, see On Considerations of Language in the Diagonal Proof.

section divider

Other recently added pages

The Myths of Platonism


Goodman’s Paradox


The Platonist Rod paradox


The Balls in the Urn Paradox


section divider

Lebesgue Measure

There is now a new page on a contradiction in Lebesgue measure theory.

section divider

Easy Footnotes

I found that making, adding or deleting footnotes in the traditional manner proved to be a major pain. So I developed a different system for footnotes which makes inserting or changing footnotes a doddle. You can check it out at Easy Footnotes for Web Pages (Accessibility friendly).

section divider

O’Connor’s “computer checked” proof

I have now added a new section to my paper on Russell O’Connor’s claim of a computer verified incompleteness proof. This shows that the flaw in the proof arises from a reliance on definitions that include unacceptable assumptions - assumptions that are not actually checked by the computer code. See also the new page Representability.

Previous Blog Posts

Moderate Platonism

Descartes’ Platonism

The duplicity of Mark Chu-Carroll

A John Searle Inanity

Man versus Machine

Fake News and Fake Mathematics

Ned Block’s Blockhead

Are we alone in the Universe?

Good Math, Bad Math?

Bishops Dancing with Pixies?

Artificial Intelligence

Cranks and Crackpots

The Chinese Room


For convenience, there are now two pages on this site with links to various material relating to Gödel and the Incompleteness Theorem


– a page with general links:

Gödel Links


– and a page relating specifically to the Gödel mind-machine debate:

Gödel, Minds, and Machines

Printer Friendly

All pages on this website are printer friendly, and will print the main content in a convenient format. Note that the margins are set by your browser print settings.

Note: for some browsers JavaScript must be enabled for this to operate correctly.


Comments on this site are welcome, please see the comment section.


Please note that this web site, like any other is a collection of various statements. Not all of this web site is intended to be factual. Some of it is personal opinion or interpretation.


If you prefer to ask me directly about the material on this site, please send me an e-mail with your query, and I will attempt to reply promptly.


Feedback about site design would also be appreciated so that I can improve the site.

Copyright © James R Meyer 2012 - 2018