Next Article in Journal
Returnformer: A Graph Transformer-Based Model for Predicting Product Returns in E-Commerce
Next Article in Special Issue
The Algorithmic Regulator
Previous Article in Journal
Vibrational Energy Harvesting via Phase Modulation: Effects of Different Excitations
Previous Article in Special Issue
A Physical Framework for Algorithmic Entropy
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

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

Department of Electrical Engineering and Computer Science, York University, Toronto, ON M3J 1P3, Canada
Entropy 2026, 28(1), 71; https://doi.org/10.3390/e28010071
Submission received: 17 November 2025 / Revised: 31 December 2025 / Accepted: 1 January 2026 / Published: 7 January 2026

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.33 3 ¯ + 0.66 6 ¯ = 0.99 9 ¯ = 1.00 0 ¯ . This particular example is ambiguous because both 0.99 9 ¯ and 1.00 0 ¯ are legitimate decimal representations of the same number. However, if any of the infinite number of 3s in the first term is changed to a 2 (e.g., 0.33 32 + 0.66 6 ¯ ), the sum’s leading digit is definitely zero. Conversely, if it is changed to a 4 (e.g., 0.33 34 + 0.66 6 ¯ ), the leading digit is definitely one. This implies an inherent undecidability in determining these digits. Recent papers and our work address this issue. Hamkins provides an informal argument, while Berthelette et al. present more complicated formal proof, and our contribution offers a simple reduction to the Halting Problem. We demonstrate that determining when carry propagation stops can be resolved with a single query to an oracle that tells if and when a given TM halts. Because a concrete answer to this query exists, so does a TM computing the digits of x + y , though the proof is non-constructive. As far as we know, the analogous question for multiplication remains open. This, we feel, is an interesting addition to the story. This reveals a subtle but significant difference between the modern ϵ -approximation definition and Turing’s original 1936 digit-by-digit notion of a computable number, as well as between constructive and non-constructive proof. This issue of computability and numerical precision ties into algorithmic information and Kolmogorov complexity.

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 M x ( n ) that, on input n, outputs the n -th 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 M x ( ϵ ) that, on input a rational ϵ > 0 , outputs a rational number x such that | x x | ϵ .
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 x + y .
  • Non-Constructive Closure: For any computable x and y, a machine for x + y 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 n -th digit of x + y from Turing machines M x ( n ) and M y ( n ) . In fact, it is undecidable to determine whether x 1 .
  • 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 M x + y ( n ) computing the digits of x + y 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., sin ( x ) , exp ( x ) ) 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 0.99 9 ¯ and 1.00 0 ¯ ) 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 x + y .

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 M x ( ϵ ) and M y ( ϵ ) that compute real numbers x 0 and y 0 to any precision ϵ , and a target precision ϵ, one can construct a Turing machine M x × y ( ϵ ) that approximates x × y within ϵ.
Proof. 
We first call M x ( 1 ) and M y ( 1 ) to approximate x and y to within 1, allowing us to determine upper bounds x and y . Set ϵ = ϵ 2 max ( x + y , 1 ) , and compute more refined approximations x = M x ( ϵ ) and y = M y ( ϵ ) that are within ϵ of x and y. Since these approximations must have finite decimal expansions, we can multiply them exactly to obtain z = x × y . We prove that this meets our requirement that | z x y | ϵ :
| z x y | ( x + ϵ ) × ( y + ϵ ) x y = ( x + y ) ϵ + ϵ 2 2 ( x + y ) ϵ = ϵ
Theorem 2
(Non-Constructive Closure under Turing’s Digit-by-Digit Model). Given Turing machines M x ( n ) and M y ( n ) that compute the digits of x and y, we can prove that a machine M x + y ( n ) computing the digits of x + y exists.
Proof. 
Let x n , y n , and z n denote the n-th digits of x, y, and z = x + y , respectively. The key issue in computing z n is carry propagation:
z n = ( x n + y n + c n )   mod   10 ,
where c n { 0 , 1 } is the carry into the n-th position. Each digit position n > n may
  • Create a carry if x n + y n 10 ;
  • Propagate a carry if x n + y n = 9 ;
  • Destroy a carry if x n + y n 8 .
Define LastP ( x , y ) (a value strictly determined by x and y) as follows:
  • if there are an infinite number of non-propagating digits n , i.e., those for which x n + y n 9 .
  • Otherwise, it is defined as the largest index n for which this is the case.
Given the value LastP ( x , y ) hardcoded into the machine, one can compute the n -th digit z n of x + y as follows: If LastP ( x , y ) = , there is always a non-propagating position after n, and the machine can search for it without worrying about an infinite loop. If LastP ( x , y ) = n last , the machine need not search past n last . Knowing whether the first non-propagating position is a creator or destroyer of carry, the machine computes the carry c n at position n and hence the digit z n . Since for every x and y the value LastP ( x , y ) exists, a TM M x + y ( n ) with this value hardwired exists. □
Remark 1.
Note that the proof above is non-constructive. While the value LastP ( x , y ) 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 M x and M y .

4. Lower Bounds on Closure Properties

First, we formally define the Halting Problem and the associated notation.
Definition 1
(Halting Problem). Let Halt ( M ) be the predicate that is true if Turing machine M halts on empty input, and false otherwise. It is well known that determining Halt ( M ) 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 n -th digit of x + y from descriptions of Turing machines M x ( n ) and M y ( n ) .
  • Similarity for multiplication.
  • In fact, it is undecidable to determine whether a number x M defined by machine M satisfies x M 1 .
  • If the definitions do not require the answer to switch from the non-standard x + y = 0 . 9 ¯ to 1 . 0 ¯ , then a similar proof works.
