Epi-constructivism: Decidable sets of computable numbers as foundational objects for mathematics
Abstract
It is well known that the , the set of real numbers, is an abstract set, where almost all its elements cannot be described in any finite language.
We investigate possible approaches to what might be called an epi-constructionist approach to mathematics. While most constructive mathematics is concerned with constructive proofs, the agenda here is that the objects that we study, specifically the class of numbers that we study, should be an enumerable set of finite symbol strings. These might also be called decidable constructive real numbers, that is our class of numbers should be a computable sets of explicitly represented computable numbers.
There have been various investigations of the computable numbers going back to Turing. Most are however not expressed constructively, rather computable is a property assigned to some of the abstract real numbers. Other definitions define constructive real numbers without reference to the abstract , but the construction is undecidable, i.e., we cannot determine if a given construction represents a computable real number or not. For example, we may define a real as a computable convergent sequence of rationals, but cannot in general decide if a given computable sequence is convergent.
This paper explores several specific classes of decidable constructive real numbers that could form foundational objects for what we might call an epi-constructionist mathematics. These include Primitive Recursive Computed Numbers namely a binary power series where the coefficients are provided by a primitive recursive function, the broader and most useful class of Signed Primitive Recursive Computed Numbers, and the broader still Generalized Computed Numbers which even include the limit of the Specker Sequence which is not a computable number in the traditional sense.
Zvi Schreiber [email protected]
Keywords: Computable analysis, computable numbers, constructive mathematics, foundations of mathematics
1 Foreword
As an informal introduction, let us consider the riddle that a friend told me over dinner which motivated this line of research. Versions of the riddle are found in [CSH08].
An infinite number of people numbered are given time to confer, then they are arranged in a line so that person is facing all the people with . Each has a hat with a random natural number placed on their head (the distribution is not important). Each must guess the number on their head, with all but a finite number guessing correctly.
This challenge appears impossible, given that nobody has any information at all about the hat on their head and so they are purely guessing. But the following solution is based on a suggestion attributed in [CSH08] to Yuval Gabay and Michael O’Connor, as graduate students at Cornell University in 2004.
While confering, the people consider all sequences of natural numbers grouped into the equivalence class of sequences which defer at only finitely many positions. The axiom of choise ensures that there is a choice of sequences which includes just one representative of each equivalence class. Imagine the people could make such a choice.
Now once lined up with the hats, each person can see all but finitely many hats, and can therefore determine the equivalence class of the full sequence of hats. They assume that the hats are in fact arranged according to the representative sequence of that equivalence class, and guess their own hat accordingly. Since the real sequence of hats, and the class representative defer at finitely manly places, all but finitely many people guess their own hat correctly.
Of all the paradoxical corollaries of the axiom of choice, it was this one that I find hardest to accept. Clearly while the axoim of choice stiuplates that there exists a choice of a representative of each equivalence class of sequences, this choice could not in fact be constructed. So in what sense does it exist? This riddle motivated a study of whether we could have a foundation of mathematics which only reasons about objects which we can actually represent.
2 Introduction
Although we can discuss the axioms of the real numbers as an abstract set, it is well known that there is limited opportunity to describe the specific elements of the set, as only countably many elements of can be described by any finite expression in any natural or mathematical language; consequently, almost all elements of are inherently indescribable. Related to this, it is well known that there is not a unique model of the axioms of (there is not even a unique model of the Peano axioms [Pea89] of ), and there are some fundamental undecidable questions regarding the nature of ; for example, the continuum hypothesis that doesn’t have a subset strictly larger than is undecidable [Coh66].
There some well-known constructive approaches to mathematics. Most work in constructive mathematics focuses on the nature of mathematical proof, namely the banning of proving without finding . With this limitation, the axiom of choice is discarded, or severely limited, and even the simplest choice, the law of excluded middle (LEM), is dropped from logic. Thus, we cannot prove without providing at least one of or . This approach is associated mostly with Brouwer’s intuitionism [Bro23].
Historically, it came as a surprise to many when Bishop showed that a large portion of mathematics survives this limitation [Bis67]. Constructive expositions of real analysis have continued to the present [Abe01, Bri06, DSB06, Bri19].
Here we instead consider what we will call epi-constructivism, so called to distinguish it from constructivism. The principle is that the objects which we wish reason about–the numbers, and more generally the elements in our sets–are constructed explicitly, in the sense that we can write down every object using a string of symbols and that given a string of symbols we can determine in finite time if it is one of our objects or not.
This requirement of constructive objects is orthogonal to the requirement of constructive proofs. That is, we may choose to study only epi-constructive objects, and reject sets like which have indescribable elements, but we do not necessarily reject LEM. Conversely, we may accept non-constructive proofs of without identifying which specific has the property, while however rejecting the abstract set and focusing instead on classes of constructive objects, maintaining that even if one doesn’t know which has the property, one knows that it is some describable .
It was A. A. Markov who most clearly set an agenda that mathematics should study objects that may be explicitly constructed. Quoting from [Mar62, Mar71]:
Constructive objects are certain figures that are put together in particular ways from elementary figures, which are the elementary constructive objects. An example would be the structures built up with the help of a child’s “Erector” set [like lego]…In constructive mathematical theories we limit ourselves to the consideration of constructive objects of some standard type…One of the simplest types of constructive objects are the words in a particular fixed alphabet. A word in a given alphabet is a string of letters of that alphabet…
Markov constructs the natural numbers, integers, rationals, and finally real numbers in such as way that they can be written as strings of symbols:
The natural numbers are introduced as words 0, 01, 011, … in the alphabet {0, 1}. The rational numbers are introduced as certain words in the alphabet of rational numbers {0, 1, -, /}… The normal algorithms in this alphabet that take each natural number into some rational number are called constructive sequences of rational numbers… Let be a constructive sequence of rational numbers. We will say that converges regularly if …
We will call proper real numbers the words… encoding of a regularly convergent sequence. The constructive real numbers… will be the proper real numbers and the rational numbers.
As paraphrased by [Kus06]:
A pair of algorithms is called a constructive real number if the first algorithm is a constructive sequence of rational numbers and the second effectively estimates the rate of convergence of this sequence. For such constructive real numbers one can define in some natural way the relations of order and equality as well as arithmetical operations.
In other words, the second algorithm gives a modulus of Cauchy convergence to ensure constructively that the first algorithm yields a convergent sequence of rational numbers.
A similar definition may be found, among other equivalent definitions, in [Ric54]
A recursively enumerable sequence of rational numbers is recursively convergent (r.c.) when there exists a general recursive function such that for . And a recursive real number is the limit of an r.e., r.c. sequence of rational numbers.
Unfortunately, all the above formulations of constructive real numbers or recursive real numbers fall short of the goal of having decidable elements. Given a pair of algorithms (representing a rational sequence and an explicit Cauchy modulus as in [Kus06]) we cannot decide algorithmically if the second algorithm is indeed a valid modulus of Cauchy convergence for the first, as famously, we cannot even decide if it halts [Tur37]. All of the other definitions suffer from the same limitation. They allow a constructive description of real numbers, but the construction is not decidable; given a string of symbols we cannot generally determine if it represents a real number, particularly whether the algorithm describes a Cauchy sequence of rational numbers. Interestingly, Markov defined the integers and rationals in a decidably constructive manner, but then accepted an undecidably constructive definition of the reals.
This paper offers a preliminary investigation of epi-constructivism, by exploring sets of representations of real numbers (i.e., explicitly constructed convergent sequences of rational numbers) that are decidable in that the “numbers” are represented symbolically (as in Markov’s formulation) but with the additional property that the class is a decidable (/enumerable/computable) set, meaning that given a string of symbols, a terminating algorithm can determine whether it is in the set or not. This also implies that our classes of constructive numbers will be enumerable, i.e., an algorithm can output an enumeration of all the valid constructive real numbers in the classes that we present.
The classes we will consider include Primitive Recursive Computed Numbers (PRCN) which are expressed as a binary power series, where the coefficients are output by a primitive recursive function, and the important generalization of Signed Primitive Recursive Computed Numbers (SPRCN) where the binary power series may have negative coefficients. Finally we consider Generalized Computed Numbers (GCN) which are algorithms that may not have an explicit power series, but where nevertheless we can confirm by inspection that the algorithm outputs a convergent sequence of rationals. This latter broadest group includes the limit of the Specker Sequence which is not normally considered computable.
In exploring decidable constructive real numbers, we may borrow not only from ideas of constructive mathematics, but also from the closely related ideas of computable analysis. Accordingly, we first present a very short survey of useful definitions of computable numbers, as they are closely related to constructive real numbers.
2.1 Computability as a property of abstract real numbers
Alan Turing opened his well-known paper [Tur36] with
The “computable” numbers may be described briefly as the real numbers whose expressions as a decimal are calculable by finite means.
So a real number has the property of being computable if there exists a Turing machine, or computer program, which will output the decimal expansion one digit at a time. Note that Turing does not have any explicit constructive agenda. He accepts the existence of real numbers in the abstract sense, and explores which of them have the property of being computable.
This definition arguably places too much importance on the decimal expansion. In practice, it is also inconvenient to approximate a real number by sequentially outputing its decimal expansion due to the so-called table maker’s dilemma [LMT98] [Kah04]. For example, it is necessary to compute an accuracy of before determining even the very first digit of the number as it is so close to ). Another disadvantage is that given a computer program that has output some decimal digits, we cannot generally determine whether it will output more digits or loop forever, as a result of the halting problem.
Conversely, one advantage of Turing’s definition is that a decimal expansion is inherently a convergent series and given a computer program that outputs only decimal digits, there is no need for a modulus of convergence to ensure that the output digits represent a convergent sequence. We will use this approach in some of our definitions.
More modern definitions do not rely on the decimal expansion. According to [ZR04], is computable, is equivalent to the following:
There is a computable sequence of rational numbers which converges to effectively in the sense that ).
This paper, together with [RZ06] and other papers by the same authors, investigate an interesting hierarchy of narrower and broader classes of computable numbers, in the abstract sense of real numbers that are computable. The various definitions of computable numbers are equivalent to Turing’s original definition [Rob51, Sha55, Myh53]. All the definitions refer to real numbers, i.e., they assume the existence of the abstract concept of real numbers, and explore which real numbers have the property of being computable numbers.
2.2 Computable numbers, without reference to real numbers
A definition that does not reference real numbers may be found in Aberth’s book [Abe01] (his final definition 2.1) which defines a real number in the context of computable calculus, thus:
A [computable] real number is defined by a program that for any value of the positive integer supplies a rational approximant and a nonnegative rational error bound defining an interval of rational numbers. For any choice of integers and , the intervals and intersect. Given any positive rational error bound , it is certain that an integer exists such that for .
Hence Aberth defines a computable number as a program that outputs a sequence of rational intervals where all of the intervals overlap, and the size of the intervals converges to zero. Here there is a convergence of the study of computable real numbers and constructive real numbers in that this definition of computable real numbers is constructive, providing concrete representations, and nowhere assuming the existence of real numbers in the abstract sense.
However, again the set of computable real numbers satisfying this definition is not decidable. We cannot determine if a program has the given properties, as we cannot even determine if terminates and outputs any numbers , .
Aberth then defines that the programs and represent the “same computable number” if the intervals and overlap for all and . However, there is no deterministic way to determine if programs and have this property (again, we cannot even determine if either one halts for a given value). Hence, the equivalence relation and resulting equivalence classes are not computable or constructively valid. Therefore these computable real numbers, although not referencing the abstract reals, remain abstract in the sense that we cannot always determine if a given program represents a computable number at all, and we cannot necessarily determine if two programs are in the same equivalence class.
Another such approach is found in [Wei00] defining a “name” (i.e. a representation) of a real number to be:
a sequence of closed intervals with rational endpoints such that for all and .
He goes on to write:
We assume tacitly that intervals are encoded appropriately, such that, strictly speaking, a name of a real number is an infinite sequence of symbols.
Another recent related definition from [Bri19] is:
Given two families of intervals and , we say is consistent with if each interval from the family intersects each interval from the family … A consistent family of intervals is one that is consistent with itself… The family is fine when, for each positive rational , there is an interval in that has length less than … A [constructive] real number is a fine and consistent family of rational intervals.
Two real numbers are defined to be equal if they are consistent as families of intervals.
Hence, even the most modern approaches to constructive/computable real numbers do not provide decidably constructive real numbers. Further, most authors attempted to define a non-determinable equality relation or equivalence class of the computable/constructive numbers, in an effort to recover the abstract concept of a real number, but at the expense of losing any kind of decidability of the equivalence classes.
3 Seeking a computable set of computable numbers (recursive set of constructive real numbers)
A set is computable (also known as recursive or decidable) if its characteristic function (which maps elements of the set to and non-elements to ) is computable, that is, if a computer program can determine in a finite time whether a given element belongs to the set [Dav58].
The term computable number is variously use in the literature to refer to specific representations (i.e. the algorithm) or to the underlying abstract real number. Henceforth we will use the term computed number to emphasize that we are referring to the concrete representation (or “name”), i.e., the algorithm or computer program that can compute a convergent sequence of rationals. The term computed number does refer to the abstract concept of a real number, which might be computable, nor to the concept from [Abe01] and others of an equivalence class of computed numbers, since these are non-determinable.
Definition 1.
A Computed Number is a syntactic representation of an algorithm (computer program) in some language that outputs a Cauchy sequence of rational numbers.
This is not an entirely formal definition, as it leaves open the question of the language for algorithms, although per the Church-Turing thesis [Chu36], this may be any Turing-complete language.
There are two desirable properties of a computed number. The first is that every sequence should be infinite, or should declare when it finishes, i.e., we don’t prefer an algorithm which outputs a finite sequence of rational numbers and then fails to halt leaving us in suspense as to whether further rational numbers are forthcoming; rather the algorithm should preferably either output a finite sequence of rational numbers followed by a token representing “finished” (if the represented number is in fact rational) or should output a convergent infinite sequence. We call a computed number with this desirable property a Halting Computed Number, in the sense that each time the program is called upon to produce the next number in the sequence it will halt (not in the sense that the overall sequence halts).
Another desirable property is that every computed number should have an explicit computable modulus of convergence, to enable us to know how long to run the algorithm to reach a given accuracy. We can call this a Modulated Computed Number. Without loss of generality, if we have a constructive method to output a convergent sequence of rationals , we call it Modulated if it has a modulus of convergence . In case there is a different modulus of convergence, we can simply adapt the algorithm to skip elements and yield, as the th element, the first element for which the modulus of convergence gives .
Indeed for many constructive mathematicians, a sequence with an explicit modulus of convergence is the only acceptable Cauchy sequence (this is at least implied by the definition of a Cauchy sequence in [Bis67]).
There are many (Modulated) (Halting) Computed Numbers in the literature quoted above. But our goal in this paper is to explore not individual numbers, but rather classes of computed numbers which are decidably so.
Definition 2.
A Decidable class of (Modulated) (Halting) Computed Numbers is a computable set of syntactic representations of algorithms (computer programs) in some language, (that is, it is decidable if a given algorithm representation is in the set), and where each algorithm in the set is a (Modulated) (Halting) Computed Number.
Generally, we will present two useful approaches to defining a class of computed number algorithms for which we can decide deterministically if an algorithm belongs to the class. The first approach suitable for Modulated Halting Computed Numbers is insisting that the sequence has the form of an exponential power sequence where the are in turn given by a well-defined algorithm, guaranteed to halt and output an integer within some bound. This type of Computed Number may be called a Power Series Computed Number.
The second approach, which may produce computed numbers that are not halting or not modulated, is to take any computer program that outputs a sequence of rationals, and add a constraint to ensure that it outputs a convergent subsequence. We call this approach a Constrained Computed Number and will return to it later.
4 Primitive Recursive Computed Numbers (PRCNs)
The most obvious approach to the goal of constructing a decidable class of Modulated Halting Computed Numbers is to represent numbers as a power series with bounded coefficients given by primitive recursive functions. Thus, the Primitive Recursive Computed Numbers are specified using an integer and then a fraction, specified with a power series with the coefficients given by a primitive recursive function. This ensures that the computation to any accuracy will terminate. A naive definition, inspired by Turing’s original definition of a computable number, would be that the primitive recursive function takes an argument and returns or for the th digit of the binary expansion.
Definition 3.
The class of Primitive Recursive Computed Numbers (PRCN) are the pairs where is an integer and is a primitive recursive function representing the rational series or equivalently the rational sequence .
Primitive recursive functions are typically defined to be . But we can simply ignore and interpret any value as a m thereby giving us a function .
By limiting ourselves to primitive recursive functions (which have a decidable syntax and are always total), we can easily validate by means of a simple terminating algorithm whether any given is a PRCN. Hence, this definition realizes the goal of this paper of mathematical objects that are decidably constructive.
It should be clear that the PRCNs are a decidable class of Computed Numbers, indeed of Modulated Halting Computed Numbers. If we wish to be very strict regarding representing the elements as words in a language, à la Markov, we may write each PRCN as:
+ |sgn( )|*2(-i)
where for we substitute any integer O11…or -O11…and for we substitute the syntactic representation of any primitive recursive function. Note the use of |sgn()| wherein sgn is the sign function and the absolute value, to constrain the value to or . The summation implicitly ranges over . A computer program could determine in finite time if a given string of symbols is in this class.
Indeed, using what is now known as a Markov Algorithm (which Markov called a Normal Algorithm), we can build all the PRCNs with string rewriting rules, beginning with 0+ |sgn(i)|*2(-i) and applying the rules 010, 0-0 and rules to repeatedly substitute for (i) syntactic representations of the various primitive recursive functions: constant, successor, projection, composition, and primitive recursion.
Unfortunately, this definition leaves no flexibility. Every real number has a unique binary expansion (except for numbers of the form which have a finite expansion and classically also have a second representation with infinite trailing ’s).
Using this specific definition, it is therefore difficult to provide a Primitive Recursive Computed Number representing a real number as basic as say . The reason again is the Table Maker’s Dilemma, namely in order to calculate the th digit in the binary expansion of , it is necessary to calculate not an accuracy of but rather an accuracy of where is the number of consecutive s or s following the th digit (or ’s in decimal). Given that is not known in advance, there is no obvious primitive recursive function to calculate the th digit, as primitive recursive functions allow only loops with a pre-determined bounded number of iterations.
(For specifically we can leverage the property [Mah53] or better [Hat92] to provide an upper bound on the number of consecutive s (or s) following the th digit and use this bound to create a primitive recursive function which calculates the th digit. But this would not be obvious a priori, and for other transcendental numbers there may not be such a bound.)
Hence the motivation to generalize the definition in the following section.
5 Signed Primitive Recursive Computed Numbers (SPRCNs)
Definition 4.
The Signed Primitive Recursive Computed Numbers (SPRCN) are the pairs where is an integer and is a primitive recursive function representing the coefficients in the rational series , or equivalently the rational sequence .
Again if is a primitive recursive function with the traditional domain and co-domain, we interpret the numbers () as representing the coefficients respectively depending if , , respectively.
This generalized definition also gives us computed numbers as recognizable constructive objects in line with the goals of the paper. Syntactically we can write each SPRCN as:
+ sgn( )*2(-i)
where again is the syntatic representation of an integer and a syntactic representation of a primitive recursive function, and we use the special summation which always takes the absolute value of the first non-zero summand if any.
Although in the abstract sense you could express any number using only the coefficients and as a PRCN, by allowing the to have the value we solve the Table Maker’s Dilemma, as we can make corrections. For example if at first we have an estimate or we can later correct it to by subtracting . We will see in a theorem below that this enables us to express most known power series as SPRCNs.
We find SPRCNs to be the most natural and useful decidable class of Computed Numbers, indeed SPRCN is a Decidable class of Modulated Halting Computed Numbers.
It is a apparent that every Signed Primitive Computed Number converges to an abstract computable number in the classical sense, although we will see that the converse is not true. Of course, primitive recursive functions could be substituted with another class of total functions, although primitive recursive functions are widely considered to be the most natural class of functions that are obviously total.
Now we must prove that we can find Signed Primitive Computed Numbers to represent useful irrationals such as , .
For we can easily formulate a signed primitive recursive function that initially guesses and then seeing that guesses , etc., fluctuating above and below converging exponentially.
For we can use the Madhava–Leibniz sequence which we can rewrite as . Now we will show that in order to recursively choose we need to find an such that . In this case would work. We then choose so that .
(Of course in practice we may choose a faster converging series such as the Nilakantha series )
We will now formalize this and prove more generally that we have a Signed Primitive Recursive Computed Number (SPRCN) representation for any series of rationals with summands given by primitive recursive functions and with an explicit modulus of Cauchy convergence.
Theorem 5.1.
Let by any primitive recursive rational sequence in the sense that the th element is given by where and are primitive recursive functions with any integer and positive. Let the sequence have a primitive recursive Cauchy modulus of convergence so that for every natural number representing the order of magnitude of a desired error, we have ). Then there is a Signed Primitive Recursive Computed Number with the same limit as .
Proof.
Let which is clearly a primitive recursive rational function of and defines a subsequence of which converges exponentially. We show by induction that we can choose and to make and so that .
The base case of the induction is trivial by choosing the integer with which can be done by a primitive recursive function.
Now assuming and we know by definition of the modulus of convergence that then by the triangle inequality . Now a primitive recursive function can choose according to whether is in the interval or or respectively, so that will always be in the middle interval and will therefore satisfy , completing the recursion. ∎
The SPRCN are our most natural decidable class of Computed Numbers. They are well behaved in that they always produce an infinite exponentially convergent sequence of rationals. Moreover as we have seen, the class includes representations of most popular irrationals like the algebraic numbers, , etc. However, they cannot necessarily represent all abstract computable numbers, as our next result shows.
5.1 PRCN and SPRCN are proper subsets of the computable numbers
Let CN be the classical abstract set of computable real numbers as defined by Turing. Let represent the abstract real numbers which may be represented by SPRCN computed numbers.
Theorem 5.2.
Proof.
is clear since every PRCN number can be computed by a computer program which sums the sequence.
To find a CN number that is not represented by any SPRCN computed number we use the classical diagonal argument. Consider for simplicity only numbers between and . Let be the th primitive recursive function in a lexicographical enumeration of primitive recursive function, giving the power expansion of the SPRCN number .
The approximation gives to within . Hence, we can pick the first two digits of the binary expansion of (which fixed to an interval of width ) to ensure that it does not overlap with this interval. We can then calculate to within and pick the next two binary digits of to ensure that will be in an interval of width (within the interval of width which we have already fixed by the first two digits) not overlapping with the interval that contains . We continue in that manner to construct a computable number that cannot be equal to any SPRCN number . ∎
5.2
There is no direct means of converting an SPRCN computed number into a PRCN computed number. An interesting example is the SPRCN number defined by , with ( equal to if can be expressed as the sum of two primes, otherwise is if is divisible by or otherwise. Clearly this is a primitive recursive function. But we do not know even the first digit of the decimal expansion so cannot express it as a PRCN. Specifically, if the Goldbach Conjecture[Gol42] is true then the number is simply which can be expressed easily enough as a PRCN with either binary expansion or . But in case the Goldbach Conjecture is false we cannot determine even the first digit of the binary expansion without knowing whether the smallest even number which cannot be expressed as the sum of two primes is divisible by .
Accordingly, there is definitely no trivial transformation of SPRCNs to PRCN as solving the Goldbach Conjecture is not trivial, but that leaves open the question whether all abstract computable numbers that have a SPRCN representation also have a PRCN representation, or whether . Based on an idea from an anonymous reviewer whom I thank, we can construct an SPRCN number which has no possible PRCN representation.
Theorem 5.3.
Proof.
It’s known that the primitive recursive functions are recursively enumerable, and we start with enumeration of the primitive recursive functions and define the nullary primitive recursive functions . We construct an SPRCN number which outputs a digit , then “executes” and outputs a binary digit of for every computation step of until it terminates, then outputs the final output of the program . It then outputs another digit , does the same for . So we get an SPRCN number whose signed binary expansion is:
(1) |
where is the number of computation steps till terminates and means that many digits and is the output of program .
To see that this is primitive recursive, i.e. computable using only bounded loops we calculate the th digit of the signed binary expansion as follows:
The fact that a primitive recursive function is able to compute a bounded number of computation steps of the th primitive recursive function is established in Kleene’s recursion theorem.
However in the equivalent unsigned binary expansion, each block of digits is replaced e.g. and so
(2) |
To see that this sequence is not primitive recursive, note that a function which outputs the th digit must be able to determine the final output . For example the first digit is . There is a well known argument by contradiction that a primitive recursive function cannot determine the final output of the th primitive recursive function. Suppose is a primtiive recursive function such that . We can also construct . Now must be in the enumeration so for some we have . But then providing the contradiction. ∎
5.3 Equality of SPRCN numbers
As is well known regarding computable numbers (e.g. [Abe01]), there is no general way to determine if two numbers are equal in the sense that the difference between their sequences converges to zero.
Signed Primitive Recursive Computed Numbers and could converge to the same abstract computable real number if and . They can also converge to the same abstract number without these conditions since we allow negative coefficients, the expansion is not unique. Even in the first case there is no general way to compute in finite time whether . So in general we cannot determine equality, although in some specific cases we would be able to.
This lack of equality is frustrating but reflects the reality that when we describe two real numbers we cannot always determine if we are describing the same number.
5.4 Addition and subtraction of Signed Primitive Recursive Computed Numbers
A corollary of Theorem 5.1 is that we can follow the procedure in the proof to define addition of Signed Primitive Recursive Computed Numbers. For two Signed Primitive Recursive Computed Numbers , we define the sum to be . Unfortunately we cannot add in the obvious pointwise manner as we want the parameters to always be .
So to compute addition we take the primitive recursive rational sequence created by adding and . There is an obvious primitive recursive Cauchy modulus of convergence . Then we apply Theorem 5.1.
Subtraction is achieved by adding the negation .
5.5 Multiplication of Signed Primitive Recursive Computed Numbers
For multiplication of two Signed Primitive Recursive Computed Numbers , we can again define a primitive recursive sequence of rationals and define the primitive recursive Cauchy modulus of convergence where gives rounded up to an integer, and we again use Theorem 5.1.
These arithmetic definitions have the desired property that the traditional abstract limits will be added/multiplied in the classical sense.
5.6 Division of Signed Primitive Recursive Computed Numbers
As is known in the field of computable analysis, it is not possible in general to calculate a multiplicative inverse, and we therefore cannot perform division. This is because given a computed sequence, we cannot determine in general if it converges to zero.
6 Recursive Computed Numbers
A natural extension (but one that turns out to be of limited use) is to drop the requirement for the function to be primitive recursive. Thus a Recursive Computed Number is a pair where is an integer and is a recursive function which takes a positive integer and can only return the values where represents the rational series or equivalently the rational sequence which may terminate as a finite sequence in case some doesn’t terminate.
Definition 5.
The Recursive Computed Numbers are the pairs where is an integer and is a recursive function which takes a positive integer and which is syntactically structured to only ever return one of the values where represents the rational sequence .
In other words, in computing terms, we have an arbitrary computer program constructed to output a sequences of providing the coefficients of a power series. This definition is equivalent to that of the classical computable numbers, restated to be a Modulated Decidable class of Computed Numbers by focusing on the algorithm and removing any reference to the abstract real numbers. That is, we can determine by syntactic inspection if we have a recursive computed number.
However, clearly these recursive computed numbers are not in general Halting and therefore do not provide a satisfying foundation of constructive real numbers, as we may try to output successive rational approximations and be left hanging forever wondering if another approximation is forthcoming.
We could again allow coefficients of , although a recursive function can calculated ahead an arbitrary number of places so is able to calculate power series without this relaxation.
6.1 Arithmetic with Recursive Computed Numbers
The limited usefulness of Recursive Computed Numbers becomes apparent when we try to do something as simple as adding two of them together, the challenge being that we never know if any one of the programs will ever output another number in the sequence.
Given two programs , it would be natural to alternately perform operations of programs and , and whenever there is a new number available from either output, the sum of the last two known numbers is output, so e.g. if the last outputs are and and then becomes available, we can output + . However, this sum is not a Recursive Computed Number, as we may for example reach after which suddenly becomes available but we cannot output as this would involve a big jump out of turn. We would obtain a better behavior if we output and then wait for . This would be exponentially convergent but we can’t do this either since we don’t know and may never know whether actually exists, so we may get stuck with an empty output representing zero, which does not accurately represent the sum since is non-zero.
Interestingly, the abstract computable numbers are a field, but there is no good way to perform arithmetic operations on the concrete representations. That is if and are computable real numbers then we know there is a computer program which outputs a sequence converging to but there is no direct way to add programs and to .
We will therefore not dwell on the Recursive Computed Numbers but rather move on to a more general class of Computed Numbers which has preferable properties.
7 Generalized Computed Numbers
7.1 Naive GCNs
It is well known that some Cauchy Sequences (indeed monotone bounded sequences) of rational numbers have limits that are not computable. We will investigate whether there are decidable classes of computed numbers which admit numbers that are not classically computable.
For convenience we define a version of the Specker sequence [Spe49] as follows. Let be an enumeration of computer programs in some programming language, lexicographically ordered.
Then define rational number as binary (i.e. ) if program halts after 1 step, otherwise. More generally is where is a binary digit which is if halts in execution steps. Thus each adds one digit to the end of the binary expansion of , but may also have some earlier digit flip from to , that is the th digit will flip from to if program terminates after exactly steps.
For example we might have
0.0 0.00 0.010 0.0101 0.01110
where the th digit flips from to in the th number if program halts after steps.
Clearly this sequence is Cauchy in the abstract sense, as every digit in the binary expansion will either stay forever or flip to and then remain the same, so the sequence is monotone increasing with an upper bound of . But we cannot estimate it to a given error range, as we do not know in general if and when will terminate and the first digit might flip to creating a jump or .
So the sequence is not Cauchy in the sense often used in constructive mathematics, since it does not have a computable modulus of Cauchy convergence.
However there is another means to constructively force a sequence to be Cauchy. If we can be sure that the sequence only has a specific finite number of jumps of each order of magnitude, then we can be certain it is Cauchy, even if we do not know exactly when it will reach a certain range of convergence.
This idea is presented in Rettinger and Zheng’s [RZ06] definition of dbc computable numbers:
We call an index pair a -jump if . A sequence converges -bounded effectively if it has at most non-overlapping -jumps for all .
A real number is -bounded computable (f-bc, for short) if there is a computable sequence of rational numbers which converges to f-bounded effectively. If a real number is -bc for a computable function , then it is also called divergence bounded computable (dbc, for short)
We might call the function a modulus of Cauchy divergence. Their idea is that even if we do not have a modulus of Cauchy convergence i.e. we cannot predict when the sequence will settle down to a given error range, we can still ensure it’s Cauchy if we instead limit the number of divergent jumps of every order of magnitude.
Clearly a sequence with such a modulus of Cauchy divergence is Cauchy since for every there is a finite number of points such that there exists a point with . Therefore, the tail of the sequence after the last such point satisfies the Cauchy condition.
Now [RZ06]’s definition is not a constructive definition as it depends on the abstract concept of a real number. Moreover, there is no deterministic way to decide if a given sequence represents a dbc number. But this approach to defining a Cauchy sequence without a modulus of convergence but with an explicit bound on the number of jumps of each order of magnitude is useful in our constructive approach.
We will use the term Generalized Computed Numbers (GCN) for Unmodulated Decidable Classes of Computed Numbers which use a modulus of divergence instead of a modulus of convergence, so that they are known to converge conceptually but we do not know their rate of convergence.
Definition 6.
A naïve definition of Generalized Computed Numbers (NGCN) are the triples where is an integer and is a primitive recursive function with giving the ’th version of the th coefficient of the binary power series, while is a primitive recursive function limiting how many times the th coefficient may change as increases.
The triple represents the rational sequence
Where means we take the th element (or the last element if there are fewer than elements) of the subsequence . That is we take the last value, or the value which represent the th change, whichever is first.
Thus in the NGCNs, as the power series is expanded, coefficients that have already been calculated may change, provided there is a computable bound on how often they change. Here we do not need negative coefficients as we are able to correct coefficients.
Again, it should be clear that NGCN elements can be written in a formal syntax so it forms a decidable/computable set. Every NGCN represents a computable convergent rational sequence, albeit in general not modulated, i.e. we do cannot know how far in the sequence we need to advance to achieve a specific level of approximation. Thus NGCN is a Decidable class of (Unmodulated) Halting Computed Numbers.
Clearly the Specker sequence can be represented here with , so in that sense the GCNs can represent numbers which are not classical computable numbers, hence the name Generalized.
Unfortunately this definition gives too much weight to the binary expansions and does not conveniently support operations such as multiplication. An alternative approach may by provided by constraining a general program rather than constructing a power series.
7.2 Constrained GCNs
Definition 7.
A Generalized Computed Number (GCN) is a triple where is an integer bound on the output, is a primitive recursive function giving a bound on the number of jumps of any order of magnitude, and is a program which outputs rational numbers which we will run within a specific wrapper program which ensures that
-
•
outputs at least one rational number (say it starts by outputting )
-
•
Every output satisfies (if not the program will repeat the previous output instead)
-
•
The th output is a rational number such that for every there does not exist non-overlapping pairs with (if not the program will repeat the previous output instead).
With this definition we have a very flexible Decidable Class of Generalized Halting Computed Numbers. They are however Unmodulated.
is not Halting as a general computer program may get stuck in a loop. If is limited to be primitive recursive algorithms, then the GCN is Halting in the weak sense that it will always output an infinite sequence, but the sequence may get stuck repeating the same number while outputs numbers that are censored by .
7.3 GCN arithmetic operations
7.3.1 Addition
Given two GCNs and we define the addition where outputs zero and then executes and in parallel (or alternatively executes a step of each); whenever a new rational number is output from (or respectively) outputs the new value added to the last known value from () or zero if none.
7.4 Additive inverse
This is obtained trivially by where is the program with an extra wrapper that negates each rational number coming out of .
7.5 Multiplication
Given two GCNs and we define the multiplication as follows:
-
•
is a computer program which wraps and and outputs zero and then executes and in parallel (or alternately executes a step of each); whenever a new rational number is output from (or ) outputs the new value multiplied by the most recent value from () or zero if none.
-
•
To construct first pick the smallest and such that , .
-
–
-
–
.
-
–
We see here the need for having a bound . Having a bound on the numbers being output by allows us to limit the impact of the jumps in after multiplying by numbers in , and vice versa.
8 Conclusion
We suggested an approach of epi-constructionism and explored computable sets of computable numbers, or, equivalently, decidable constructive real numbers. We were able to define Computed Numbers as fundamental objects without relying on the abstraction of real numbers. The Computed Numbers are algorithms which output convergent sequences of rational numbers. This much was well known in the literature. Here we studied Decidable classes of Computed Numbers.
The best behaved class are the Signed Primitive Recursive Computed Numbers given by a binary power series with coefficients yielded by primitive recursive functions, allowing for negative coefficients. This means we can obtain an approximation of the limit to any accuracy in finite time. The class is closed under addition, subtracting and multiplication but there is no division and we cannot in general determine equality of the limit.
A more general class, the Recursive Computed Numbers, corresponds to the concrete representations of the classical computable numbers, but this class is not closed under arithmetic operations and is not “halting” - the algorithm outputting a sequence might become stuck in an infinite loop.
Finally we introduced the Generalized Computed Numbers which admit decidable representations of non-computable numbers such as the Specker limit, and still satisfy the requirement that each Generalized Computed Number has a concrete decidable syntactic representation. However these sequences are not modulated - we do not know when an output sequence will settle down to within a given error range. GCNs might be considered curiosities, they show that the concept of a computable set of computable numbers can stretch to include represent the Specker limit which is not classically a computable number. But GCNs are not a particularly natural set and being unmodulated, are not suitable for computation in practice.
It is the signed primitive recursive computed numbers which are the most likely foundation for a decidably constructive mathematics.
9 Acknowledgments
My thanks to Frank Waaldijk, Nachi Avraham Reem, Joshua Fox, Ziv Hellman, Benjamin Fox, Thorsten Altenkirch for their constructive feedback.
10 Disclosure
No funding was received. The author has no conflicts of interest.
References
- [Abe01] Oliver Aberth. Computable Calculus. Elsevier Science, 2001.
- [Bis67] Errett Bishop. Foundations of constructive analysis. McGraw-Hill series in higher mathematics. McGraw-Hill, 1967.
- [Bri06] Mark Bridger. Real Analysis: A Constructive Approach 1st Edition. Wiley-Interscience, 2006.
- [Bri19] Mark Bridger. Real Analysis: A Constructive Approach Through Interval Arithmetic. American Math Society, 2019.
- [Bro23] Luitzen E. J. Brouwer. Über Definitionsbereiche von Funktionen [on the significance of the principle of excluded middle in mathematics, especially in function theory]. Mathematische Annalen, 97:60–75, 1923.
- [Chu36] Alonzo Church. A note on the entscheidungsproblem. J. Symbolic Logic, 1(1):40–41, 03 1936.
- [Coh66] Paul Joseph Cohen. Set theory and the continuum hypothesis. Dover Publications, 1966.
- [CSH08] A. D. Taylor C. S. Hardin. An.lntroduction to Infinite Hat Problems. Springer Science+Business Media, 30(4), 2008.
- [Dav58] Martin Davis. Computability & Unsolvability. McGraw-Hill, 1958.
- [DSB06] Luminita Simona Vita Douglas S. Bridges. Techniques of Constructive Analysis. 2006.
- [Gol42] Christian Goldbach. letter to Euler. 1742.
- [Hat92] Masayoshi Hata. Improvement in the irrationality measures of and . Proc. Japan Acad. Ser. A Math. Sci., 68(9):283–286, 1992.
- [Kah04] William Kahan. A logarithm too clever by half. 2004.
- [Kus06] Boris A. Kushner. The constructive mathematics of A. A. Markov. The American Mathematical Monthly, 113(6):559–566, 2006.
- [LMT98] Vincent Lefèvre, Jean-Michel Muller, and Arnaud Tisserand. Toward correctly rounded transcendentals. IEEE Transactions on Computers, 47:1235 – 1243, November 1998.
- [Mah53] Kurt Mahler. On the approximation of . 1953.
- [Mar62] Andrey A. Markov. On constructive mathematics. Trudy Mat. Inst. Steklov, Problems of the constructive direction in mathematics. Part 2., 67:8–14, 1962.
- [Mar71] Andrey A. Markov. On constructive mathematics (translation from russian paper of 1962. Amer. Math. Soc. Translations, 2(98), 1971.
- [Myh53] John Myhill. Criteria of constructibility for real numbers. J. Symbolic Logic, 18(1):7–10, 03 1953.
- [Pea89] G. Peano. Arithmetices principia: nova methodo. Fratres Bocca, 1889.
- [Ric54] H Gordon Rice. Recursive real numbers. Proceedings of the American Mathematical Society, 5(5):784–791, 1954.
- [Rob51] R. M. Robinson. Review of “R. Peter: Rekursive Funktionen”. J. Symbolic Logic, 16:280 – 282, 1951.
- [RZ06] Robert Rettinger and Xizhong Zheng. A hierarchy of turing degrees of divergence bounded computable real numbers. Journal of Complexity, 22(6):818 – 826, 2006. Computability and Complexity in Analysis.
- [Sha55] Norman Shapiro. H. g. rice. recursive real numbers. proceedings of the american mathematical society, vol. 5 (1954), pp. 784–791. Journal of Symbolic Logic, 20(2):177–177, 1955.
- [Spe49] Ernst Specker. Nicht konstruktiv beweisbare Sätze der Analysis [nonconstructive theorems of analysis]. J. Symb. Log., 14(3):145–158, 1949.
- [Tur36] Alan M. Turing. On computable numbers, with an application to the Entscheidungsproblem. Proc. Lond. Math. Soc. (2), 42:230–265, 1936.
- [Tur37] Alan M. Turing. On Computable Numbers, with an Application to the Entscheidungsproblem. Proceedings of the London Mathematical Society, s2-42(1):230–265, 01 1937.
- [Wei00] Klaus Weihrauch. Computable Analysis: An Introduction. Springer-Verlag, Berlin, Heidelberg, 2000.
- [ZR04] Xizhong Zheng and Robert Rettinger. Weak computability and representation of reals. Mathematical Logic Quarterly, 50(0):431–442, 2004.