CHAPTER 4. COMPUTABILITY AND DECIDABILITY

Similar documents
Phil 320 Chapter 7: Recursive sets and relations Note: 0. Introduction Significance of and main objectives for chapter 7:

COMPUTABILITY THEORY AND RECURSIVELY ENUMERABLE SETS

Elementary Recursive Function Theory

Lecture 5: The Halting Problem. Michael Beeson

(a) Give inductive definitions of the relations M N and M N of single-step and many-step β-reduction between λ-terms M and N. (You may assume the

Recursive Functions. Recursive functions are built up from basic functions by some operations.

Elementary Recursive Function Theory

Material from Recitation 1

Section 1.7 Sequences, Summations Cardinality of Infinite Sets

Section 2.4 Sequences and Summations

HW 1 CMSC 452. Morally DUE Feb 7 NOTE- THIS HW IS THREE PAGES LONG!!! SOLUTIONS THROUGOUT THIS HW YOU CAN ASSUME:

Limitations of Algorithmic Solvability In this Chapter we investigate the power of algorithms to solve problems Some can be solved algorithmically and

Discrete Mathematics Lecture 4. Harper Langston New York University

Comparing sizes of sets

Phil 320 Chapter 1: Sets, Functions and Enumerability I. Sets Informally: a set is a collection of objects. The objects are called members or

Handout 9: Imperative Programs and State

A catalogue of proofs that various sets, functions and relations are primitive recursive 26 February 2012 at 20:57

1.3 Primitive Recursive Predicates and Bounded Minimalization

We can create PDAs with multiple stacks. At each step we look at the current state, the current input symbol, and the top of each stack.

Functions. How is this definition written in symbolic logic notation?

Let A(x) be x is an element of A, and B(x) be x is an element of B.

Chapter 6 Recursive functions

Lecture 6: Arithmetic and Threshold Circuits

Slides for Faculty Oxford University Press All rights reserved.

MATH 139 W12 Review 1 Checklist 1. Exam Checklist. 1. Introduction to Predicates and Quantified Statements (chapters ).

14.1 Encoding for different models of computation

1 Elementary number theory

We ve studied the main models and concepts of the theory of computation:

CSE 215: Foundations of Computer Science Recitation Exercises Set #4 Stony Brook University. Name: ID#: Section #: Score: / 4

Computability Theory XI

Computability Theory

Math 170- Graph Theory Notes

Infinity and Uncountability. Countable Countably infinite. Enumeration

Cardinality of Sets. Washington University Math Circle 10/30/2016

Recursive Functions. 6.1 Primitive Recursive Functions

CDM Primitive Recursion

CDM Primitive Recursion

Chapter Summary. Mathematical Induction Recursive Definitions Structural Induction Recursive Algorithms

Lecture 7: Primitive Recursion is Turing Computable. Michael Beeson

Theory of Computation - Module 1

CpSc 421 Final Solutions

Reflection in the Chomsky Hierarchy

Boolean networks, local models, and finite polynomial dynamical systems

EDAA40 At home exercises 1

Lecture 1. 1 Notation

05. Turing Machines and Spacetime. I. Turing Machines and Classical Computability.

Tutorial: Computable Model Theory and Differential Algebra

LOGIC AND DISCRETE MATHEMATICS

CS 3512, Spring Instructor: Doug Dunham. Textbook: James L. Hein, Discrete Structures, Logic, and Computability, 3rd Ed. Jones and Barlett, 2010

6.1 Evaluate Roots and Rational Exponents

Theory of Computer Science. D2.1 Introduction. Theory of Computer Science. D2.2 LOOP Programs. D2.3 Syntactic Sugar. D2.

Languages and Strings. Chapter 2

Recursive Function Theory

Introduction to Automata Theory. BİL405 - Automata Theory and Formal Languages 1

p x i 1 i n x, y, z = 2 x 3 y 5 z

Chapter Seven: Regular Expressions. Formal Language, chapter 7, slide 1

Math 302 Introduction to Proofs via Number Theory. Robert Jewett (with small modifications by B. Ćurgus)

MITOCW watch?v=4dj1oguwtem

Paths, Flowers and Vertex Cover

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Algorithms For Inference Fall 2014

4 Generating functions in two variables

Source of Slides: Introduction to Automata Theory, Languages, and Computation By John E. Hopcroft, Rajeev Motwani and Jeffrey D.

MATHEMATICS 191, FALL 2004 MATHEMATICAL PROBABILITY Outline #1 (Countability and Uncountability)

CS 275 Automata and Formal Language Theory. First Problem of URMs. (a) Definition of the Turing Machine. III.3 (a) Definition of the Turing Machine

Integers and Mathematical Induction

SECTION A (40 marks)

The Encoding Complexity of Network Coding

CS 125 Section #10 Midterm 2 Review 11/5/14

Lecture T4: Computability

CT32 COMPUTER NETWORKS DEC 2015

CS 531: Notes II. January 31, 2014

A B. bijection. injection. Section 2.4: Countability. a b c d e g

THEORY OF COMPUTATION

Fall Recursion and induction. Stephen Brookes. Lecture 4

Program Calculus Calculational Programming

Recursively Enumerable Languages, Turing Machines, and Decidability

(a) (4 pts) Prove that if a and b are rational, then ab is rational. Since a and b are rational they can be written as the ratio of integers a 1

9/19/12. Why Study Discrete Math? What is discrete? Sets (Rosen, Chapter 2) can be described by discrete math TOPICS

CS422 - Programming Language Design

Chapter Seven: Regular Expressions

COMP80 Lambda Calculus Programming Languages Slides Courtesy of Prof. Sam Guyer Tufts University Computer Science History Big ideas Examples:

CS 125 Section #4 RAMs and TMs 9/27/16

1. Find f(1), f(2), f(3), and f(4) if f(n) is defined recursively by f(0) = 1 and for n = 0, 1, 2,

2. Functions, sets, countability and uncountability. Let A, B be sets (often, in this module, subsets of R).

2/18/14. Uses for Discrete Math in Computer Science. What is discrete? Why Study Discrete Math? Sets and Functions (Rosen, Sections 2.1,2.2, 2.

CS6160 Theory of Computation Problem Set 2 Department of Computer Science, University of Virginia

In this section we will study problems for which we can prove that there is no algorithm solving them.

Course notes for Data Compression - 2 Kolmogorov complexity Fall 2005

Lemma (x, y, z) is a Pythagorean triple iff (y, x, z) is a Pythagorean triple.

Reducibilities relations with applications to symbolic dynamics

Calculating Cardinalities

n λxy.x n y, [inc] [add] [mul] [exp] λn.λxy.x(nxy) λmn.m[inc]0 λmn.m([add]n)0 λmn.n([mul]m)1

Notes on Turing s Theorem and Computability

CS 151 Complexity Theory Spring Final Solutions. L i NL i NC 2i P.

Chapter 4. Number Theory. 4.1 Factors and multiples

Solution Set 8 Date: 1 December, 1992

ELEMENTARY NUMBER THEORY AND METHODS OF PROOF

MATH Iris Loeb.

SEQUENCES, MATHEMATICAL INDUCTION, AND RECURSION

Introduction to Sets and Logic (MATH 1190)

Transcription:

CHAPTER 4. COMPUTABILITY AND DECIDABILITY 1. Introduction By definition, an n-ary function F on N assigns to every n-tuple k 1,...,k n of elements of N a unique l N which is the value of F at k 1,...,k n, F(k 1,...,k n ). In most common examples you are also given a procedure to compute the value of the function from the given k 1,...,k n. For example, let F(k,n) be the remainder of n upon division by k, that is, F(k,n) is the unique r with 0 r < k such that n = k l + r for some l N (or r = n if k = 0). The value of F at any k, n can be computed using the long division algorithm taught in elementary school. The following is an informal definition of algorithm. Definition 1.1. An algorithm for computing the values of an n-ary function F on N is a finite list of instructions such that given any input k 1,...,k n N the instructions can be mechanically carried out, and after a finite number of steps the computation stops and produces the unique answer F(k 1,...,k n ). Implicit in the definition is that no random procedure, like flipping a coin, can be used, since this would lead to different answers at different times. Definition 1.2. A function F on N is computable iff there is some algorithm which computes its values. Most functions on N are not computable, due to the following important result. Theorem 1.1. There are only countably many computable functions on N. Proof. (outline) Since algorithms are given by a finite list of instructions, they are finite sequences of symbols from a finite alphabet. Hence there are only countably many algorithms, and therefore just countably many computable functions on N. Since there are uncountably many functions on N it follows that uncountably many of then are not computable. It is harder to give explicit examples of uncomputable functions, however. Computability also applies to relations by considering their characteristic functions. Definition 1.3. Let R be an n-ary relation on N. The characteristic function of R is the n-ary function K R defined by K R (k 1,...,k n ) = 1 if R(k 1,...,k n ) holds and 0 otherwise. Definition 1.4. A relation R on N is decidable iff its characteristic function is computable. 1

2 CHAPTER 4. COMPUTABILITY AND DECIDABILITY The connection of computability with PA is given by the following remarkable result of K. Gödel used in the proof of his Incompleteness Theorem. Theorem 1.2. (a) A function F on N is computable iff it is definable in PA. (b) If a relation R on N is decidable then it is definable in PA. The right-to-left implication in (a) is not difficult. The reverse implication is much harder and is what is used in defining a sentence σ of L N such that N = σ but PA = σ. The rest of this Chapter is devoted to giving a precise definition of computability and explaining the proof of Theorem 1.2. 2. Defining Computability We need to have a formal definition of computable functions in order to prove a result like Theorem 1.2. There are many (equivalent) ways in which this can be done, for example using Turing Machines. We choose a recursive definition which is easier to work with, although not as intuitive as Turing s machine approach. We define the set of computable (or recursive) functions on N as all functions obtained from s, +,, K < and the constant 0 using three rules. The first of these rules is Composition (see also section 2 of Chapter 2): Given an n-ary function H on N and n k-ary functions G 1,...,G n on N, we obtain the k-ary function F on N defined by F(x 1,...,x k ) = H(G 1 (x 1,...,x k ),...,G n (x 1,...,x k )). We quietly allow dummy variables and changes in the order of variables so that, for example, the function H(x,y,z) = x (y + x) + y z is obtained by Composition from + and. The second rule is Primitive Recursion: Given an n-ary function G on N and an (n + 2)-ary function H on N, we obtain the (n + 1)-ary function F defined by the pair of equations F(0,y 1,...,y n ) = G(y 1,...,y n ), F(x + 1,y 1,...,y n ) = H(x,F(x,y 1,...,y n ),y 1,...,y n ). Ignoring the parameters y 1,...,y n all this means is that we specify the value of F at x = 0 and then specify the value of F at x + 1 in terms of the value of F at x. Here too we allow dummy variables and changes in the order of the variables. Examples include x! obtained by Primitive Recursion from the clauses 0! = 1 and (x + 1)! = (x + 1) x!, and exp(x,y) = x y obtained by Primitive Recursion (on the variable y) from the clauses x 0 = 1 and x y+1 = x x y. The final rule may be less familiar it is Unbounded Search, or µ-recursion. We first introduce the µ notation. Definition 2.1. Let R be an (n + 1)-ary relation on N such that for all x 1,...,x n N there is some y N such that R(x 1,...,x n,y) holds. Then the n-ary function (µy)[r(x 1,...,x n,y)] is defined to be the least y N such that R(x 1,...,x n,y) holds.

CHAPTER 4. COMPUTABILITY AND DECIDABILITY 3 For example, we know that for every x N there is some y N such that x < y and y is prime. Therefore the function F(x) defined as the least y > x such that y is prime is obtained by µ-recursion from the relation x < y and y is prime. The rule of Unbounded Search or µ-recursion is the following: Given an (n + 1)-ary function G on N such that for every x 1,...,x n N there is some y N with G(x 1,...,x n,y) = 0, we obtain the n-ary function F(x 1,...,x n ) = (µy)[g(x 1,...,x n,y) = 0]. Finally, a function F on N is computable, or recursive, iff it can be obtained from s, +,, K < and 0 (the starting functions ) by a finite number of applications of the three rules. For example, every polynomial with non-negative integer coeficients, F(x) = a n x n +...,+a 1 x+a 0 is recursive, being obtained from the starting functions using just composition. x! and x y are recursive, since they are obtained using Primitive Recursion, as shown above. We leave it to the reader to show (using Primitive Recursion) that the function K 0 defined by K 0 (0) = 1 and K 0 (n) = 0 for all n > 0 is recursive. It follows that if G is recursive and for every x 1,...,x n N there is some y N with G(x 1,...,x n,y) > 0, then the function F defined by F(x 1,...,x n ) = (µy)[0 < G(x 1,...,x n,y)] is recursive. For example, if K P is the characteristic function of the set of prime numbers, then F(x) defined as the least y such that x < y and y is prime can be written as (µy)[0 < K < (x,y) K P (y)] and therefore is recursive, since K P is recursive by Lemma 2.2(b) below. All of the other functions used in elementary number theory can similarly be shown to be recursive. Definition 2.2. A relation R on N is recursive provided its characteristic function K R is recursive. We can frequently show directly that a relation is recursive without considering its characteristic function, using the following facts. Lemma 2.1. (a) <, >, = are recursive. (b) If R is recursive, so is R. (c) If R and S are both recursive then so are (R S) and (R S). (d) If R(x 1,...,x n,y) is recursive and for every x 1,... x n N there is some y N such that R(x 1,...,x n,y) holds then the function F(x 1,...,x n ) = (µy)[r(x 1,...,x n,y) holds] is recursive. R is the relation which holds of k 1,...,k n iff R(k 1,...,k n ) fails. (R S) is the relation which holds iff both R and S hold, and similarly for (R S). Using Lemma 2.1 we obtain the following. Lemma 2.2. (a) The divisibility relation, x y, is recursive. (b) The set of all primes is recursive. (c) The function p enumerating all primes in increasing order is recursive.

4 CHAPTER 4. COMPUTABILITY AND DECIDABILITY Proof. (a) The relation ( (y = x z) y < z ) is recursive, by Lemma 2.1(a)(c). N = x y z ( (y = x z) y < z ). Hence, by Lemma 2.1(d), the function F(x,y) = (µy)[(y = x z) y < z] is recursive. Since x y iff F(x,y) y we conclude that x y is recursive. (b) This is left to the reader. (c) Use Primitive Recursion p(0) = 2 and p(n + 1) is the least prime strictly bigger than p(n). We normally write p k instead of p(k) in part (c). In contrast to Lemma 2.1 it is usually not true that yr(x 1,...,x n,y) is recursive provided R(x 1,...,x n,y) is recursive. We do, however, have the following: Lemma 2.3. Assume that R(x 1,...,x n,y,z) is recursive. Then y ( y z R(x 1,...,x n,y,z) ) is recursive. Proof. As in the proof that is recursive, F(x 1,...,x n,z) = (µy) ( R(x 1,...,x n,y,z) z < y ) is recursive, and y ( y z R(x 1,...,x n,y,z) ) holds iff F(x 1,...,x n,z) z. Definition 2.3. rem(x,w) is the remainder when x is divided by w, unless w = 0 in which case rem(x,w) = x. Lemma 2.4. The function rem is recursive, and can be defined without use of Primitive Recursion. Proof. rem(x,w) = y iff z ( (z x x = w z+y y < w) (w = 0 y = x) ), and this relation is recursive by Lemma 2.3. Since it is true that for all x,w N there is exactly one y such that rem(x,w) = y, it follows by Lemma 2.1(d) that rem is recursive. 3. Sequences and Sequence Numbers. Gödel was the first to realize that one can identify finite sequences of natural numbers with natural numbers in such a way that the standard operations on sequences become computable functions of the associated numbers. Definition 3.1. Let (k 0,...,k n 1 ) be a finite sequence of natural numbers. The sequence number of the sequence is k 0,...,k n 1 = 2 k 0+1 3 k 1+1 p k n 1+1 n 1. Lemma 3.1. If k 0,...,k n 1 = l 0,...,l m 1 then n = m and k i = l i for all i < n = m. Proof. Immediate from the Uniqueness of Prime Power Factorization, since all exponents are positive. Theorem 3.1. (a) The set Seq of all sequence numbers is recursive. (b) There is a recursive function ln such that for every sequence number k = k 0,...,k n 1, ln(k) = n, the length of the sequence (k 0,...,k n 1 ).

CHAPTER 4. COMPUTABILITY AND DECIDABILITY 5 (c) There is a binary recursive function C such that for every sequence number k = k 0,...,k n 1 and every i < n, C(k,i) = k i, the i th term in the sequence. (d) There is a binary recursive function such that for all sequence numbers k = k 0,...,k n 1 and l = l 0,...,l m 1, k l = k 0,...,k n 1,l 0,...,l m 1, the sequence number of the concatenation of the sequences (k 0,...,k n 1 ) and (l 0,...,l m 1 ). (e) There is a binary recursive function In such that for every sequence number k = k 0,...,k n 1 and every i < n, In(k,i) = k 0,...,k i 1, the sequence number of the initial segment of length i of the sequence (k 0,...,k n 1 ). Of course, in parts (b)-(e) the functions must be defined for all natural numbers, but we don t care how this is done. Notation. We normally write (k) i for C(k,i). The rule of Primitive Recursion allows us to define the value of a function at a positive integer n in terms of its value at the immediately preceding integer n 1. But there are times we need to define the value of a function at an integer in terms of its values at several preceding integers. For example the Fibonacci numbers are defined by the recursion f(0) = 0, f(1) = 0, f(n) = f(n 2) + f(n 1) for all n > 1. Such definitions are all included under Course-of-Values Recursion. Definition 3.2. Given a function F(x) the course-of-values of F is the function F defined by F(0) = 1, F(n) = F(0),...,F(n 1) for n > 0. We can also define the course-of-values of a function with more than one argument in analogous fashion, but for simplicity we restrict to functions of one argument. Lemma 3.2. F is recursive iff F is recursive. Proof. F(n) = ( F(s(n)) ), so F is recursive provided F is. For the other n direction, F is defined from F via the primitive recursion F(0) = 1, F(n + 1) = F(n) F(n). Theorem 3.2. (Course-of-Values Recursion) Assume that H(x) is recursive. Then so is F defined by F(n) = H(F(n)). Proof. We define F from H via the following primitive recursion. F(0) = 1, F(n + 1) = F(n) H(F(n)). Then F is also recursive by Lemma 3.2. There is also a relational form of Course-of-Values Recursion, which follows easily from the functional form. Theorem 3.3. Assume that S(x) is recursive. Then so is R defined by R(n) holds iff S(K R (n)) holds.

6 CHAPTER 4. COMPUTABILITY AND DECIDABILITY Proof. K R (n) = K S (K R (n)), so K R is recursive by Theorem 3.2 and hence R is recursive by definition.