Results 1 - 10
of
10
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.
Generalized Coiteration Schemata
, 2003
"... Coiterative functions can be explained categorically as final coalgebraic morphisms, once coinductive types are viewed as final coalgebras. However, the coiteration schema which arises in this way is too rigid to accommodate directly many interesting classes of circular specifications. In this paper ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
Coiterative functions can be explained categorically as final coalgebraic morphisms, once coinductive types are viewed as final coalgebras. However, the coiteration schema which arises in this way is too rigid to accommodate directly many interesting classes of circular specifications. In this paper, building on the notion of T -coiteration introduced by the third author and capitalizing on recent work on bialgebras by Turi-Plotkin and Bartels, we introduce and illustrate various generalized coiteration patterns. First we show that, by choosing the appropriate monad T , T -coiteration captures naturally a wide range of coiteration schemata, such as the duals of primitive recursion and course-of-value iteration, and mutual coiteration. Then we show that, in the more structured categorical setting of bialgebras, T -coiteration captures guarded coiterations schemata, i.e. specifications where recursive calls appear guarded by predefined algebraic operations.
Ordinals and Interactive Programs
, 2000
"... The work reported in this thesis arises from the old idea, going back to the origins of constructive logic, that a proof is fundamentally a kind of program. If proofs can be ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
The work reported in this thesis arises from the old idea, going back to the origins of constructive logic, that a proof is fundamentally a kind of program. If proofs can be
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...
Generalizing Substitution
, 2003
"... It is well known that, given an endofunctor H on a category C, the initial (A + H−)-algebras (if existing), i.e., the algebras of (wellfounded) H-terms over different variable supplies A, give rise to a monad with substitution as the extension operation (the free monad induced by the functor H). Mo ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
It is well known that, given an endofunctor H on a category C, the initial (A + H−)-algebras (if existing), i.e., the algebras of (wellfounded) H-terms over different variable supplies A, give rise to a monad with substitution as the extension operation (the free monad induced by the functor H). Moss [17] and Aczel, Adámek, Milius and Velebil [2] have shown that a similar monad, which even enjoys the additional special property of having iterations for all guarded substitution rules (complete iterativeness), arises from the inverses of the final (A + H−)-coalgebras (if existing), i.e., the algebras of non-wellfounded H-terms. We show that, upon an appropriate generalization of the notion of substitution, the same can more generally be said about the initial T ′ (A, −)-algebras resp. the inverses of the final T ′ (A, −)coalgebras for any endobifunctor T ′ on any category C such that the functors T ′ (−,X) uniformly carry a monad structure.
Recursion Schemes for Dynamic Programming
- Mathematics of Program Construction, 8th International Conference, MPC 2006
"... Dynamic programming is an algorithm design technique, which allows to improve efficiency by avoiding re-computation of identical subtasks. We present a new recursion combinator, dynamorphism,which captures the dynamic programming recursion pattern with memoization and identify some simple conditions ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Dynamic programming is an algorithm design technique, which allows to improve efficiency by avoiding re-computation of identical subtasks. We present a new recursion combinator, dynamorphism,which captures the dynamic programming recursion pattern with memoization and identify some simple conditions when functions defined by structured general recursion can be redefined as a dynamorphism. The applicability of the new recursion combinator is demonstrated on classical dynamic programming algorithms: Fibonacci numbers, binary partitions, edit distance and longest common subsequence.
Corecursive Algebras: A Study of General Structured Corecursion (Extended Abstract)
"... Abstract. We study general structured corecursion, dualizing the work of Osius, Taylor, and others on general structured recursion. We call an algebra of a functor corecursive if it supports general structured corecursion: there is a unique map to it from any coalgebra of the same functor. The conce ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. We study general structured corecursion, dualizing the work of Osius, Taylor, and others on general structured recursion. We call an algebra of a functor corecursive if it supports general structured corecursion: there is a unique map to it from any coalgebra of the same functor. The concept of antifounded algebra is a statement of the bisimulation principle. We show that it is independent from corecursiveness: Neither condition implies the other. Finally, we call an algebra focusing if its codomain can be reconstructed by iterating structural refinement. This is the strongest condition and implies all the others. 1
Least and Greatest Fixed Points in Intuitionistic Natural Deduction
, 2002
"... This paper is a comparative study of a number of (intensional-semantically distinct) least and greatest fixed point operators that natural-deduction proof systems for intuitionistic logics can be extended with in a proof-theoretically defendable way. Eight pairs of such operators are analysed. The e ..."
Abstract
- Add to MetaCart
This paper is a comparative study of a number of (intensional-semantically distinct) least and greatest fixed point operators that natural-deduction proof systems for intuitionistic logics can be extended with in a proof-theoretically defendable way. Eight pairs of such operators are analysed. The exposition is centered around a cube-shaped classification where each node stands for an axiomatization of one pair of operators as logical constants by intended proof and reduction rules and each arc for a proof- and reduction-preserving encoding of one pair in terms of another. The three dimensions of the cube reflect three orthogonal binary options: conventional-style vs. Mendler-style, basic (``[co]iterative'') vs. enhanced (``primitive-[co]recursive''), simple vs. course-of-value [co]induction. Some of the axiomatizations and encodings are well-known; others, however, are novel; the classification into a cube is also new. The differences between the least fixed point operators considered are illustrated on the example of the corresponding natural number types.
Comonadic Iteration (Abstract)
, 2000
"... this paper, we discuss generic recursion combinators, i.e., combinator codings of recursive function definition schemes working uniformly on any inductive source type of functions. Such combinators are polymorphic in a type constructor inducing an inductive type. Generic recursion schemes are numero ..."
Abstract
- Add to MetaCart
this paper, we discuss generic recursion combinators, i.e., combinator codings of recursive function definition schemes working uniformly on any inductive source type of functions. Such combinators are polymorphic in a type constructor inducing an inductive type. Generic recursion schemes are numerous. The most fundamental and easy to code by a combinator are (simple) iteration and primitive-recursion. Some other schemes that are more general in terms of direct expression power, e.g., the course-of-value strengthenings of iteration and primitive-recursion, are equally useful in programming and do not lead to considerably higher sophistication in the formulation [1]. Too particular generalizations, however, get too esoteric and sophisticated. To make a library primitive out of every powerful imaginable recursion scheme is therefore not a good idea. It might be the case that a better approach is to add another dimension of genericity. In this paper, we suggest a "many-in-one" recursion combinator that neatly captures a whole family of recursion schemes that prima facie present themselves as diverging generalizations of simple iteration. The combinator is doubly generic: in addition to being polymorphic in a signature for an inductive type, it is polymorphic in a comonad and a natural transformation, which together determine a particular recursion scheme. The family includes simple primitive-recursion, course-of-value versions of iteration and primitive-recursion, and much more. Below is a brief mathematical summary. Let C be a category and F : C # C be a functor. An F -algebra is a morphism # : F C #C, where C (its carrier) is an object of C
Substitution in non-wellfounded . . .
- ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE 82 NO. 1 (2003)
, 2003
"... Inspired from the recent developments in theories of non-wellfounded syntax (coinductively defined languages) and of syntax with binding operators, the structure of algebras of wellfounded and non-wellfounded 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 non-wellfounded syntax (coinductively defined languages) and of syntax with binding operators, the structure of algebras of wellfounded and non-wellfounded 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 non-wellfounded case, the fundamental operation of substitution is more beneficially defined in terms of primitive corecursion than coiteration.

