Writing Constructive Proofs Yielding Ecient Extracted Programs
Abstract:
The NuPRL system [3] was designed for interactive writing of machine{checked constructive proofs and for extracting algorithms from the proofs. The extracted algorithms are guaranteed to be correct which makes it possible to use NuPRL as a programming language with built-in verication[1,5,7,8,9,10]. However it turned out that proofs written without algorithmic eciency in mind often produce very inecient algorithms | exponential and double-exponential ones for problems that can be solved in polynomial time. In this paper we present some general principles of ecient programming in constructive type theory as well as describe a case study that shows how these principles apply to particular problems. We consider the proof of the Myhill{Nerode automata minimization theorem from the NuPRL automata library [4] which leaded to a double{exponential (in time) extracted program. Systematic use of the presented principles allowed us to build a new complexity cautious proof leading to polynomial-time algorithm extracted by the same NuPRL extractor. We believe that the principles presented in this paper in combination with other methods may lead to an ecient technique of programming-by-proofs.
Citations
| 207 | Formal Language and Their Relation to Automata, Addison-Wesley Publishing Com – Hopcroft, Ullman - 1969 |
| 82 | Proofs as programs – BATES, CONSTABLE - 1985 |
| 56 | Implementing Mathematics with the Nuprl Development System – Constable, Allen, et al. - 1986 |
| 49 | Synthesis of ML programs in the system Coq – Paulin-Mohring, Werner - 1993 |
| 20 | Writing programs that construct proofs – Constable, Knoblock, et al. - 1984 |
| 14 | Automated Complexity Analysis of Nuprl Extracted Programs – Benzinger - 1999 |
| 7 | Extracting and executing programs developed in the inductive constructions system: a progress report – Paulin, Werner - 1990 |
| 6 | The Extraction and Optimization of Programs from Constructive Proofs – Sasaki - 1985 |
| 3 | Constructively formalizing automata theory – Constable, Jackson, et al. - 1998 |
| 1 | Programming in Martin-Lof's Type Theory," Oxford Sciences Publication – Nordstrom, Petersson, et al. - 1990 |