Proof. 
  • We show that if one could constructively compute the digit-by-digit sum x + y , 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 x M as x M = 0 . 33 3 T   times 00 0 ¯ . The TM that computes the digits of x M 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 M y ( n ) always output 6. Now consider z = x M + y :
    • If M halts in T steps, then x M + y = 0 . 33 3 T   times 00 0 ¯ + 0.66 6 ¯ = 0 . 99 9 T   times 66 6 ¯ < 1 .
    • If M does not halt, then x M + y = 0.33 3 ¯ + 0.66 6 ¯ = 0.99 9 ¯ = 1 .
    Note that M x + y ( 0 ) , which is the ones digit of x M + y , is 1 if and only if M does not halt. If we could compute this value from descriptions of Turing machines M x ( n ) and M y ( n ) , then we could solve ¬ Halt ( M ) . This proves that constructive closure under addition contradicts the undecidability of the Halting Problem.
  • We repeat the same argument for multiplication. Let y = 3.0 (exact), so that
    • If M halts, x < 1 3 x × y < 1 ;
    • If M does not halt, x = 1 3 x × y = 1 .
    Again, the leading digit of x × y tells us whether M halts, violating undecidability.
  • It is similarly undecidable to determine whether the real value x represented by M x ( n ) is at least 1, shown by switching M x ( n ) 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 x + y = 0 . 9 ¯ to 1.0000 . However, a modified proof still works. Change M x ( n ) to output 4s instead of 0s when M halts, giving the following:
    • If M halts in T steps, then x + y = 0 . 33 3 T   times 44 4 ¯ + 0.66 6 ¯ = 1 . 00 0 T   times 11 1 ¯ 1 .
    • If M does not halt, then x + y = 0.33 3 ¯ + 0.66 6 ¯ = 0.99 9 ¯ .
    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 M x + y ( n ) computing the n -th digit of x + y can be shown to exist, it is undecidable to construct such a machine from M x ( n ) and M y ( n ) . 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.

Funding

This research was funded by the Natural Sciences and Engineering Research Council of Canada (NSERC), grant number 502710N.

Data Availability Statement

The original contributions presented in this study are included in the article. Further inquiries can be directed to the corresponding author.

Acknowledgments

It is a pleasure to contribute to this Special Issue in honor of Paul Vitányi. Happy birthday Paul and thank you for your foundational work in algorithmic information theory, your encouragement of this project, and your generous feedback on an early version of the manuscript. This paper was inspired by my father Jack Edmonds and brother Alex Edmonds. I appreciate all of their help.

Conflicts of Interest

The authors declare no conflicts of interest.

References

  1. Pour-El, M.B.; Richards, J.I. A computable ordinary differential equation which possesses no computable solution. Ann. Math. Log. 1979, 17, 61–90. [Google Scholar] [CrossRef]
  2. Hamkins, J.D. Alan Turing, On Computable Numbers. 2018. Available online: https://jdh.hamkins.org/alan-turing-on-computable-numbers/ (accessed on 15 June 2025).
  3. Berthelette, S.; Brassard, G.; Coiteux-Roy, X. On computable numbers, with an application to the Druckproblem. Theor. Comput. Sci. 2024, 1002, 114573. [Google Scholar] [CrossRef]
  4. Borel, É. Le calcul des nombres. Revue du Mois 1912, 14, 433–450. [Google Scholar]
  5. Turing, A.M. On Computable Numbers, with an Application to the Entscheidungsproblem. Proc. Lond. Math. Soc. 1936, s2-42, 230–265. [Google Scholar] [CrossRef]
  6. Specker, E. Nicht konstruktiv beweisbare Sätze der Analysis. J. Symb. Log. 1949, 14, 145–158. [Google Scholar] [CrossRef]
  7. Richardson, D. Some undecidable problems involving elementary functions of a real variable. J. Symb. Log. 1968, 33, 514–520. [Google Scholar] [CrossRef]
  8. Pour-El, M.B.; Richards, J.I. Computability in Analysis and Physics; Springer: Berlin/Heidelberg, Germany, 1989. [Google Scholar]
  9. Weihrauch, K. Computable Analysis: An Introduction; Springer: Berlin/Heidelberg, Germany, 2000. [Google Scholar]
  10. Goldberg, D. What every computer scientist should know about floating-point arithmetic. ACM Comput. Surv. 1991, 23, 5–48. [Google Scholar] [CrossRef]
  11. Braverman, M. On the computability of real functions. SIGACT News 2006, 37, 5–13. [Google Scholar]
  12. Kleene, S.C. Introduction to Metamathematics; Van Nostrand: New York, NY, USA, 1952. [Google Scholar]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Edmonds, J. Why Turing’s Computable Numbers Are Only Non-Constructively Closed Under Addition. Entropy 2026, 28, 71. https://doi.org/10.3390/e28010071

AMA Style

Edmonds J. Why Turing’s Computable Numbers Are Only Non-Constructively Closed Under Addition. Entropy. 2026; 28(1):71. https://doi.org/10.3390/e28010071

Chicago/Turabian Style

Edmonds, Jeff. 2026. "Why Turing’s Computable Numbers Are Only Non-Constructively Closed Under Addition" Entropy 28, no. 1: 71. https://doi.org/10.3390/e28010071

APA Style

Edmonds, J. (2026). Why Turing’s Computable Numbers Are Only Non-Constructively Closed Under Addition. Entropy, 28(1), 71. https://doi.org/10.3390/e28010071

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop