Results 1  10
of
10
Iteration and Coiteration Schemes for HigherOrder and Nested Datatypes
, 2004
"... This article studies the implementation of inductive and coinductive constructors of higher kinds (higherorder nested datatypes) in typed term rewriting, with emphasis on the choice of the iteration and coiteration constructions to support as primitive. We propose and compare several wellbehaved e ..."
Abstract

Cited by 16 (5 self)
 Add to MetaCart
This article studies the implementation of inductive and coinductive constructors of higher kinds (higherorder nested datatypes) in typed term rewriting, with emphasis on the choice of the iteration and coiteration constructions to support as primitive. We propose and compare several wellbehaved extensions of System with some form of iteration and coiteration uniform in all kinds. In what we call Mendlerstyle systems, the iterator and coiterator have a computational behavior similar to the general recursor, but their types guarantee termination. In conventionalstyle systems, monotonicity witnesses are used for a notion of monotonicity de ned uniformly for all kinds. Our most expressive systems GMIt of generalized Mendler resp. conventional (co)iteration encompass Martin, Gibbons and Bailey's ecient folds for rank2 inductive types. Strong normalization of all systems considered is proved by providing an embedding of the basic Mendlerstyle system MIt into System F .
Generalized Iteration and Coiteration for HigherOrder 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 Mendlerstyle (co)iteration. Characteristically to Mendlerstyle schemes of disciplined (co ..."
Abstract

Cited by 8 (5 self)
 Add to MetaCart
(Show Context)
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 Mendlerstyle (co)iteration. Characteristically to Mendlerstyle 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 reductionpreserving embedding into pure F .
Recursion on nested datatypes in dependent type theory
 Logic and Theory of Algorithms. Volume 5028 of Lecture Notes in Computer Science
, 2008
"... Abstract. Nested datatypes are families of datatypes that are indexed over all types and where the datatype constructors relate different members of the family. This may be used to represent variable binding or to maintain certain invariants through typing. In dependent type theory, a major concern ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
(Show Context)
Abstract. Nested datatypes are families of datatypes that are indexed over all types and where the datatype constructors relate different members of the family. This may be used to represent variable binding or to maintain certain invariants through typing. In dependent type theory, a major concern is the termination of all expressible programs, so that types that depend on object terms can still be typechecked mechanically. Therefore, we study iteration and recursion schemes that have this termination guarantee throughout. This is not based on syntactic criteria (recursive calls with “smaller ” arguments) but just on types (“typebased termination”). An important concern are reasoning principles that are compatible with the ambient type theory, in our case induction principles. In previous work, the author has proposed an abstract description of nested datatypes together with a mapping operation (like map for lists) and an iterator on the term side and an induction principle on the logical side that could all be implemented within the Coq system (with impredicative Set that is just needed for the justification, not for the definition and the examples). For verification purposes, it is important to have naturality theorems for the obtained iterative functions. Although intensional type theory does not provide naturality in general, criteria for naturality could be established that are met in case studies on “bushes” and representations of lambda terms (also with explicit flattening). The new contribution is an extension of this abstract description to full primitive recursion and its illustration by way of examples that have been carried out in Coq. Unlike the iterative system, we do not yet have a justification within Coq. 1
Substitution in nonwellfounded . . .
 ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE 82 NO. 1 (2003)
, 2003
"... Inspired from the recent developments in theories of nonwellfounded syntax (coinductively defined languages) and of syntax with binding operators, the structure of algebras of wellfounded and nonwellfounded terms is studied for a very general notion of signature permitting both simple variable bin ..."
Abstract
 Add to MetaCart
Inspired from the recent developments in theories of nonwellfounded syntax (coinductively defined languages) and of syntax with binding operators, the structure of algebras of wellfounded and nonwellfounded terms is studied for a very general notion of signature permitting both simple variable binding operators as well as operators of explicit substitution. This is done in an extensional mathematical setting of initial algebras and final coalgebras of endofunctors on a functor category. In the nonwellfounded case, the fundamental operation of substitution is more beneficially defined in terms of primitive corecursion than coiteration.
unknown title
"... Nested datatypes with generalized Mendler iteration: map fusion and the example of the representation of untyped lambda calculus with explicit flattening ..."
Abstract
 Add to MetaCart
(Show Context)
Nested datatypes with generalized Mendler iteration: map fusion and the example of the representation of untyped lambda calculus with explicit flattening
Iteration and Coiteration Schemes for HigherOrder and Nested Datatypes
"... This article studies the implementation of inductive and coinductive constructors of higher kinds (higherorder nested datatypes) in typed term rewriting, with emphasis on the choice of the iteration and coiteration constructions to support as primitive. We propose and compare several wellbehaved e ..."
Abstract
 Add to MetaCart
(Show Context)
This article studies the implementation of inductive and coinductive constructors of higher kinds (higherorder nested datatypes) in typed term rewriting, with emphasis on the choice of the iteration and coiteration constructions to support as primitive. We propose and compare several wellbehaved extensions of System F ω with some form of iteration and coiteration uniform in all kinds. In what we call Mendlerstyle systems, the iterator and coiterator have a computational behavior similar to the general recursor, but their types guarantee termination. In conventionalstyle systems, monotonicity witnesses are used for a notion of monotonicity defined uniformly for all kinds. Our most expressive systems GMIt ω and GIt ω of generalized Mendler resp. conventional (co)iteration encompass Martin, Gibbons and Bailey’s efficient folds for rank2 inductive types. Strong normalization of all systems considered is proved by providing an embedding of the basic Mendlerstyle system MIt ω into System F ω.
A Datastructure for Iterated Powers
, 2006
"... Abstract. Bushes are considered as the first example of a truly nested datatype, i. e., a family of datatypes indexed over all types where a constructor argument not only calls this family with a changing index but even with an index that involves the family itself. For the time being, no induction ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. Bushes are considered as the first example of a truly nested datatype, i. e., a family of datatypes indexed over all types where a constructor argument not only calls this family with a changing index but even with an index that involves the family itself. For the time being, no induction principles for these datatypes are known. However, the author has introduced with Abel and Uustalu (TCS 333(12), pp. 366, 2005) iteration schemes that guarantee to define only terminating functions on those datatypes. The article uses a generalization of Bushes to nfold selfapplication and shows how to define elements of these types that have a number of data entries that is obtained by iterated raising to the power of n. Moreover, the data entries are just all the nbranching trees up to a certain height. The real question is how to extract this list of trees from that complicated data structure and to prove this extraction correct. Here, we use the “refined conventional iteration ” from the cited article for the extraction and describe a verification that has been formally verified inside Coq with its predicative notion of set. 1