Contractive functions on infinite data structures

Coinductive data structures, such as streams or infinite trees, have many applications in functional programming and type theory, and are naturally defined using recursive equations. But how do we ensure that such equations make sense, i.e. that they actually generate a productive infinite object? A...

Full description

Bibliographic Details
Main Authors: Capretta, Venanzio, Hutton, Graham, Jaskelioff, Mauro
Format: Conference or Workshop Item
Published: 2017
Online Access:https://eprints.nottingham.ac.uk/41358/
_version_ 1848796256975978496
author Capretta, Venanzio
Hutton, Graham
Jaskelioff, Mauro
author_facet Capretta, Venanzio
Hutton, Graham
Jaskelioff, Mauro
author_sort Capretta, Venanzio
building Nottingham Research Data Repository
collection Online Access
description Coinductive data structures, such as streams or infinite trees, have many applications in functional programming and type theory, and are naturally defined using recursive equations. But how do we ensure that such equations make sense, i.e. that they actually generate a productive infinite object? A standard means to achieve productivity is to use Banach’s fixed-point theorem, which guarantees the unique existence of solutions to recursive equations on metric spaces under certain conditions. Functions satisfying these conditions are called contractions. In this article, we give a new characterization of contractions on streams in the form of a sound and complete representation theorem, and generalize this result to a wide class of non-well-founded structures, first to infinite binary trees, then to final coalgebras of container functors. These results have important potential applications in functional programming, where coinduction and corecursion are successfully deployed to model continuous reactive systems, dynamic interactivity, signal processing, and other tasks that require flexible manipulation of non-well-founded data. Our representation theorems provide a definition paradigm to compactly compute with such data and easily reason about them.
first_indexed 2025-11-14T19:45:06Z
format Conference or Workshop Item
id nottingham-41358
institution University of Nottingham Malaysia Campus
institution_category Local University
last_indexed 2025-11-14T19:45:06Z
publishDate 2017
recordtype eprints
repository_type Digital Repository
spelling nottingham-413582020-05-04T18:36:08Z https://eprints.nottingham.ac.uk/41358/ Contractive functions on infinite data structures Capretta, Venanzio Hutton, Graham Jaskelioff, Mauro Coinductive data structures, such as streams or infinite trees, have many applications in functional programming and type theory, and are naturally defined using recursive equations. But how do we ensure that such equations make sense, i.e. that they actually generate a productive infinite object? A standard means to achieve productivity is to use Banach’s fixed-point theorem, which guarantees the unique existence of solutions to recursive equations on metric spaces under certain conditions. Functions satisfying these conditions are called contractions. In this article, we give a new characterization of contractions on streams in the form of a sound and complete representation theorem, and generalize this result to a wide class of non-well-founded structures, first to infinite binary trees, then to final coalgebras of container functors. These results have important potential applications in functional programming, where coinduction and corecursion are successfully deployed to model continuous reactive systems, dynamic interactivity, signal processing, and other tasks that require flexible manipulation of non-well-founded data. Our representation theorems provide a definition paradigm to compactly compute with such data and easily reason about them. 2017-02-02 Conference or Workshop Item PeerReviewed Capretta, Venanzio, Hutton, Graham and Jaskelioff, Mauro (2017) Contractive functions on infinite data structures. In: 28th symposium on Implementation and Application of Functional Languages, August 31 - September 2, 2016, Leuven, Belgium. (In Press) http://dx.doi.org/10.1145/3064899.3064900
spellingShingle Capretta, Venanzio
Hutton, Graham
Jaskelioff, Mauro
Contractive functions on infinite data structures
title Contractive functions on infinite data structures
title_full Contractive functions on infinite data structures
title_fullStr Contractive functions on infinite data structures
title_full_unstemmed Contractive functions on infinite data structures
title_short Contractive functions on infinite data structures
title_sort contractive functions on infinite data structures
url https://eprints.nottingham.ac.uk/41358/
https://eprints.nottingham.ac.uk/41358/