On Unprecise Numbers


DOI: 10.6084/m9.figshare.29066705

Click here to return to the main page

DOI: 10.6084/m9.figshare.29066705


Introduction

This paper, On Unprecise Numbers, was intended as a second offshoot of Gödel Incompleteness and Turing Completeness. My aim was to extend its linguistic viewpoint to numbers. However, the final version is more a complementary than a derivative work.

While writing it, I had to change my mind because I was wrong. Following an intuition by Turing, my initial idea was to show that the unprecise numbers were the complete numbers, where a complete number is any that requires a complete language to be defined. I was surprised when I realized that complete number $R$ is not unprecise, but computable.

Syntax and semantics

The equation of Turing completeness is: $$\exists\,{\cal U},\forall{\cal P},\forall{\frak d}:\; \overleftarrow{{\cal U}\langle\,{\frak p}|\vec{\frak d}\,\rangle} = {\cal P}\langle{\frak d}\rangle \;.$$

In the equation, $\langle\,{\frak p}|\vec{\frak d}\,\rangle$ is the computation that applies coded data $\vec{\frak d}$ to program $\frak p$, where $\frak p$ is the Turing machine $\cal P$ coded in the complete language $\cal L$ implemented by the universal Turing machine $\cal U$.

The syntax of the complete language $\cal L$ is the set of its sentences, or well-formed formulas, denoted $\Sigma_{\cal L}$. For the equation of Turing completeness to work, the string $\langle\,{\frak p}|\vec{\frak d}\,\rangle$ has to be a well-formed formula of language $\cal L$, and then the requirement is to decide, for every string of symbols of the universal Turing machine $\cal U$, whether it is a well-formed formula or not, that is, $\forall s \in \Gamma^*_{\cal U}$, to decide whether $s\in\Sigma_{\cal L}$ or $s\notin\Sigma_{\cal L}$. In other words, syntax $\Sigma_{\cal L}$ is decidable.

Since the well-formed formulas, or sentences, of the complete language $\cal L$ are computations, then the semantics of $\cal L$ expresses computations; the meaning of sentence $\langle\,{\frak p}|\vec{\frak d}\,\rangle$ is ${\cal P}\langle{\frak d}\rangle$. But, since we are finite, we can only reach the meaning of the halting computations, then for us semantics, denoted $\Psi_{\!\cal L}$, is the set of the halting computations; so $\Psi_{\cal L} \subset \Sigma_{\cal L}$. The halting theorem says that

no program can decide for every computation whether it will halt or not.

In other words, semantics $\Psi_{\!\cal L}$ is undecidable.

Summarizing,

in every complete language $\cal L$, syntax $\mit\Sigma_{\cal L}$ is decidable but semantics $\mit\Psi_{\!\cal L}$ is undecidable.

Thus, in the Euler diagram of the complete language $\cal L$, the limits of syntax $\Sigma_{\cal L}$ are precise, but the limits of semantics $\Psi_{\!\cal L}$ are unprecise.

Euler diagram of a Turing complete language

Numbers, strings and sets

There are bijections between the strings and the natural numbers, between the natural and the integer numbers, and between the natural and the rational numbers, $\Sigma_{\cal L} \leftrightarrow {\mathbb N} \leftrightarrow {\mathbb Z} \leftrightarrow {\mathbb Q}$. Then any rational number can be coded into a string of the complete language.

In the case of the real numbers, the bijection is between the real numbers and the sets of natural numbers, ${\mathbb R} \leftrightarrow 2^{\mathbb N}$. Then, each real number has to be coded into a set of strings of the complete language. And computing classifies the sets of strings as follows.

Therefore, we can classify the real numbers accordingly.

$$\hbox{Real}\left\{ \eqalign{&\hbox{Computable = Decidable}\cr &\hbox{Uncomputable} \left\{\eqalign{&\hbox{Unprecise = Semidecidable}\cr &\hbox{Random = Undefinable}\cr}\right.}\right. $$

The rational numbers are syntactic, since each one can be coded into a single string; for example, the rational number three quarters gets coded into the string "3/4", and minus one seventh into "-1/7". On the other hand, each irrational number, with its non-repeating infinite expansion, has to be coded by an infinite set of strings. And, in order to define an infinite set, a program that enumerates it is required. Being defined on the behavior of programs, the irrational numbers are semantic.


Last paragraph

Let me conclude answering our first question: Why do not we use, in practice, any uncomputable number? Should we were able to calculate beyond what is computable, then we would use, whenever we should see fit, super-computable numbers, which would be those numbers that are beyond what is computable, that is, the uncomputable numbers. Therefore, either

I think the first case, which is the law of Post, is true, see Casares (C), which would explain why Church’s thesis was not yet refuted. If I am right about this, then the second case is inconsequential, even though it is likely false, since there are infinitely many more uncomputable than computable numbers. And, consequently, my answer is that we do not use uncomputable numbers because we are under the law of Post.

Abstract

Regarding computability, there are three kinds of real numbers: the computable, the random, and the unprecise numbers. Some unprecise numbers are those based on Radó's busy beaver functions, Chaitin's constant Ω, Turing's uncomputable number δ, and those coding the halting problem oracle of a Turing complete language. All these unprecise numbers are complete, because they can only be defined in a Turing complete language, but we show, against one of Turing's intuitions, that not every complete number is unprecise.


References

Link to the page of my paper on “On Unprecise Numbers” in figshare, and direct link to the pdf file.

Versions:


Última actualización: 2025-09-09.

© Ramón Casares 2025