Foundations of Mathematics.Pdf
Total Page:16
File Type:pdf, Size:1020Kb
Copyright c 1995{2000 by Stephen G. Simpson Foundations of Mathematics Stephen G. Simpson March 13, 2000 Department of Mathematics The Pennsylvania State University University Park, State College PA 16802 [email protected] This is a set of lecture notes for my course, Foundations of Mathematics I, offered as Mathematics 558 at the Pennsylvania State University, Spring 2000. Contents List of Figures iii Chapter 1. Computable Functions 1 1. Primitive Recursive Functions 1 2. The Ackermann Function 6 3. Computable Functions 7 4. Partial Recursive Functions 13 5. The Enumeration Theorem 14 6. Consequences of the Enumeration Theorem 18 7. Unsolvable Problems 20 8. The Recursion Theorem 24 9. The Arithmetical Hierarchy 25 Chapter 2. Undecidability of Arithmetic 29 1. Terms, Formulas, and Sentences 29 2. Arithmetical Definability 30 3. G¨odel Numbers of Formulas 35 Chapter 3. The Real Number System 37 1. Quantifier Elimination 37 2. Decidability of the Real Number System 42 Chapter 4. Informal Set Theory 43 1. Operations on Sets 43 2. Cardinal Numbers 45 3. Well-Orderings and Ordinal Numbers 47 4. Cardinal Numbers, Continued 51 5. Pure Well-Founded Sets 55 Chapter 5. Axiomatic Set Theory 60 1. The Language and Axioms of Set Theory 60 2. Models of Set Theory 63 3. Transitive Models and Inaccessible Cardinals 66 4. Constructible Sets 69 5. Forcing 72 Chapter 6. Topics in Set Theory 73 1. Stationary Sets 73 2. Large Cardinals 74 3. Ultrafilters and Ultraproducts 75 4. Measurable Cardinals 77 i CONTENTS ii 5. Ramsey's Theorem 77 Index 78 List of Figures 1 Types of Register Machine Instructions 7 2 An Addition Program 8 3 The Initial Functions 9 4 A Multiplication Program 10 5 Generalized Composition 11 6 Primitive Recursion 12 7 Minimization 14 8 A Program with Labeled Instructions 15 9 Parametrization 23 iii CHAPTER 1 Computable Functions We use N to denote the set of natural numbers, N = 0; 1; 2;::: : f g For k 1, the k-fold Cartesian product ≥ N N ×···× k is denoted Nk.Ak-place function| is a{z function} f : Nk N and is sometimes indicated with the lambda-notation, ! f = λx1 xk [ f(x1;:::;xk)]: ··· A number-theoretic function is a k-place function for some k 1. The purpose of this chapter is to define and study an important≥ class of number- theoretic functions, the recursive functions (sometimes called the computable func- tions). We begin with a certain subclass known as the primitive recursive functions. 1. Primitive Recursive Functions Loosely speaking, a recursion is any kind of inductive definition, and a primitive recursion is an especially straightforward kind of recursion, in which the value of a number-theoretic function at argument x + 1 is defined in terms of the value at argument x. For example, the factorial function λx [ x! ] is defined by the primitive recursion equations 0! = 1, (x +1)!=x!(x + 1). A number-theoretic function is said to be primitive recursive if it can be built up by means of primitive recursions. This concept is made precise in the following definition. Definition 1.1 (Primitive Recursive Functions). The class PR of primitive recursive functions is the smallest class C of number-theoretic functions having the following closure properties. 1. The constant zero function Z = λx [ 0 ] belongs to C. 2. The successor function S = λx [ x + 1 ] belongs to C. 3. For each k 1and1 i k, the projection function Pki = λx1 xk [ xi ] belongs to C≥. ≤ ≤ ··· 4. C is closed under generalized composition. This means that whenever the k-place functions λx1 xk [ g1(x1;:::;xk)];:::,λx1 xk [ gm(x1;:::;xk)] ··· ··· and the m-place function λy1 ym [ h(y1;:::;ym) ] all belong to C,then the k-place function ··· f = λx1 xk [ h(g1(x1;:::;xk);:::;gm(x1;:::;xk)) ] ··· 1 1. PRIMITIVE RECURSIVE FUNCTIONS 2 also belongs to C.Heref is defined by f(x1;:::;xk)=h(g1(x1;:::;xk);:::;gm(x1;:::;xk)) : 5. C is closed under primitive recursion. This means that whenever the k-place function λx1 xk [ g(x1;:::;xk)] andthe(k + 2)-place function ··· λyzx1 xk [ h(y;z;x1;:::;xk)] ··· belong to C, then the (k + 1)-place function λyx1 xk [ f(y;x1;:::;xk)] defined by ··· f(0;x1;:::;xk)=g(x1;:::;xk) f(y +1;x1;:::;xk)=h(y;f(y;x1;:::;xk);x1;:::;xk) also belongs to C. We now list some examples of primitive recursive functions. Examples 1.2. 1. The recursion equations x +0 = x x +(y +1) = (x + y)+1 show that the addition function λxy [ x + y ] is primitive recursive. 2. The recursion equations x 0=0 · x (y +1) = (x y)+x · · show that the multiplication function λxy [ x y ] is primitive recursive. 3. The recursion equations · x0 =1 xy+1 = xy x · show that the exponentiation function λxy [ xy ] is primitive recursive. 4. As already mentioned, the recursion equations 0! = 1 (x +1)! = x! (x +1) · show that the factorial function λx [ x! ] is primitive recursive. We now proceed to further enlarge our library of primitive recursive functions. First, the recursion equations P (0) = 0, P (x +1)=x show that the \predecessor" function x 1ifx>0, P (x)= − (0ifx =0 is primitive recursive. We can then obtain the truncated subtraction function x y if x y , x y = − ≥ −· (0ifx<y 1. PRIMITIVE RECURSIVE FUNCTIONS 3 using primitive recursion equations x 0=x, x (y +1)=P (x y). (Truncated −· −· −· subraction is useful because ordinary subtraction is not a function from N2 into N.) We shall also have use for x y =(x y)+(y x) j − j −· −· and α(x)=1 x.Notethat −· 0ifx>0, α(x)= (1ifx =0. The following exercise will become easy after we have developed a little more machinery. Exercise 1.3. Show that the Fibonacci function, defined by fib(0) = 0 ; fib(1) = 1 ; fib(x +2) = fib(x) + fib(x +1) is primitive recursive. (The first few values of this function are 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ::: .) In addition to primitive recursive functions, we shall want to consider primitive recursive predicates. By a k-place predicate we mean a subset of Nk.IfR Nk is ⊆ a k-place predicate and x1;:::;xk are elements of N,wesaythatR(x1;:::;xk)is true if x1;:::;xk R,otherwisefalse.Anumber-theoretic predicate is a k-place predicateh for somei2k 1. ≥ Definition 1.4. A k-place predicate R Nk is said to be primitive recursive if its characteristic function ⊆ 1ifR(x1;:::;xk)istrue χR(x1;:::;xk)= (0ifR(x1;:::;xk)isfalse is primitive recursive. For example, the 2-place predicates x = y and x<yare primitive recursive, since χ=(x; y)=α( x y )andχ<(x; y)=α(α(y x)). j − j −· Lemma 1.5 (Boolean Connectives). If P and Q are primitive recursive predi- cates, then so are P , P Q,andP Q.(Here , ,and denote negation, conjunction, and (nonexclusive): ^ disjunction,_ respectively.): ^ _ Proof. We have χ P = α(χP )andχP Q = χP χQ.Also : ^ · χP Q = α(α(χP ) α(χQ)) _ · since P Q (( P ) ( Q)) (de Morgan's law). _ ≡ : : ^ : Lemma 1.6 (Iterated Sums and Products). If f(x; y; z1;:::;zk) is a primitive recursive function, then so are y 1 − g(y;z1;:::;zk)= f(x; y; z1;:::;zk)(=0ify =0) x=0 X 1. PRIMITIVE RECURSIVE FUNCTIONS 4 and y 1 − h(y;z1;:::;zk)= f(x; y; z1;:::;zk)(=1ify =0): x=0 Y Proof. We have g(y;z1;:::;zk)=g∗(y;y;z1;:::;zk)where w 1 − g∗(w; y; z1;:::;zk)= f(x; y; z1;:::;zk) : x=0 X The recursion equations g∗(0;y;z1;:::;zk)=0 g∗(w +1;y;z1;:::;zk)=g∗(w; y; z1;:::;zk)+f(w; y; z1;:::;zk) show that g∗ is primitive recursive, hence g is primitive recursive. The treatment of h is similar. Lemma 1.7 (Finite Conjuction and Disjunction). If R(x; y; z1;:::;zk) is a primitive recursive predicate, then so are y 1 − P (y;z1;:::;zk) R(x; y; z1;:::;zk) ≡ x=0 ^ and y 1 − Q(y;z1;:::;zk) R(x; y; z1;:::;zk) : ≡ x=0 _ Proof. We have y 1 − χP (y;z1;:::;zk)= χR(x; y; z1;:::;zk) x=0 Y and y 1 − χQ(y;z1;:::;zk)=α α(χR(x; y; z1;:::;zk)) x=0 ! Y so our result follows from the previous lemma. y 1 y 1 Note that x−=0 and x−=0 can be paraphrased as \for all x in the range 0 x<y" and \there exists x in the range 0 x<y", respectively. These operators≤ are sometimesV called boundedW quantifiers. ≤ The above lemmas make it easy to show that many familiar predicates are primitive recursive. For example, the set (i.e., 1-place predicate) of prime numbers is primitive recursive, since Prime (x) x is a prime number ≡ x>1 (x = u v u>1 v>1) : : ≡ ^ u<x v<x · ^ ^ _ _ Similarly, the following lemma can be used to show that many familiar functions are primitive recursive. 1. PRIMITIVE RECURSIVE FUNCTIONS 5 Lemma 1.8 (Bounded Least Number Operator). If R(x; y; z1;:::;zk)isaprim- itive recursive predicate, then the function least x<ysuch that R(x; y; z1;:::;zk)holds, f(y;z1;:::;zk)=8 if such x exists , <>y otherwise is primitive recursive. :> Proof. We have y 1 x 1 − − f(y;z1;:::;zk)= x χR(x; y; z1;:::;zk) α(χR(w; y; z1;:::;zk)) · · x=0 w=0 ! X Y y 1 − + y α(χR(x; y; z1;:::;zk)) ; · x=0 Y so f is primitive recursive.