Results 1  10
of
73
Tagless Staged Interpreters for Typed Languages
 In the International Conference on Functional Programming (ICFP ’02
, 2002
"... Multistage programming languages provide a convenient notation for explicitly staging programs. Staging a definitional interpreter for a domain specific language is one way of deriving an implementation that is both readable and efficient. In an untyped setting, staging an interpreter "removes ..."
Abstract

Cited by 55 (12 self)
 Add to MetaCart
Multistage programming languages provide a convenient notation for explicitly staging programs. Staging a definitional interpreter for a domain specific language is one way of deriving an implementation that is both readable and efficient. In an untyped setting, staging an interpreter "removes a complete layer of interpretive overhead", just like partial evaluation. In a typed setting however, HindleyMilner type systems do not allow us to exploit typing information in the language being interpreted. In practice, this can have a slowdown cost factor of three or more times.
Alphastructural recursion and induction
 Journal of the ACM
, 2006
"... The nominal approach to abstract syntax deals with the issues of bound names and αequivalence by considering constructions and properties that are invariant with respect to permuting names. The use of permutations gives rise to an attractively simple formalisation of common, but often technically i ..."
Abstract

Cited by 52 (6 self)
 Add to MetaCart
(Show Context)
The nominal approach to abstract syntax deals with the issues of bound names and αequivalence by considering constructions and properties that are invariant with respect to permuting names. The use of permutations gives rise to an attractively simple formalisation of common, but often technically incorrect uses of structural recursion and induction for abstract syntax modulo αequivalence. At the heart of this approach is the notion of finitely supported mathematical objects. This paper explains the idea in as concrete a way as possible and gives a new derivation within higherorder logic of principles of αstructural recursion and induction for αequivalence classes from the ordinary versions of these principles for abstract syntax trees.
Indexed InductionRecursion
, 2001
"... We give two nite axiomatizations of indexed inductiverecursive de nitions in intuitionistic type theory. They extend our previous nite axiomatizations of inductiverecursive de nitions of sets to indexed families of sets and encompass virtually all de nitions of sets which have been used in ..."
Abstract

Cited by 50 (17 self)
 Add to MetaCart
We give two nite axiomatizations of indexed inductiverecursive de nitions in intuitionistic type theory. They extend our previous nite axiomatizations of inductiverecursive de nitions of sets to indexed families of sets and encompass virtually all de nitions of sets which have been used in intuitionistic type theory. The more restricted of the two axiomatization arises naturally by considering indexed inductiverecursive de nitions as initial algebras in slice categories, whereas the other admits a more general and convenient form of an introduction rule.
A finite axiomatization of inductiverecursive definitions
 Typed Lambda Calculi and Applications, volume 1581 of Lecture Notes in Computer Science
, 1999
"... Inductionrecursion is a schema which formalizes the principles for introducing new sets in MartinLöf’s type theory. It states that we may inductively define a set while simultaneously defining a function from this set into an arbitrary type by structural recursion. This extends the notion of an in ..."
Abstract

Cited by 48 (15 self)
 Add to MetaCart
(Show Context)
Inductionrecursion is a schema which formalizes the principles for introducing new sets in MartinLöf’s type theory. It states that we may inductively define a set while simultaneously defining a function from this set into an arbitrary type by structural recursion. This extends the notion of an inductively defined set substantially and allows us to introduce universes and higher order universes (but not a Mahlo universe). In this article we give a finite axiomatization of inductiverecursive definitions. We prove consistency by constructing a settheoretic model which makes use of one Mahlo cardinal. 1
Modelling General Recursion in Type Theory
 Mathematical Structures in Computer Science
, 2002
"... Constructive type theory is an expressive programming language where both algorithms and proofs can be represented. However, general recursive algorithms have no direct formalisation in type theory since they contain recursive calls that satisfy no syntactic condition guaranteeing termination. ..."
Abstract

Cited by 44 (6 self)
 Add to MetaCart
Constructive type theory is an expressive programming language where both algorithms and proofs can be represented. However, general recursive algorithms have no direct formalisation in type theory since they contain recursive calls that satisfy no syntactic condition guaranteeing termination.
A Brief Overview of Agda – A Functional Language with Dependent Types
"... Abstract. We give an overview of Agda, the latest in a series of dependently typed programming languages developed in Gothenburg. Agda is based on MartinLöf’s intuitionistic type theory but extends it with numerous programming language features. It supports a wide range of inductive data types, inc ..."
Abstract

Cited by 36 (0 self)
 Add to MetaCart
(Show Context)
Abstract. We give an overview of Agda, the latest in a series of dependently typed programming languages developed in Gothenburg. Agda is based on MartinLöf’s intuitionistic type theory but extends it with numerous programming language features. It supports a wide range of inductive data types, including inductive families and inductiverecursive types, with associated flexible patternmatching. Unlike other proof assistants, Agda is not tacticbased. Instead it has an Emacsbased interface which allows programming by gradual refinement of incomplete typecorrect terms. 1
Inductionrecursion and initial algebras
 Annals of Pure and Applied Logic
, 2003
"... 1 Introduction Inductionrecursion is a powerful definition method in intuitionistic type theory in the sense of Scott ("Constructive Validity") [31] and MartinL"of [17, 18, 19]. The first occurrence of formal inductionrecursion is MartinL"of's definition ..."
Abstract

Cited by 33 (12 self)
 Add to MetaCart
(Show Context)
1 Introduction Inductionrecursion is a powerful definition method in intuitionistic type theory in the sense of Scott (&quot;Constructive Validity&quot;) [31] and MartinL&quot;of [17, 18, 19]. The first occurrence of formal inductionrecursion is MartinL&quot;of's definition of a universe `a la Tarski [19], which consists of a set U
The Calculus of Algebraic Constructions
 In Proc. of the 10th Int. Conf. on Rewriting Techniques and Applications, LNCS 1631
, 1999
"... Abstract. In a previous work, we proved that an important part of the Calculus of Inductive Constructions (CIC), the basis of the Coq proof assistant, can be seen as a Calculus of Algebraic Constructions (CAC), an extension of the Calculus of Constructions with functions and predicates defined by hi ..."
Abstract

Cited by 33 (11 self)
 Add to MetaCart
(Show Context)
Abstract. In a previous work, we proved that an important part of the Calculus of Inductive Constructions (CIC), the basis of the Coq proof assistant, can be seen as a Calculus of Algebraic Constructions (CAC), an extension of the Calculus of Constructions with functions and predicates defined by higherorder rewrite rules. In this paper, we prove that almost all CIC can be seen as a CAC, and that it can be further extended with nonstrictly positive types and inductiverecursive types together with nonfree constructors and patternmatching on defined symbols. 1.
Nested General Recursion and Partiality in Type Theory
 Theorem Proving in Higher Order Logics: 14th International Conference, TPHOLs 2001, volume 2152 of Lecture Notes in Computer Science
, 2000
"... We extend Bove's technique for formalising simple general recursive algorithms in constructive type theory to nested recursive algorithms. The method consists in defining an inductive specialpurpose accessibility predicate, that characterises the inputs on which the algorithm terminates. As a ..."
Abstract

Cited by 30 (10 self)
 Add to MetaCart
(Show Context)
We extend Bove's technique for formalising simple general recursive algorithms in constructive type theory to nested recursive algorithms. The method consists in defining an inductive specialpurpose accessibility predicate, that characterises the inputs on which the algorithm terminates. As a result, the typetheoretic version of the algorithm can be defined by structural recursion on the proof that the input values satisfy this predicate. This technique results in definitions in which the computational and logical parts are clearly separated; hence, the typetheoretic version of the algorithm is given by its purely functional content, similarly to the corresponding program in a functional programming language. In the case of nested recursion, the special predicate and the typetheoretic algorithm must be defined simultaneously, because they depend on each other. This kind of definitions is not allowed in ordinary type theory, but it is provided in type theories extended wit...
Extensional Equality in Intensional Type Theory
 In LICS 99
, 1999
"... We present a new approach to introducing an extensional propositional equality in Intensional Type Theory. Our construction is based on the observation that there is a sound, intensional setoid model in Intensional Type theory with a proofirrelevant universe of propositions and rules for  and t ..."
Abstract

Cited by 30 (14 self)
 Add to MetaCart
We present a new approach to introducing an extensional propositional equality in Intensional Type Theory. Our construction is based on the observation that there is a sound, intensional setoid model in Intensional Type theory with a proofirrelevant universe of propositions and rules for  and types. The Type Theory corresponding to this model is decidable, has no irreducible constants and permits large eliminations, which are essential for universes. Keywords. Type Theory, categorical models. 1. Introduction and Summary In Intensional Type Theory (see e.g. [11]) we differentiate between a decidable definitional equality (which we denote by =) and a propositional equality type (Id ( ; ) for any given type ) which requires proof. Typing only depends on definitional equality and hence is decidable. In Intensional Type Theory the type corresponding to the principle of extensionality Ext x2:(x) f;g2(x2:(x)) ( x2 Id (x) (f(x); g(x))) ! Id x2:(x) (f; g) is not...