To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
Many excellent books are published on approximation theory and methods. The general texts that are particularly valuable to the present work are the ones by Achieser [2], Cheney [35], Davis [50], Handscomb (ed.) [74], Hayes (ed.) [77], Hildebrand [78], Holland & Sahney [81], Lorentz [100], Rice [132] and [134], Rivlin [138] and Watson [161]. Detailed references and suggestions for further reading are given in this appendix.
Most of the theory in Chapter 1 is taken from Cheney [35] and from Rice [132]. If one prefers an introduction to approximation theory that shows the relations to functional analysis, then the paper by Buck [32] is recommended. We give further attention only in special cases to the interesting problem, mentioned at the end of Section 1.1, of investigating how well any member of B can be approximated from A; a more general study of this problem is in Lorentz [100] and in Vitushkin [160]. The development of the Polya algorithm, which is the subject of Exercise 1.10, into a useful computational procedure is considered by Fletcher, Grant & Hebden [57].
In Chapter 2, as in Chapter 1, much of the basic theory is taken from Cheney [35]. For a further study of convexity the book by Rockafellar [142] is recommended. Several excellent examples of the non-uniqueness of best approximation with respect to the 1- and the ∞-norms are given by Watson [161]. An interesting case of Exercise 2.1, namely when B is the space Rn and the unit ball {f:∥f∥≤1; f∈R} is a polyhedron, is considered by Anderson & Osborne [5].
The point of view in Chapter 3 that approximation algorithms can be regarded as operators is treated well by Cheney [35], and more advanced work on this subject can be found in Cheney & Price [37]. Several references to applications of Theorem 3.1 are given later, including properties of polynomial approximation operators that are defined by interpolation conditions.
Over the past fifty years there have been many proposals for a precise mathematical characterisation of the intuitive idea of effective computability. The URM approach is one of the more recent of these. In this chapter we pause in our investigation of URM-computability itself to consider two related questions.
How do the many different approaches to the characterisation of computability compare with each other, and in particular with URM-computability?
How well do these approaches (particularly the URM approach) characterise the informal idea of effective computability?
The first question will be discussed in §§ 1-6; the second will be taken up in § 7. The reader interested only in the technical development of the theory in this book may omit §§ 3-6; none of the development in later chapters depends on these sections.
Other approaches to computability
The following are some of the alternative characterisations that have been proposed:
(a) Gödel-Herbrand-Kleene (1936). General recursive functions defined by means of an equation calculus. (Kleene [1952], Mendelson [1964].)
(b) Church (1936). λ-definable functions. (Church [1936] or [1941].)
(c) Gödel-Kleene (1936). μrecursive functions and partial recursive functions (§ 2 of this chapter.).
(d) Turing (1936). Functions computable by finite machines known as Turing machines. (Turing [1936]; § 4 of this chapter.)
(e) Post (1943). Functions defined from canonical deduction systems. (Post [1943], Minsky [1967]; § 5 of this chapter.)
(f) Markov (1951). Functions given by certain algorithms over a finite alphabet. (Markov [1954], Mendelson [1964]; § 5 of this chapter.)
There is great diversity among these various approaches; each has its own rationale for being considered a plausible characterisation of computability. The remarkable result of investigation by many researchers is the following:
The Fundamental result
Each of the above proposals for a characterisation of the notion of effective computability gives rise to the same class of functions, the class that we have denoted ℘.
The sets mentioned in the title to this chapter are subsets of ℕ corresponding to decidable and partially decidable predicates. We discuss recursive sets briefly in § 1. The major part of this chapter is devoted to the study of recursively enumerable sets, beginning in § 2; many of the basic properties of these sets are derived directly from the results about partially decidable predicates in the previous chapter. The central new result in § 2 is the characterisation of recursively enumerable sets that gives them their name: they are sets that can be enumerated by a recursive (or computable) function.
In §§ 3 and 4 we introduce creative sets and simple sets: these are special kinds of recursively enumerable sets that are in marked contrast to each other; they give a hint of the great variety existing within this class of sets.
Recursive sets
There is a close connection between unary predicates of natural numbers and subsets of ℕ: corresponding to any predicate M(x) we have the set {x : M(x) holds}, called the extent of M (which could, of course, be 0); while to a set A ⊆ ℕ there corresponds the predicate ‘x ∈ A’. The name recursive is given to sets corresponding in this way to predicates that are decidable.
Definition
Let A be a subset of ℕ. The characteristic function of A is the function cA given by
Then A is said to be recursive if cA is computable, or equivalently, if ‘x ∈ A’ is a decidable predicate.
Notes
1. For obvious reasons, recursive sets are also called computable sets.
2. If cA is primitive recursive, the set A is said to be primitive recursive.
3. The idea of a recursive set can be extended in the obvious way to subsets of ℕn (n > 1), although in the text we shall (as is common practice) restrict the use of the term to subsets of ℕ.
In earlier chapters we have used the technique of reducing one problem to another, often as means of demonstrating undecidability. We did this, for instance, in the proof of theorem 6-1.4 by showing that there is a total computable function k such that x ∈ Wx ⇔ ϕk(x) = 0, i.e. we used the function k to transform or reduce each instance of the general problem ‘x ∈ Wx’ to an instance of the general problem ‘ϕx = 0’. In this chapter we consider two ways of making the idea of reducibility precise, and for each we discuss the associated notion of degree (of difficulty) that arises.
It is more convenient to deal with reducibility between sets rather than between problems, remembering that any problem is represented by a set of numbers. The informal idea of a set A being reducible to a set B can be expressed in various ways: for instance
(a) ‘Given a decision procedure for the problem’ x ∈ B’, we can construct one for ‘x ∈ A’.’
(b) ‘For someone who knows all about B, there is a mechanical procedure (that uses his knowledge of B) for deciding questions about A.’
(c) ‘Questions about A are no harder than questions about B.’
(d) ‘The degree of difficulty of the problem’ x ∈ A’ is no greater than that of the problem ‘x ∈ B’.’
It turns out that there are several non-equivalent ways of making this idea precise. The differences between these consist in the manner and extent to which information about B is allowed to be used to settle questions about A. In §§ 1-3 we shall investigate one of the simplest notions of reducibility, called many-one reducibility, which includes all of our earlier uses of the informal idea. In the final sections we shall discuss a more general notion known as Turing reducibility.
The celebrated incompleteness theorem of Gödel [1931] is one of many results about formal arithmetic that involve an interplay between computability and logic. Although full proofs in this area are beyond the scope of this book, we are able to outline some of the arguments discovered by Gödel and others. We shall highlight particularly the part played by computability theory, which in many cases can be viewed as an application of the phenomenon of creative and productive sets.
In §§ 1 and 2 we present some results about formal arithmetic that lead up to the full Gödel incompleteness theorem in § 3. In the final section the question of undecidability in formal arithmetic, already touched upon in § 1, is taken up again. Our presentation in this chapter does not assume any knowledge of formal logic.
Formal arithmetic
The formalisation of arithmetic begins by specifying a formal logical language L that is adequate for making statements of ordinary arithmetic of the natural numbers. The language L has its own alphabet, which includes the symbols 0, 1, +, x, = (having the obvious meanings), and also symbols for logical notions as follows: ¬ (‘not’), ∧ (‘and’), ∨ (‘or’), → (‘implies’), ∀ (‘for all’), ∃ (‘there exists’). (In this chapter we will reserve the symbols ∀, ∃ for use in L, and write the phrase ‘for all’ and ‘there exists’ when needed in informal contexts.) In addition, L has symbols x, y, z,… for variables, and brackets (and), and there may be other symbols besides.
The statements (or formulas) of L are defined to be the meaningful finite sequences of symbols from the alphabet of L. For instance, the statement
∃y(y×(1 + 1) = x)
is the formal counterpart of the informal statement ‘x is even’.