Hostname: page-component-77f85d65b8-45ctf Total loading time: 0 Render date: 2026-04-22T10:21:56.696Z Has data issue: false hasContentIssue false

Containers, monads and induction recursion

Published online by Cambridge University Press:  20 November 2014

NEIL GHANI
Affiliation:
Department of Computer and Information Sciences, University of Strathclyde, Glasgow G1 1XH, Scotland Email: ng@cis.strath.ac.uk, hancock@spamcop.net
PETER HANCOCK
Affiliation:
Department of Computer and Information Sciences, University of Strathclyde, Glasgow G1 1XH, Scotland Email: ng@cis.strath.ac.uk, hancock@spamcop.net

Abstract

Induction recursion offers the possibility of a clean, simple and yet powerful meta-language for the type system of a dependently typed programming language. At its crux, induction recursion allows us to define a universe, that is a set U of codes and a decoding function T : U → D which assigns to every code u : U, a value T, u of some type D, e.g. the large type Set of small types or sets. The name induction recursion refers to the build-up of codes in U using inductive clauses, simultaneously with the definition of the function T, by structural recursion on codes.

Our contribution is to (i) bring out explicitly algebraic structure which is less visible in the original type-theoretic presentation – in particular showing how containers and monads play a pivotal role within induction recursion; and (ii) use these structures to present a clean and high level definition of induction recursion suitable for use in functional programming.

Information

Type
Paper
Copyright
Copyright © Cambridge University Press 2014 

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

Article purchase

Temporarily unavailable