Title:

Extraction of programs for exact number computation using Agda

This thesis contains the to our knowledge first research project to extract in the theorem prover Agda programs from proofs involving postulated axioms. Our method doesn't require to write a Meta program for extracting programs from proofs. It shows as well the correctness of the machinery. This method has been applied to the extraction of programs about real number computation. The method has been used for showing that the signed digit approximable real numbers are closed under addition, multiplication, and contain the rational numbers. Therefore we obtain in Agda a provably correct program which executes the corresponding operations on signed digit streams. The first part of the thesis introduces axioms about real numbers using postulated data types and functions in Agda without giving any computational rules. Then we investigate some properties of real numbers constructed by Cauchy sequences: we introduce the set of real numbers which are limits of Cauchy sequences of rational numbers (Cauchy Reals) and show that they are closed under addition and multiplication. We also prove that Cauchy Reals are Cauchy complete. Furthermore, we introduce the real numbers in the interval [1,1], which have a binary signed digit representation, i.e. r = 0.d0d1d2..., where di ∈ {1, 0, 1}. This set of real numbers is given as a codata type (SDR). We determine for rational numbers in the interval [1, 1] their SDR and show that SDRs are closed under the average function and the multiplication function. Besides, a finding digit function is defined which determines the first n digits of a stream of signed digits. In the second part of the thesis, a theorem is given which shows the correctness of our method. It shows that under certain conditions our method always normalises and doesn't make use of the axioms. The conditions mainly guarantee that a postulated function or axiom has as result type only a postulated type, so the reduction of elements of algebraic data types to head normal form will not refer to these postulates. Because of our theorem the finding digit function applied to a real number r s.t. SDR r holds normalises to [do, d1,..., dn1] for the first n digit d0d1...dn1 of r. Therefore, we can compute the SDR of rational numbers and from SDRs of real numbers the SDR of their average and product.
