Introduction to Computability Theory - · PDF fileessentially consisting of two parts,...

download Introduction to Computability Theory - · PDF fileessentially consisting of two parts, Classical Computability Theory and Gener- ... and Odifreddi [4] are the most accessible introductory

If you can't read please download the document

Transcript of Introduction to Computability Theory - · PDF fileessentially consisting of two parts,...

  • Introduction to Computability Theory

    Dag NormannThe University of Oslo

    Department of MathematicsP.O. Box 1053 - Blindern

    0316 OsloNorway

    August 16, 2010

  • Contents

    1 Classical Computability Theory 51.1 The foundation, Turings analysis . . . . . . . . . . . . . . . . . . 51.2 Computable functions and c.e. sets . . . . . . . . . . . . . . . . . 8

    1.2.1 The primitive recursive functions . . . . . . . . . . . . . . 81.2.2 The computable functions . . . . . . . . . . . . . . . . . . 131.2.3 Computably enumerable sets . . . . . . . . . . . . . . . . 20

    1.3 Degrees of Unsolvability . . . . . . . . . . . . . . . . . . . . . . . 251.3.1 m-reducibility . . . . . . . . . . . . . . . . . . . . . . . . . 251.3.2 Truth table degrees . . . . . . . . . . . . . . . . . . . . . . 281.3.3 Turing degrees . . . . . . . . . . . . . . . . . . . . . . . . 30

    1.4 A minimal Turing degree . . . . . . . . . . . . . . . . . . . . . . 361.4.1 Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361.4.2 Collecting Trees . . . . . . . . . . . . . . . . . . . . . . . 381.4.3 Splitting Trees . . . . . . . . . . . . . . . . . . . . . . . . 391.4.4 A minimal degree . . . . . . . . . . . . . . . . . . . . . . . 39

    1.5 A priority argument . . . . . . . . . . . . . . . . . . . . . . . . . 401.5.1 C.e. degrees . . . . . . . . . . . . . . . . . . . . . . . . . . 401.5.2 Posts Problem . . . . . . . . . . . . . . . . . . . . . . . . 411.5.3 Two incomparable c.e. degrees . . . . . . . . . . . . . . . 42

    1.6 Models for second order number theory . . . . . . . . . . . . . . 441.7 Subrecursion theory . . . . . . . . . . . . . . . . . . . . . . . . . 46

    1.7.1 Complexity . . . . . . . . . . . . . . . . . . . . . . . . . . 461.7.2 Ackermann revisited . . . . . . . . . . . . . . . . . . . . . 461.7.3 Ordinal notation . . . . . . . . . . . . . . . . . . . . . . . 471.7.4 A subrecursive hierarchy . . . . . . . . . . . . . . . . . . . 50

    1.8 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    2 Generalized Computability Theory 592.1 Computing with function arguments . . . . . . . . . . . . . . . . 59

    2.1.1 Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . 602.1.2 Associates . . . . . . . . . . . . . . . . . . . . . . . . . . . 612.1.3 Uniform continuity and the Fan Functional . . . . . . . . 62

    2.2 Computing relative to a functional oftype 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

    1

  • 2.3 2E versus continuity . . . . . . . . . . . . . . . . . . . . . . . . . 672.4 The Hyperarithmetical sets . . . . . . . . . . . . . . . . . . . . . 71

    2.4.1 Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712.4.2 0k-sets etc. . . . . . . . . . . . . . . . . . . . . . . . . . . 732.4.3 Semicomputability in 2E and Gandy Selection . . . . . . 762.4.4 Characterising the hyperarithmetical sets . . . . . . . . . 79

    2.5 Typed -calculus and PCF . . . . . . . . . . . . . . . . . . . . . 802.5.1 Syntax of PCF . . . . . . . . . . . . . . . . . . . . . . . . 802.5.2 Operational semantics for PCF . . . . . . . . . . . . . . 822.5.3 A denotational semantics for PCF . . . . . . . . . . . . . 84

    2.6 Exercises to Chapter 2 . . . . . . . . . . . . . . . . . . . . . . . . 86

    3 Non-trivial exercises and minor projects 90

    2

  • Preface

    This compendium will be the curriculum text for the course on ComputabilityTheory at the University of Oslo, Autumn 2010. The compendium is based onchapters 3 and 4 of the compendium for Mathematical Logic II from 2005, [3]In its present form, the compendium may be used free of charge by anyone, butif someone uses it for an organized course, the author would like to be informed.

    Blindern, 16.08.2010

    Dag Normann

    3

  • Introduction

    This compendium is written primarily as a text for the course MAT4630 - Com-putability Theory given at the University of Oslo, Norway. The compendium isessentially consisting of two parts, Classical Computability Theory and Gener-alized Computability Theory. In Chapter 1 we use a Kleene-style introductionto the class of computable functions, and we will discuss the recursion theorem,c.e. sets, Turing degrees, basic priority arguments, the existence of minimaldegrees and a few other results.In Chapter 2 we give an introduction to computations relative to type 2 func-tionals, the hyperarithmetical sets and, to some extent, to PCF.

    We will assume that the reader is familiar with the standard vocabulary oflogic and set theory, but no advanced background from logic is required.

    Both chapters are supplied with a set of exercises at the end, some simpleand some hard. The exercises are integrated parts of the text, and at the endthe students are assumed to have worked through most of them. The philosophybehind this is that students have to work through some of the proofs themselvesin order to really understand the subject and being able to use it in othercontexts.

    Chapter 3 will consist of just exercises. These are not integrated parts, butchallenges the eager reader/student might like to face.The compendium is not to be considered as a complete textbook. For instance,it is scarce on references, and we do not give proper credit for the theorems weprove.

    At the end, there is a subject index and a short bibliography. On request, itis possible to extend both parts, and then to make these revised parts available.

    Suggestions for further reading

    Cooper [1]

    Odifreddi [4]

    Rogers [5]

    Sacks [6]

    Soare [7]

    Streicher [8]

    There are many other texts available. Still maybe Rogers [5] and Odifreddi [4]are the most accessible introductory texts available.

    4

  • Chapter 1

    Classical ComputabilityTheory

    1.1 The foundation, Turings analysis

    In Leary [2] (the text book used locally for the introductory course on logic) therecursive functions are defined as those that can be represented in elementarynumber theory. f : Nk N is recursive if there is a formula (x1, . . . , xk, y)such that for all n1, . . . , nk,m we have that f(n1, . . . , nk) = m if and only if

    N ` (cn1 , . . . , cnk , y) y = cm.

    Here cn is the numeral for n, and N is elementary number theory.The advantage of this definition is that it is well suited for proving Godels

    incompleteness theorem without introducing too many new concepts. The prob-lem is that there is absolutely no conceptual analysis of the notion of computabil-ity behind this definition.

    Godel defines a class of recursive functions by recursion (pun intended). Hisaim is to define a sufficiently rich class for handling algorithms for e.g. substitu-tion of a term for a variable, and for coding the meta-theory of a formal theory,but sufficiently simple to enable us to show that any recursive function will bedefinable, and actually, representable as described above. Godels computablefunctions are now known as the -recursive ones.

    We are going to base our study of computability on an approach due toKleene, and we are going to restrict ourselves to computable functions definedon the natural numbers. In many respects, computing can be described asmanipulation of symbols following a given set of rules. The symbols are not thennatural numbers, and different ways of representing natural numbers (binary,decadic, via numerals, Roman figures etc.) might give different concepts ofcomputing with numbers.

    The best mathematical model for computability and computations is dueto Alan Turing. He defined what is now known as Turing machines, small

    5

  • finite state machines operating on an infinite one-dimensional tape and doingsymbol manipulations on this tape. The machine will, between each step of thecomputation, be in one of finitely many states. It will read one of the symbolson the tape, and dependent of the state it is in and the symbol on the tape thatit reads, it will according to a fixed rule change its state, rewrite the symboland move to the symbol to the right or to the left. It may of course stay inthe same state, it may of course keep the symbol on the tape as it is, but it ishardly convenient to let it stay where it is. We think of the tape as consistingof squares, like an old fashioned movie-tape.

    A Turing machine M is determined by

    1. A finite alphabet including one special symbol Bl for an empty squareof the tape.

    2. A finite set K of states, with one special state s K called the initialstate.

    3. A partial function : (K) (K {L,R}), where L means leftand R means right.

    In the literature you will find many variations in the definition of a Turingmachine, but they all have the same computational power. In this exposition,we decided to let the function , which rules the action of the machine, bepartial. If (, p) is undefined, the machine will be in a halting situation, whichmeans that the computation comes to an end. We are not going to give a precisedefinition of the operational semantics for Turing machines, but are content withan intuitive description:

    The operational semantics of Turing Machines

    Let M = ,K, s, be a Turing machine.The starting configuration of M will consist of a word w (called the input) in written on an otherwise blank tape that is infinite in both directions, a positionon the tape and the initial state s.At each step, the machine M may enter a new state, rewrite the symbol at itsposition on the tape and shift its position one square to the right or to the left,all according to the function .If M is in stage p and reads the symbol , and (, p) is undefined, M halts.Then we who observe M will know this, and we will be able to read the contentof the tape, which will be called the output.

    Normally there will be s