• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Proof Methods for Structured Corecursive Programs (1999)

Cached

  • Download as a PDF
  •  
  • Download as a PS

Download Links

  • [web.comlab.ox.ac.uk]
  • [www.comlab.ox.ac.uk]
  • [www.cs.nott.ac.uk]
  • [www.cs.nott.ac.uk]
  • [www.cs.nott.ac.uk]
  • [www.cs.nott.ac.uk]

  • Save to List
  • Add to Collection
  • Correct Errors
  • Monitor Changes
by Jeremy Gibbons , Graham Hutton
Citations:12 - 4 self
  • Summary
  • Active Bibliography
  • Co-citation
  • Clustered Documents
  • Version History

BibTeX

@MISC{Gibbons99proofmethods,
    author = {Jeremy Gibbons and Graham Hutton},
    title = {Proof Methods for Structured Corecursive Programs},
    year = {1999}
}

Bookmark

citeulike Connotea Bibsonomy Del.icio.us Digg Reddit

OpenURL

 

Abstract

Corecursive programs produce values of greatest fixpoint types, in contrast to recursive programs, which consume values of least fixpoint types. There are a number of widely used methods for proving properties of corecursive programs, including fixpoint induction, the take lemma, and coinduction. However, these methods are all rather low-level, in the sense that they do not exploit the common structure that is often present in corecursive definitions. We argue for a more structured approach to proving properties of corecursive programs. In particular, we show that by writing corecursive programs using an operator called unfold that encapsulates a common pattern of corecursive de nition, we can then use high-level algebraic properties of this operator to conduct proofs in a purely calculational style that avoids the use of either induction or coinduction.

Citations

2971 Communication and Concurrency - Milner - 1989
1225 The essence of functional programming - Wadler - 1992
1182 A structural approach to operational semantics - Plotkin - 1981
909 Introduction to Lattices and Order - Davey, Priestley - 1990
303 Denotational Semantics: A Methodology for Language Development - SCHMIDT - 1986
292 Theorems for free - Wadler - 1989
275 Functional Programming with Bananas, Lenses, Envelopes and Barbed - Meijer, Fokkinga, et al. - 1991
200 Introduction to functional programming using Haskell - Bird - 1998
161 PolyP—A polytypic programming language extension - Jansson, Jeuring - 1997
109 Bisimilarity as a theory of functional programming - Gordon - 1995
103 Recursive Programming Techniques - Burge - 1975
89 Algebraically complete categories - Freyd - 1991
87 Vicious circles - Barwise, Moss - 1996
78 Algebraic Data Types and Program Transformation - Malcolm - 1990
68 Theories of Programming Languages - Reynolds - 1998
43 The under-appreciated unfold - Gibbons, Jones - 1998
42 A tutorial on the universality and expressiveness of fold - Hutton - 1999
41 Elementary Strong Functional Programming. Pages 1–13 of - Turner - 1995
38 Non-well-founded Sets. Number 14 - Aczel - 1988
33 The category theoretic solution of recursive domain equations - Smyth, Plotkin - 1982
27 et al. Haskell 98: A non-strict, purely functional language - Jones, Hughes - 1999
21 Fold and unfold for program semantics - Hutton - 1998
12 On the foundations of corecursion - Moss, Danner - 1997
10 The Generic Approximation Lemma - Hutton, Gibbons - 2001
4 Algebraic speci of data types: a synthetic approach - Lehmann, Smyth - 1981
2 Semantics of the domain of diagrams - Reynolds - 1977
1 A very simple exercise - Dijkstra - 1982
1 Proving the equality of in sequences - Dijkstra - 1991
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University