Iteration and coiteration schemes for higher-order and nested datatypes

  • Authors:
  • Andreas Abel;Ralph Matthes;Tarmo Uustalu

  • Affiliations:
  • Department of Computer Science, Chalmers University of Technology, Göteborg, Sweden;Institut für Informatik der Ludwig-Maximilians-Universität München, München, Germany;Institute of Cybernetics, Tallinn University of Technology, Tallinn, Estonia

  • Venue:
  • Theoretical Computer Science - Foundations of software science and computation structures
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

This article studies the implementation of inductive and coinductive constructors of higher kinds (higher-order 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 well-behaved extensions of System Fω with some form of iteration and coiteration uniform in all kinds. In what we call Mendler-style systems, the iterator and coiterator have a computational behavior similar to the general recursor, but their types guarantee termination. In conventional-style 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 rank-2 inductive types. Strong normalization of all systems considered is proved by providing an embedding of the basic Mendler-style system MItω into System Fω