MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Writing Constructive Proofs Yielding Ecient Extracted Programs

Download:
Download as a PDF | Download as a PS
by Aleksey Nogin
http://nogin.org/papers/effproof.ps
Add To MetaCart

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