Program Extraction from Normalization Proofs

This paper describes formalizations of Tait's normalization proof for the simply typed λ-calculus in the proof assistants Minlog, Coq and Isabelle/HOL. From the formal proofs programs are machine-extracted that implement variants of the well-known normalization-by-evaluation algorithm. The case study is used to test and compare the program extraction machineries of the three proof assistants in a non-trivial setting.

[1]  Helmut Schwichtenberg,et al.  Normalisation by Evaluation , 1998, Prospects for Hardware Foundations.

[2]  Olivier Danvy,et al.  Program Extraction from Proofs of Weak Head Normalization , 2005 .

[3]  Pierre Letouzey,et al.  A New Extraction for Coq , 2002, TYPES.

[4]  Christine Paulin-Mohring,et al.  Synthesis of ML Programs in the System Coq , 1993, J. Symb. Comput..

[5]  Matthias Eberl Normalization by evaluation , 2002 .

[6]  Ulrich Berger,et al.  Program Extraction from Normalization Proofs , 2006, Stud Logica.

[7]  Helmut Schwichtenberg,et al.  Minimal logic for computable functions , 1993 .

[8]  Martin Hofmann,et al.  Reduction-free normalisation for a polymorphic system , 1996, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

[9]  Bas Spitters,et al.  Implicit and noncomputational arguments using monads , 2005 .

[10]  Thorsten Altenkirch,et al.  Proving Strong Normalization of CC by Modifying Realizability Semantics , 1994, TYPES.

[11]  A. Troelstra Metamathematical investigation of intuitionistic arithmetic and analysis , 1973 .

[12]  D. Dalen Review: Georg Kreisel, Godel's Intepretation of Heyting's Arithmetic; G. Kreisel, Relations Between Classes of Constructive Functionals; Georg Kreisel, A. Heyting, Interpretation of Analysis by Means of Constructive Functionals of Finite Types , 1971 .

[13]  Stefan Berghofer,et al.  Proofs, programs and executable specifications in higher order logic , 2003 .

[14]  Thierry Coquand,et al.  Intuitionistic model constructions and normalization proofs , 1997, Mathematical Structures in Computer Science.

[15]  Christine Paulin-Mohring,et al.  Extracting ω's programs from proofs in the calculus of constructions , 1989, POPL '89.

[16]  Glynn Winskel,et al.  Using Information Systems to Solve Recursive Domain Equations , 1991, Inf. Comput..

[17]  Catarina Coquand,et al.  From Semantics to Rules: A Machine Assisted Analysis , 1993, CSL.

[18]  Pierre Letouzey,et al.  Programmation fonctionnelle certifiée : L'extraction de programmes dans l'assistant Coq. (Certified functional programming : Program extraction within Coq proof assistant) , 2004 .

[19]  Martin Hofmann,et al.  Normalization by evaluation for typed lambda calculus with coproducts , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[20]  de Ng Dick Bruijn Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .