The most common way to construct R is as a set of equivalence classes of Cauchy sequences, where two sequences are considered equivalent if their term-wise difference converges to zero. These Cauchy sequences can be described in mathematical language, obviously, lets say set theory and second order logic. Now, imagine an algorithm like this:
- Start with an ordered list of allowed symbols in our language (all the most commonly used symbols in mathematical notation).
- Enumerate all these strings, starting with the strings of length 1, then length 2, then 3, in the order of the ordered list.
- Some of these strings will be nonsense, like "{{a. ∀∀∀", some of them will be meaningful mathematical expressions, and some of them will be Cauchy sequences. However, when a (first) string corresponding to a Cauchy sequence appears we can send it to 1, and then when a second such string appears (presuming it is not in an equivalence class of Cauchy sequences that has appeared before), we can send it to 2, and so on ....
This is clearly countable, the set of all strings is countable. It will also reach every cauchy sequence unless there are cauchy sequences that cannot be described in any mathematical language. What is wrong with this argument?