The Under Performing Unfold: A New Approach to Optimising Corecursive Programs

with Jennifer Hackett and Graham Hutton. IFL 2013.PDF

Abstract

This paper presents a new approach to optimising corecursive programs by factorisation. In particular, we focus on programs written using the corecursion operator unfold. We use and expand upon the proof techniques of guarded coinduction and unfold fusion, capturing a pattern of generalising coinductive hypotheses by means of abstraction and representation functions. The pattern we observe is simple, has not been observed before, and is widely applicable. We develop a general program factorisation theorem from this pattern, demonstrating its utility with a range of practical examples.

BibTeX

@inproceedings{HHJ:2013,
 author = {Hackett, Jennifer and Hutton, Graham and Jaskelioff, Mauro},
 title = {The Under-Performing Unfold: A New Approach to Optimising Corecursive Programs},
 booktitle = {Proceedings of the 25th Symposium on Implementation and Application of Functional Languages},
 series = {IFL '13},
 year = {2014},
 isbn = {978-1-4503-2988-0},
 location = {Nijmegen, Netherlands},
 pages = {1:4321--1:4332},
 articleno = {1},
 numpages = {12},
 url = {http://doi.acm.org/10.1145/2620678.2620679},
 doi = {10.1145/2620678.2620679},
 acmid = {2620679},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {coinduction, factorisation, fusion, unfolds},
}