Results 1 - 10
of
18
Type-Based Termination of Recursive Definitions
, 2002
"... This article The purpose of this paper is to introduce b, a simply typed -calculus that supports type-based recursive definitions. Although heavily inspired from previous work by Giménez (Giménez 1998) and closely related to recent work by Amadio and Coupet (Amadio and Coupet-Grimal 1998), the techn ..."
Abstract
-
Cited by 30 (3 self)
- Add to MetaCart
This article The purpose of this paper is to introduce b, a simply typed -calculus that supports type-based recursive definitions. Although heavily inspired from previous work by Giménez (Giménez 1998) and closely related to recent work by Amadio and Coupet (Amadio and Coupet-Grimal 1998), the technical machinery behind our system puts a slightly different emphasis on the interpretation of types. More precisely, we formalize the notion of type-based termination using a restricted form of type dependency (a.k.a. indexed types), as popularized by (Xi and Pfenning 1998; Xi and Pfenning 1999). This leads to a simple and intuitive system which is robust under several extensions, such as mutually inductive datatypes and mutually recursive function definitions; however, such extensions are not treated in the paper
Termination Checking with Types
, 1999
"... The paradigm of type-based termination is explored for functional programming with recursive data types. The article introduces , a lambda-calculus with recursion, inductive types, subtyping and bounded quanti cation. Decorated type variables representing approximations of inductive types ..."
Abstract
-
Cited by 25 (6 self)
- Add to MetaCart
The paradigm of type-based termination is explored for functional programming with recursive data types. The article introduces , a lambda-calculus with recursion, inductive types, subtyping and bounded quanti cation. Decorated type variables representing approximations of inductive types are used to track the size of function arguments and return values. The system is shown to be type safe and strongly normalizing. The main novelty is a bidirectional type checking algorithm whose soundness is established formally.
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 23 (9 self)
- Add to MetaCart
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 higher-order 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 non-strictly positive types and inductive-recursive types together with non-free constructors and pattern-matching on defined symbols. 1.
Inductive Types in the Calculus of Algebraic Constructions
, 2005
"... 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 higher-order ..."
Abstract
-
Cited by 13 (4 self)
- Add to MetaCart
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 higher-order 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 non-strictly positive types and inductive-recursive types together with non-free constructors and pattern-matching on defined symbols. 1.
Monotone Inductive and Coinductive Constructors of Rank 2
- Proceedings of CSL 2001
, 2001
"... A generalization of positive inductive and coinductive types to monotone inductive and coinductive constructors of rank 1 and rank 2 is described. The motivation is taken from initial algebras and nal coalgebras in a functor category and the Curry-Howard-correspondence. The denition of the system as ..."
Abstract
-
Cited by 9 (4 self)
- Add to MetaCart
A generalization of positive inductive and coinductive types to monotone inductive and coinductive constructors of rank 1 and rank 2 is described. The motivation is taken from initial algebras and nal coalgebras in a functor category and the Curry-Howard-correspondence. The denition of the system as a -calculus requires an appropriate denition of monotonicity to overcome subtle problems, most notably to ensure that the (co-)inductive constructors introduced via monotonicity of the underlying constructor of rank 2 are also monotone as constructors of rank 1. The problem is solved, strong normalization shown, and the notion proven to be wide enough to cover even highly complex datatypes. 1
Generalized Iteration and Coiteration for Higher-Order Nested Datatypes
- PROC. OF FOSSACS 2003
, 2003
"... We solve the problem of extending Bird and Paterson's generalized folds for nested datatypes and its dual to inductive and coinductive constructors of arbitrarily high ranks by appropriately generalizing Mendler-style (co)iteration. Characteristically to Mendler-style schemes of disciplined (co)recu ..."
Abstract
-
Cited by 8 (5 self)
- Add to MetaCart
We solve the problem of extending Bird and Paterson's generalized folds for nested datatypes and its dual to inductive and coinductive constructors of arbitrarily high ranks by appropriately generalizing Mendler-style (co)iteration. Characteristically to Mendler-style schemes of disciplined (co)recursion, the schemes we propose do not rest on notions like positivity or monotonicity of a constructor and facilitate programming in a natural and elegant style close to programming with the customary letrec construct, where the typings of the schemes, however, guarantee termination. For rank 2, a smoothened version of Bird and Paterson's generalized folds and its dual are achieved; for rank 1, the schemes instantiate to Mendler's original (re)formulation of iteration and coiteration. Several examples demonstrate the power of the approach. Strong normalization of our proposed extension of system F of higherorder parametric polymorphism is proven by a reduction-preserving embedding into pure F .
(Co-)iteration for higher-order nested datatypes
- POST-CONF. PROC. OF IST WG TYPES 2ND ANN. MEETING, TYPES'02, LECT. NOTES IN COMPUT. SCI
, 2003
"... The problem of defining iteration for higher-order nested datatypes of arbitrary (finite) rank is solved within the framework of System F ω of higher-order parametric polymorphism. The proposed solution heavily relies on a general notion of monotonicity as opposed to a syntactic criterion on the sh ..."
Abstract
-
Cited by 8 (5 self)
- Add to MetaCart
The problem of defining iteration for higher-order nested datatypes of arbitrary (finite) rank is solved within the framework of System F ω of higher-order parametric polymorphism. The proposed solution heavily relies on a general notion of monotonicity as opposed to a syntactic criterion on the shape of the type constructors such as positivity or even being polynomial. Its use is demonstrated for some rank-2 heterogeneous/nested datatypes such as powerlists and de Bruijn terms with explicit substitutions. An important feature is the availability of an iterative definition of the mapping operation (the functoriality) for those rank-1 type transformers (i. e., functions from types to types) arising as least fixed-points of monotone rank-2 type transformers. Strong normalization is shown by an embedding into F ω. The results dualize to greatest fixed-points, hence to coinductive constructors with coiteration.
Mendler-Style Inductive Types, Categorically
- NORDIC JOURNAL OF COMPUTING 6(1999), 343 361
, 1999
"... We present a basis for a category-theoretic account of Mendler-style inductive types. The account is based on suitably defined concepts of Mendler-style algebra and algebra homomorphism; Mendler-style inductive types are identified with initial Mendler-style algebras. We use the identification to ob ..."
Abstract
-
Cited by 6 (4 self)
- Add to MetaCart
We present a basis for a category-theoretic account of Mendler-style inductive types. The account is based on suitably defined concepts of Mendler-style algebra and algebra homomorphism; Mendler-style inductive types are identified with initial Mendler-style algebras. We use the identification to obtain a reduction of conventional inductive types to Mendler-style inductive types and a reduction in the presence of certain restricted existential types of Mendler-style inductive types to conventional inductive types.
A general method to prove the normalization theorem for first and second order typed λ-calculi
- Mathematical Structures in Computer Science
, 1999
"... and second order typed λ-calculi ..."
Coding Recursion a la Mendler (Extended Abstract)
- Department of Computer Science, Utrecht University
, 2000
"... Abstract We advocate the Mendler style of coding terminating recursion schemes as combinators by showing on the example of two simple and much used schemes (course-of-value iteration and simultaneous iteration) that choosing the Mendler style can sometimes lead to handier constructions than followin ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
Abstract We advocate the Mendler style of coding terminating recursion schemes as combinators by showing on the example of two simple and much used schemes (course-of-value iteration and simultaneous iteration) that choosing the Mendler style can sometimes lead to handier constructions than following the construction style of cata and para like combinators. 1 Introduction This paper is intended as an advert for something we call the Mendler style. This is a not too widely known style of coding terminating recursion schemes by combinators that di ers from the construction style of the famous cata and para combinators (for iteration and primitive-recursion, respectively) [Mal90,Mee92], here called the conventional style. The paper ar...

