Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Proving the unique fixed-point principle correct: an adventure with category theory

Published: 19 September 2011 Publication History

Abstract

Say you want to prove something about an infinite data-structure, such as a stream or an infinite tree, but you would rather not subject yourself to coinduction. The unique fixed-point principle is an easy-to-use, calculational alternative. The proof technique rests on the fact that certain recursion equations have unique solutions; if two elements of a coinductive type satisfy the same equation of this kind, then they are equal. In this paper we precisely characterize the conditions that guarantee a unique solution. Significantly, we do so not with a syntactic criterion, but with a semantic one that stems from the categorical notion of naturality. Our development is based on distributive laws and bialgebras, and draws heavily on Turi and Plotkin's pioneering work on mathematical operational semantics. Along the way, we break down the design space in two dimensions, leading to a total of nine points. Each gives rise to varying degrees of expressiveness, and we will discuss three in depth. Furthermore, our development is generic in the syntax of equations and in the behaviour they encode - we are not caged in the world of streams.

Supplementary Material

MP4 File (_talk8.mp4)

References

[1]
A. Abel. MiniAgda: Integrating Sized and Dependent Types. Electronic Proceedings in Theoretical Computer Science, 43: 14--28, 2010.
[2]
A. Abel and T. Altenkirch. A predicative analysis of structural recursion. JFP, 12 (1): 1--41, 2002.
[3]
H. Applegate. Acyclic models and resolvent functors. PhD thesis, Columbia University, 1965.
[4]
F. Bartels. Generalised coinduction. Mathematical Structures in Computer Science, 13 (2): 321--348, 2003.
[5]
R. S. Bird and O. De Moor. Algebra of Programming, volume 100 of International Series in Computing Science. Prentice Hall, 1997.
[6]
E. W. Dijkstra. Hamming's exercise in SASL. Personal Note EWD792, 1981.
[7]
J. Endrullis, C. Grabmayer, and D. Hendriks. Data-oblivious stream productivity. In Logic for Programming, Artificial Intelligence, and Reasoning, volume 5330 of LNCS, pages 79--96. Springer, 2008.
[8]
E. Giménez. Codifying guarded definitions with recursive schemes. In Types for Proofs and Programs, volume 996 of LNCS, pages 39--59. Springer, 1995.
[9]
R. Hinze. The Bird tree. JFP, 19 (5): 491--508, 2009.
[10]
R. Hinze. Concrete stream calculus - an extended study. JFP, 20 (5-6): 463--535, 2010.
[11]
R. Hinze and D. W. H. James. Proving the Unique-Fixed Point Principle Correct. Technical Report RR-11-03, Department of Computer Science, University of Oxford, 2011.
[12]
J. Hughes, L. Pareto, and A. Sabry. Proving the correctness of reactive systems using sized types. In POPL, pages 410--423. ACM, 1996.
[13]
M. Lenisa, J. Power, and H. Watanabe. Distributivity for endofunctors, pointed and co-pointed endofunctors, monads and comonads. Electronic Notes in Theoretical Computer Science, 33: 230--260, 2000.
[14]
C. McBride and R. Paterson. Applicative programming with effects. JFP, 18 (1): 1--13, 2008.
[15]
K. Mehltretter. Termination checking for a dependently typed language. Master's thesis, LMU Munich, 2007.
[16]
M. Niqui and J. J. M. M. Rutten. Sampling, splitting and merging in coinductive stream calculus. In MPC, volume 6120 of LNCS, pages 310--330. Springer, 2010.
[17]
J. J. M. M. Rutten. Fundamental study: Behavioural differential equations: A coinductive calculus of streams, automata, and power series. Theoretical Computer Science, 308: 1--53, 2003.
[18]
B. A. Sijtsma. On the productivity of recursive list definitions. ACM Trans. Program. Lang. Syst., 11 (4): 633--649, 1989.
[19]
A. Silva and J. J. M. M. Rutten. A coinductive calculus of binary trees. Information and Computation, 208: 578--593, 2010.
[20]
W. Swierstra. Data types à la carte. JFP, 18 (04): 423--436, 2008.
[21]
D. Turi and G. Plotkin. Towards a mathematical operational semantics. In Logic in Computer Science, pages 280--291. IEEE, 1997.
[22]
H. Zantema. Well-definedness of streams by transformation and termination. Logical Methods in Computer Science, 6 (3:21), 2010.

Cited By

View all
  • (2015)Foundational extensible corecursion: a proof assistant perspectiveACM SIGPLAN Notices10.1145/2858949.278473250:9(192-204)Online publication date: 29-Aug-2015
  • (2015)Foundational extensible corecursion: a proof assistant perspectiveProceedings of the 20th ACM SIGPLAN International Conference on Functional Programming10.1145/2784731.2784732(192-204)Online publication date: 29-Aug-2015
  • (2016)Unifying structured recursion schemesJournal of Functional Programming10.1017/S095679681500025826Online publication date: 3-Feb-2016
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 46, Issue 9
ICFP '11
September 2011
456 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/2034574
Issue’s Table of Contents
  • cover image ACM Conferences
    ICFP '11: Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
    September 2011
    470 pages
    ISBN:9781450308656
    DOI:10.1145/2034773
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 September 2011
Published in SIGPLAN Volume 46, Issue 9

Check for updates

Author Tags

  1. bialgebras
  2. distributive laws
  3. unique fixed-point

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)13
  • Downloads (Last 6 weeks)1
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2015)Foundational extensible corecursion: a proof assistant perspectiveACM SIGPLAN Notices10.1145/2858949.278473250:9(192-204)Online publication date: 29-Aug-2015
  • (2015)Foundational extensible corecursion: a proof assistant perspectiveProceedings of the 20th ACM SIGPLAN International Conference on Functional Programming10.1145/2784731.2784732(192-204)Online publication date: 29-Aug-2015
  • (2016)Unifying structured recursion schemesJournal of Functional Programming10.1017/S095679681500025826Online publication date: 3-Feb-2016
  • (2013)Unifying structured recursion schemesACM SIGPLAN Notices10.1145/2544174.250057848:9(209-220)Online publication date: 25-Sep-2013
  • (2013)Synchronous digital circuits as functional programsACM Computing Surveys10.1145/2543581.254358846:2(1-27)Online publication date: 1-Nov-2013
  • (2013)Unifying structured recursion schemesProceedings of the 18th ACM SIGPLAN international conference on Functional programming10.1145/2500365.2500578(209-220)Online publication date: 25-Sep-2013
  • (2013)GSOS Formalized in CoqProceedings of the 2013 International Symposium on Theoretical Aspects of Software Engineering10.1109/TASE.2013.34(199-206)Online publication date: 1-Jul-2013
  • (2012)Sorting with bialgebras and distributive lawsProceedings of the 8th ACM SIGPLAN workshop on Generic programming10.1145/2364394.2364405(69-80)Online publication date: 12-Sep-2012

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media