Why Turing’s Computable Numbers Are Only Non-Constructively Closed Under Addition
Jeff Edmonds

TL;DR
The paper explains why Turing's original definition of computable numbers leads to problems with addition due to ambiguity in digit computation.
Contribution
The paper provides a simple reduction to the Halting Problem to show the non-constructive closure of Turing-computable numbers under addition.
Findings
Turing-computable numbers are not constructively closed under addition due to digit ambiguity.
A Turing machine can compute x+y non-constructively using an oracle for the Halting Problem.
The multiplication case remains unresolved and is highlighted as an open question.
Abstract
Kolmogorov complexity asks whether a string can be outputted by a Turing Machine (TM) whose description is shorter. Analogously, a real number is considered computable if a Turing machine can generate its decimal expansion. The modern ϵ-approximation definition of computability, widely used in practical computation, ensures that computable reals are constructively closed under addition. However, Turing’s original 1936 digit-by-digit notion, which demands the direct output of the n-th digit, presents a stark divergence. Though the set of Turing-computable reals is not constructively closed under addition, we prove that a Turing machine capable of computing x+y non-constructively exists. The core constructive computational barrier arises from determining the ones digit of a sum like 0.333¯+0.666¯=0.999¯=1.000¯. This particular example is ambiguous because both 0.999¯ and 1.000¯ are…
- —Natural Sciences and Engineering Research Council of Canada (NSERC)
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsComputability, Logic, AI Algorithms · semigroups and automata theory · Logic, programming, and type systems
1. Introduction
Computer science, effectively founded by Turing, relies on the ability to compute the sum of computable numbers. While it is often taken for granted that the set of computable numbers is closed under addition, the validity of this statement depends entirely on the definition of “computability” being used. There are two distinct definitions in the literature: Turing’s original 1936 digit-by-digit definition (which we will call Turing-computable) and the modern definition based on approximation (which we will call ** -computable**).
Under the -computable definition, real numbers are constructively closed under addition and multiplication. Modern computable analysis largely adopted this definition following the work of Pour-El and Richards [1], precisely because Turing’s original definition lacks this constructive closure.
Turing-computable (Digit-by-Digit): A real number x is Turing-computable if there exists a Turing machine that, on input n, outputs the digit of the decimal expansion of x. The number is said to be weakly printable digit-by-digit if it allows an infinite string of 9s.** -computable (Approximation):** A real number x is -computable if there exists a Turing machine that, on input a rational , outputs a rational number such that .
The equivalence between these two definitions is well-known, yet subtle. While every Turing-computable number is -computable and vice versa, the transformation between these forms is not always constructive. The goal of this paper is to explore the gap between these definitions, specifically regarding the closure of addition.
We distinguish between two types of closure:
- Constructive Closure: There exists a uniform algorithm that, given descriptions of machines for x and y, produces a machine for .
- Non-Constructive Closure: For any computable x and y, a machine for exists, though no algorithm may exist to find it.
We prove the following:
- Constructive Proof: According to Turing-computable definition, computable numbers are not constructively closed under addition or multiplication, because it is undecidable to compute the digit of from Turing machines and . In fact, it is undecidable to determine whether .
- Non-Constructive Proof: Under this same definition, the set of computable real numbers is non-constructively closed under addition: We can prove that a machine computing the digits of exists, even though we cannot necessarily construct it.
There are three proofs of this first result: informal arguments by Hamkins [2], a formal proof using Kleene’s Recursion Theorem by Berthelette et al. [3], and the proof presented in this paper. All three leverage the ambiguity introduced by carry propagation. However, our approach differs by offering a direct reduction to the Halting Problem without relying on Kleene’s Recursion Theorem, which we believe makes the result conceptually simpler and more accessible.
In conclusion, our work delineates a clear computational gap between approximation and digit-level computation, and between constructive and non-constructive proofs.
2. Previous Work
In 1912, Émile Borel [4] was perhaps the first to write explicitly about real numbers that could be “defined” or “constructed” using finite procedures, though his approach was more philosophical and intuitive than formal. He laid conceptual groundwork for what would later become formalized notions of computability. In 1936, Alan Turing, in his seminal paper On Computable Numbers, with an Application to the Entscheidungsproblem [5], proved that the Halting Problem is undecidable. As part of this development, he defined a real number x to be computable if there exists a Turing machine that outputs its decimal (or binary) expansion digit by digit. This laid the foundation for what we now call computable analysis. Turing was already aware of the subtleties involved in digit computation, and he implicitly recognized the difficulty posed by issues like carry propagation (e.g., in his treatment of convergence). However, he did not explicitly formalize or reduce the Halting Problem to questions of digit-wise arithmetic. The specific problem of undecidability of digit-level addition or carry propagation was not addressed in his original work. In 1949, Specker [6] constructed a computable sequence of rational numbers that converges to a non-computable real limit, showing that the computable reals are not closed under limits. This important insight into non-constructive convergence is not directly related to digit-wise arithmetic or carry propagation. In 1968, Richardson [7] proved that it is undecidable to determine whether certain symbolic expressions involving real functions (e.g., , ) are identically zero. While this result falls within real analysis and computability, it focuses on symbolic identities rather than decimal digit computation. In their landmark 1989 book, Pour-El and Richards [8] (see also Weihrauch [9]) demonstrated that the set of computable real numbers is closed under standard arithmetic operations, including addition and multiplication. However, their model of computation is based on -approximation: a number is computable if it can be approximated to arbitrary precision. This differs from Turing’s original digit-by-digit model, and their results do not establish constructive closure under that older definition. In 1991, Goldberg [10] highlighted the table-maker’s dilemma, which refers to the difficulty of rounding results correctly based on finite-precision computations. While this is a practical concern in numerical computing, it does not imply undecidability, nor does it concern Turing’s digit-by-digit model. In 2006, Braverman [11] showed that even basic comparisons between computable reals—such as equality and ordering—can be undecidable in general. He proved this by reducing these tasks to the Halting Problem. His work lies within the framework of computable analysis using -approximations and did not directly address digit-by-digit arithmetic or the possibility of infinite carry chains. In 2018, Joel David Hamkins, in his accessible blog post [2], argues for the result discussed in this paper: the uncomputability of addition in Turing’s digit-by-digit model. He uses examples where determining the sum’s digits (like distinguishing between and ) requires examining an infinite number of digits from the input numbers. He states that similar examples show that multiplication and many other very simple functions are not computable if one insists that a computable number is an algorithm enumerating the digits of the number. He also notes that Kleene’s Recursion Theorem can be used to formalize this. Kleene’s Recursion Theorem [12] (KRT) is a fundamental result in computability theory that enables the construction of self-referential programs or Turing machines. In essence, it states that for any computable operation on programs, there exists a program that, when subjected to that operation, behaves as if it has access to its own source code or index. This allows for the creation of “pathological” self-referential machines that can be used to prove various undecidability results, including the impossibility of a general algorithm for digit-by-digit addition.
In 2024, Berthelette, Brassard, and Coiteux-Roy [3] provided a more rigorous and formal treatment, largely filling out Hamkins’s arguments concerning the uncomputability of multiplication by 3 in the weakly printable model, also utilizing Kleene’s Recursion Theorem. Their work delves into the specific ambiguities arising from infinite strings of 9s (or 1s in binary) and how these relate to the inherent uncomputability of arithmetic operations under Turing’s original definition.
We believe our independent discovery and formalization of the same phenomenon for addition is conceptually simpler. Our approach directly encodes the carry propagation issue into the Halting Problem, offering a straightforward reduction that is accessible for undergraduate students. This new view also led us to proving that non-constructively there exists a TM that computes the digits of .
3. Positive Results: Constructive and Non-Constructive Closure
For completeness, we include Pour-El and Richards’ [1] result from 1979.
Theorem 1(Constructive Closure under -Approximation). Given Turing machines and that compute real numbers and to any precision , and a target precision ϵ, one can construct a Turing machine that approximates within ϵ.
Proof. We first call and to approximate x and y to within 1, allowing us to determine upper bounds and . Set , and compute more refined approximations and that are within of x and y. Since these approximations must have finite decimal expansions, we can multiply them exactly to obtain . We prove that this meets our requirement that :
□
Theorem 2(Non-Constructive Closure under Turing’s Digit-by-Digit Model). Given Turing machines and that compute the digits of x and y, we can prove that a machine computing the digits of exists.
Proof. Let , , and denote the n-th digits of x, y, and , respectively. The key issue in computing is carry propagation:
where is the carry into the n-th position. Each digit position may
- Create a carry if ;
- Propagate a carry if ;
- Destroy a carry if .
Define (a value strictly determined by x and y) as follows:
- ∞ if there are an infinite number of non-propagating digits , i.e., those for which .
- Otherwise, it is defined as the largest index for which this is the case.
Given the value hardcoded into the machine, one can compute the digit of as follows: If , there is always a non-propagating position after n, and the machine can search for it without worrying about an infinite loop. If , the machine need not search past . Knowing whether the first non-propagating position is a creator or destroyer of carry, the machine computes the carry at position n and hence the digit . Since for every x and y the value exists, a TM with this value hardwired exists. □
Remark 1. Note that the proof above is non-constructive. While the value exists, computing it is Turing-equivalent to solving the Halting Problem (as shown in the next section). Therefore, we cannot uniformly construct this machine from and .
4. Lower Bounds on Closure Properties
First, we formally define the Halting Problem and the associated notation.
Definition 1(Halting Problem). Let be the predicate that is true if Turing machine M halts on empty input, and false otherwise. It is well known that determining is undecidable.
Theorem 3(No Constructive Closure under Turing’s Digit-by-Digit Model).
- According to Turing-computable definition, computable numbers are not constructively closed under addition, because it is undecidable to compute the digit of from descriptions of Turing machines and .
- Similarity for multiplication.
- In fact, it is undecidable to determine whether a number defined by machine M satisfies .
- If the definitions do not require the answer to switch from the non-standard to , then a similar proof works.
Proof.
- We show that if one could constructively compute the digit-by-digit sum , then one could decide whether a given Turing machine halts, which is impossible. Let M be an arbitrary Turing machine. If M halts in T steps, then we will define the number as . The TM that computes the digits of is defined as follows: Simulate M for n steps. If M does not halt within n steps, output digit 3. Otherwise, output digit 0. Let always output 6. Now consider :
- If M halts in T steps, then .
- If M does not halt, then . Note that , which is the ones digit of , is 1 if and only if M does not halt. If we could compute this value from descriptions of Turing machines and , then we could solve . This proves that constructive closure under addition contradicts the undecidability of the Halting Problem.
- We repeat the same argument for multiplication. Let (exact), so that
- If M halts, ;
- If M does not halt, . Again, the leading digit of tells us whether M halts, violating undecidability.
- It is similarly undecidable to determine whether the real value x represented by is at least 1, shown by switching to output 9s instead of 3s.
- The above proof breaks down if the definitions do not require the answer to switch from the non-standard to . However, a modified proof still works. Change to output 4s instead of 0s when M halts, giving the following:
- If M halts in T steps, then .
- If M does not halt, then . So, even without normalization of repeating 9s, summation remains undecidable.
□
5. Conclusions
While the computable reals are closed under addition and multiplication in the -approximation sense, they are not constructively closed under these operations in Turing’s digit-by-digit model. That is, although a Turing machine computing the digit of can be shown to exist, it is undecidable to construct such a machine from and . This reveals a subtle but important distinction between the two definitions of computable numbers and between constructive proofs and non-constructive existence results in computability theory.
The reference list from the paper itself. Each links out to its DOI / PubMed record.
- 1Pour-El M.B. Richards J.I. A computable ordinary differential equation which possesses no computable solution Ann. Math. Log.197917619010.1016/0003-4843(79)90021-4 · doi ↗
- 2Hamkins J.D. Alan Turing, On Computable Numbers 2018 Available online: https://jdh.hamkins.org/alan-turing-on-computable-numbers/(accessed on 15 June 2025)
- 3Berthelette S. Brassard G. Coiteux-Roy X. On computable numbers, with an application to the Druckproblem Theor. Comput. Sci.2024100211457310.1016/j.tcs.2024.114573 · doi ↗
- 4BorelÉ. Le calcul des nombres Revue du Mois 191214433450
- 5Turing A.M. On Computable Numbers, with an Application to the Entscheidungsproblem Proc. Lond. Math. Soc.1936 s 2-4223026510.1112/plms/s 2-42.1.230 · doi ↗
- 6Specker E. Nicht konstruktiv beweisbare Sätze der Analysis J. Symb. Log.19491414515810.2307/2267043 · doi ↗
- 7Richardson D. Some undecidable problems involving elementary functions of a real variable J. Symb. Log.19683351452010.2307/2271358 · doi ↗
- 8Pour-El M.B. Richards J.I. Computability in Analysis and Physics Springer Berlin/Heidelberg, Germany 1989
