1. Primitive recursive functions
(a) Prove, from scratch, that the functions a * b, a - 1 (funny minus that never goes below 0), and the remainder function a % b are primitive recursive.
(b) Start by giving a definition of a primitive recursive function, and explain how your procedure for the product a * b fits this general definition.
(c) The notion of a primitive recursive function is a formalization of the for-loop. Translate your description of a * b into a program that uses for-loop(s) to compute the product.
2. Mu-recursive functions
(a) Prove that the functions a * b, a - 1, and a % b are mu-recursive.
(b) Start by giving a definition of a mu-recursive function, and explain how your procedure for computing a * b fits this general definition.
(c) Since division is an inverse operation to multiplication, it may seem reasonable to define the division a / b as the following expression: mu m.(b * m = a). Describe this expression in English and as a while loop, and show, step by step, what happens when we try to compute this expression for a = 2 and b = 3. Describe a correct way of describing a - b by using mu-recursion.
3. Turing machines (TM)
(a) Describe a TM that computes a + b (in unary notation).
(b) Trace your TM for a = 2 and b = 1.
(c) Use your TM to design a new TM for computing composition a + (b + c).
4. Computability in general
(a) Is every computable function primitive recursive? Explain your answer (no need to produce a detailed proof).
(b) Is every computable function mu-recursive? explain your answer. Formulate Church-Turing thesis. Is it a mathematical theorem? a statement about the physical world? can it turn out to be false?
5. Decidable and r.e. sets
(a) Prove that the union and intersection of two decidable sets and a complement to a decidable set are decidable.
(b) Prove that the union and intersection of two r.e. sets are r.e.
(c) Is the complement to a r.e. set always r.e.? Explain your answer.
6. Briefly describe a research project on which you are working for this class.