September 3, 2019

Thursday, 8:30–10:00, T 406/1, beginning October 10 2019.

In contrast to courses like Design and Analysis of Algorithms, where specific algorithms are sought for specific problems, this course deals with the very notion of computability. What exactly do we mean, when we state that a problem can or cannot be solved algorithmically? And how can we prove rigorously that no algorithmic solution exists in certain cases? A famous result of this type (beyond the scope of this course) is the solution of Hilbert’s tenth problem: no algorithm can decide whether or not a given (polynomial) Diophantine equation has a solution (in the realm of integers). In order to show negative results of this kind, the notion of partial recursive function is introduced as a mathematically precise equivalent for the informal notion of algorithmically computable partial function, and mathematical properties of such functions are investigated.

One natural sequel is the subject of abstract complexity, one of the topics in the follow-up course Decidability- and Complexity Classes.

Chapters 1–6 deal with the following issues:

- Partial recursive functions are defined formally, along with related notions like recursive function, recursive set and recursively enumerable set. For instance, a set A is recursively enumerable iff there exists a procedure for generating (enumerating) A.
- It is shown that numerous partial functions commonly encountered in mathematics are partial recursive, including all functions computed by computer programs in languages like ALGOL, C, etc. This of course provides considerable support for the claim that the class of partial recursive functions coincides with that of algorithmically computable partial functions. Also, it is shown that many mathematical operations, when applied to partial recursive functions, yield again partial recursive functions. Similar results are obtained for other basic notions of computability.
- The first group of results are established which are really typical for recursive function theory; they include the basic enumeration- and S-m-n-theorems, various characterizations of recursively enumerable sets, and the first undecidability result. The diagonal method is introduced as a basic proof technique.
- Some alternative ways are discussed how the class of partial recursive functions could have been defined in the first place; two of the most well-known ones use μ-recursion and Turing machines.
- Further undecidability results are established by the method of reduction. This chapter contains other typical results from recursive function theory, for instance, the famous fixed-point theorem.
- Elementary theory of reducibility. Intuitively, a problem P is reducible to a problem Q if any (hypothetical) algorithm for solving Q yields an algorithm for solving P. This intuitive concept can be made mathematically precise in various (nonequivalent) ways.

Lecture notes will be handed out. Among textbooks we mention

- G. Tourlakis: Computability. Reston Publishing Company 1984.
- W. Brainerd, L. Landweber: Theory of Computation. Wiley 1974.
- M. Sipser: Introduction to the Theory of Computation. PWS Publishing Company 2005.

Oral exam by agreement.