Results 1 - 10
of
23
Type-directed partial evaluation
- Proceedings of the Twenty-Third Annual ACM Symposium on Principles of Programming Languages
, 1996
"... Abstract. Type-directed partial evaluation stems from the residualization of arbitrary static values in dynamic contexts, given their type. Its algorithm coincides with the one for coercing asubtype value into a supertype value, which itself coincides with the one of normalization in the-calculus. T ..."
Abstract
-
Cited by 195 (38 self)
- Add to MetaCart
Abstract. Type-directed partial evaluation stems from the residualization of arbitrary static values in dynamic contexts, given their type. Its algorithm coincides with the one for coercing asubtype value into a supertype value, which itself coincides with the one of normalization in the-calculus. Type-directed partial evaluation is thus used to specialize compiled, closed programs, given their type. Since Similix, let-insertion is a cornerstone of partial evaluators for callby-value procedural programs with computational e ects. It prevents the duplication of residual computations, and more generally maintains the order of dynamic side e ects in residual programs. This article describes the extension of type-directed partial evaluation to insert residual let expressions. This extension requires the userto annotate arrowtypes with e ect information. It is achieved by delimiting and abstracting control, comparably to continuation-based specialization in direct style. It enables type-directed partial evaluation of e ectful programs (e.g.,ade nitional lambda-interpreter for an imperative language) that are in direct style. The residual programs are in A-normal form. 1
A General Formulation of Simultaneous Inductive-Recursive Definitions in Type Theory
- Journal of Symbolic Logic
, 1998
"... The first example of a simultaneous inductive-recursive definition in intuitionistic type theory is Martin-Löf's universe à la Tarski. A set U0 of codes for small sets is generated inductively at the same time as a function T0 , which maps a code to the corresponding small set, is defined by recursi ..."
Abstract
-
Cited by 56 (9 self)
- Add to MetaCart
The first example of a simultaneous inductive-recursive definition in intuitionistic type theory is Martin-Löf's universe à la Tarski. A set U0 of codes for small sets is generated inductively at the same time as a function T0 , which maps a code to the corresponding small set, is defined by recursion on the way the elements of U0 are generated. In this paper we argue that there is an underlying general notion of simultaneous inductiverecursive definition which is implicit in Martin-Löf's intuitionistic type theory. We extend previously given schematic formulations of inductive definitions in type theory to encompass a general notion of simultaneous induction-recursion. This enables us to give a unified treatment of several interesting constructions including various universe constructions by Palmgren, Griffor, Rathjen, and Setzer and a constructive version of Aczel's Frege structures. Consistency of a restricted version of the extension is shown by constructing a realisability model ...
Program extraction from normalization proofs
- Typed Lambda Calculi and Applications, number 664 in Lecture Notes in Computer Science
, 1993
"... 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 stud ..."
Abstract
-
Cited by 54 (3 self)
- Add to MetaCart
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
Intuitionistic Model Constructions and Normalization Proofs
, 1998
"... We investigate semantical normalization proofs for typed combinatory logic and weak -calculus. One builds a model and a function `quote' which inverts the interpretation function. A normalization function is then obtained by composing quote with the interpretation function. Our models are just like ..."
Abstract
-
Cited by 44 (7 self)
- Add to MetaCart
We investigate semantical normalization proofs for typed combinatory logic and weak -calculus. One builds a model and a function `quote' which inverts the interpretation function. A normalization function is then obtained by composing quote with the interpretation function. Our models are just like the intended model, except that the function space includes a syntactic component as well as a semantic one. We call this a `glued' model because of its similarity with the glueing construction in category theory. Other basic type constructors are interpreted as in the intended model. In this way we can also treat inductively defined types such as natural numbers and Brouwer ordinals. We also discuss how to formalize -terms, and show how one model construction can be used to yield normalization proofs for two different typed -calculi -- one with explicit and one with implicit substitution. The proofs are formalized using Martin-Lof's type theory as a meta language and mechanized using the A...
Type Theory and Programming
, 1994
"... This paper gives an introduction to type theory, focusing on its recent use as a logical framework for proofs and programs. The first two sections give a background to type theory intended for the reader who is new to the subject. The following presents Martin-Lof's monomorphic type theory and an im ..."
Abstract
-
Cited by 21 (2 self)
- Add to MetaCart
This paper gives an introduction to type theory, focusing on its recent use as a logical framework for proofs and programs. The first two sections give a background to type theory intended for the reader who is new to the subject. The following presents Martin-Lof's monomorphic type theory and an implementation, ALF, of this theory. Finally, a few small tutorial examples in ALF are given.
Categorical Reconstruction of a Reduction Free Normalization Proof
, 1995
"... Introduction We present a categorical proof of the normalization theorem for simply typed -calculus, i.e. we derive a computable function nf which assigns to every typed -term a normal form, s.t. M ' N nf(M ) = nf(N ) nf(M ) ' M where ' is fij equality. Both the function nf and its correctness ..."
Abstract
-
Cited by 20 (5 self)
- Add to MetaCart
Introduction We present a categorical proof of the normalization theorem for simply typed -calculus, i.e. we derive a computable function nf which assigns to every typed -term a normal form, s.t. M ' N nf(M ) = nf(N ) nf(M ) ' M where ' is fij equality. Both the function nf and its correctness properties can be deduced from the categorical construction. To substantiate this, we present an ML program in the appendix which can be extracted from our argument. We emphasize that this presentation of normalization is reduction free, i.e. we do not mention term rewriting or use properties of term rewriting systems such as the Church-Rosser property. An immediate consequence of normalization is the decidability of ' but there are other useful corollaries; for instance we can show that
Strong Normalization by Type-Directed Partial Evaluation and Run-Time Code Generation
- Proceedings of the Second International Workshop on Types in Compilation, number 1473 in Lecture Notes in Computer Science
, 1997
"... We investigate the synergy between type-directed partial evaluation and run-time code generation for the Caml dialect of ML. Typedirected partial evaluation maps simply typed, closed Caml values to a representation of their long fij-normal form. Caml uses a virtual machine and has the capability ..."
Abstract
-
Cited by 16 (7 self)
- Add to MetaCart
We investigate the synergy between type-directed partial evaluation and run-time code generation for the Caml dialect of ML. Typedirected partial evaluation maps simply typed, closed Caml values to a representation of their long fij-normal form. Caml uses a virtual machine and has the capability to load byte code at run time. Representing the long fij-normal forms as byte code gives us the ability to strongly normalize higher-order values (i.e., weak head normal forms in ML), to compile the resulting strong normal forms into byte code, and to load this byte code all in one go, at run time.
Extracting a Proof of Coherence for Monoidal Categories from a Proof of Normalization for Monoids
- In TYPES
, 1995
"... . This paper studies the problem of coherence in category theory from a type-theoretic viewpoint. We first show how a Curry-Howard interpretation of a formal proof of normalization for monoids almost directly yields a coherence proof for monoidal categories. Then we formalize this coherence proof in ..."
Abstract
-
Cited by 16 (3 self)
- Add to MetaCart
. This paper studies the problem of coherence in category theory from a type-theoretic viewpoint. We first show how a Curry-Howard interpretation of a formal proof of normalization for monoids almost directly yields a coherence proof for monoidal categories. Then we formalize this coherence proof in intensional intuitionistic type theory and show how it relies on explicit reasoning about proof objects for intensional equality. This formalization has been checked in the proof assistant ALF. 1 Introduction Mac Lane [18, pp.161--165] proved a coherence theorem for monoidal categories. A basic ingredient in his proof is the normalization of object expressions. But it is only one ingredient and several others are needed too. Here we show that almost a whole proof of this coherence theorem is hidden in a Curry-Howard interpretation of a proof of normalization for monoids. The second point of the paper is to contribute to the development of constructive category theory in the sense of Huet a...
Verifying a Semantic βη-Conversion Test for Martin-Löf Type Theory
, 2008
"... Type-checking algorithms for dependent type theories often rely on the interpretation of terms in some semantic domain of values when checking equalities. Here we analyze a version of Coquand’s algorithm for checking the βη-equality of such semantic values in a theory with a predicative universe hi ..."
Abstract
-
Cited by 11 (9 self)
- Add to MetaCart
Type-checking algorithms for dependent type theories often rely on the interpretation of terms in some semantic domain of values when checking equalities. Here we analyze a version of Coquand’s algorithm for checking the βη-equality of such semantic values in a theory with a predicative universe hierarchy and large elimination rules. Although this algorithm does not rely on normalization by evaluation explicitly, we show that similar ideas can be employed for its verification. In particular, our proof uses the new notions of contextual reification and strong semantic equality. The algorithm is part of a bi-directional type checking algorithm which checks whether a normal term has a certain semantic type, a technique notion of semantic domain in order to accommodate a variety of possible implementation techniques, such as normal forms, weak head normal forms, closures, and compiled code. Our aim is to get closer than previous work to verifying the type-checking algorithms which are actually used in practice.

