Lecture Notes in Computer Science
DOI: 10.1007/bfb0037100
|View full text |Cite
|
Sign up to set email alerts
|

Program extraction from normalization proofs

Abstract: 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.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

1
35
0

Publication Types

Select...
8
2

Relationship

1
9

Authors

Journals

citations
Cited by 57 publications
(36 citation statements)
references
References 9 publications
1
35
0
Order By: Relevance
“…We show that types that are well-formed with respect to the conformance of arities (we call such types well-kinded types) can never be infinitely reduced (they are strongly normalizable). The proof of this property is similar to the proof of strong normalization for terms of the simply typed lambda calculus [Tai67,BBLS05]. This similarity is not surprising since well-kinded FGJ ω types are almost isomorphic to well-typed lambda-terms.…”
mentioning
confidence: 71%
“…We show that types that are well-formed with respect to the conformance of arities (we call such types well-kinded types) can never be infinitely reduced (they are strongly normalizable). The proof of this property is similar to the proof of strong normalization for terms of the simply typed lambda calculus [Tai67,BBLS05]. This similarity is not surprising since well-kinded FGJ ω types are almost isomorphic to well-typed lambda-terms.…”
mentioning
confidence: 71%
“…These quantifiers, which were first introduced by Berger [2], can be viewed as a refinement of the Set/Prop distinction in constructive type systems like Coq. Intuitively, a proof of ∀ nc x A(x) (A(x) nonHarrop) represents a procedure that assigns to any x a proof M (x) of A(x) where M (x) does not make "computational use" of x, i.e., the extracted program et(M (x)) does not depend on x. Dually, a proof of ∃ nc x A(x) is a proof of M (x) for some x where the witness x is "hidden", that is, not available for computational use; in fact, ∃ nc can be seen as inductively defined by the clause ∀ nc x (A → ∃ nc x A).…”
Section: Realizabilitymentioning
confidence: 99%
“…Program extraction from proofs is also implemented in Isabelle [Isa] (for algebras) and in Coq [Coq] (cf [BBLS06] for a joint case study). The implementation in Isabelle has been modelled after Minlog's extraction.…”
Section: Related Workmentioning
confidence: 99%