Advertisement

Let’s See How Things Unfold: Reconciling the Infinite with the Intensional (Extended Abstract)

  • Conor McBride
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5728)

Abstract

Coinductive types model infinite structures unfolded on demand, like politicians’ excuses: for each attack, there is a defence but no likelihood of resolution. Representing such evolving processes coinductively is often more attractive than representing them as functions from a set of permitted observations, such as projections or finite approximants, as it can be tricky to ensure that observations are meaningful and consistent. As programmers and reasoners, we need coinductive definitions in our toolbox, equipped with appropriate computational and logical machinery.

Lazy functional languages like Haskell [18] exploit call-by-need computation to over-approximate the programming toolkit for coinductive data: in a sense, all data is coinductive and delivered on demand, or not at all if the programmer has failed to ensure the productivity of a program.

Keywords

Interaction Structure Type Theory Observational Equality Elimination Behaviour Type Preservation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abbott, M., Altenkirch, T., Ghani, N.: Containers - constructing strictly positive types. Theoretical Computer Science 342, 3–27 (2005); Applied Semantics: Selected TopicsMathSciNetCrossRefzbMATHGoogle Scholar
  2. 2.
    Altenkirch, T., McBride, C., Swierstra, W.: Observational equality, now! In: Stump, A., Xi, H. (eds.) PLPV, pp. 57–68. ACM, New York (2007)CrossRefGoogle Scholar
  3. 3.
    Altenkirch, T., Morris, P.: Indexed Containers. In: Proceedings of LICS (2009)Google Scholar
  4. 4.
    Bertot, Y., Castéran, P.: Interactive Theorem Proving And Program Development: Coq’Art: the Calculus of Inductive Constructions. Springer, Heidelberg (2004)CrossRefzbMATHGoogle Scholar
  5. 5.
    Cockett, R., Fukushima, T.: About Charity. Yellow Series Report No. 92/480/18, Department of Computer Science, The University of Calgary (June 1992)Google Scholar
  6. 6.
    Cockett, R., Spencer, D.: Strong categorical datatypes I. In: Seely, R.A.G. (ed.) International Meeting on Category Theory 1991, Canadian Mathematical Society Proceedings, AMS (1992)Google Scholar
  7. 7.
    Giménez, E.: Codifying guarded definitions with recursive schemes. In: Smith, J., Dybjer, P., Nordström, B. (eds.) TYPES 1994. LNCS, vol. 996, pp. 39–59. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  8. 8.
    Giménez, E.: Un Calcul de Constructions Infinies et son application à la vérification de systèmes communicants. PhD thesis, Ecole Normale Supérieure de Lyon (1996)Google Scholar
  9. 9.
    Gonthier, G.: A computer-checked proof of the Four-Colour theorem. Technical report, Microsoft Research (2005)Google Scholar
  10. 10.
    Hagino, T.: A Categorical Programming Language. PhD thesis, Laboratory for Foundations of Computer Science, University of Edinburgh (1987)Google Scholar
  11. 11.
    Hancock, P., Setzer, A.: Interactive programs in dependent type theory. In: Clote, P.G., Schwichtenberg, H. (eds.) CSL 2000. LNCS, vol. 1862, pp. 317–331. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  12. 12.
    Hancock, P., Setzer, A.: Interactive programs and weakly final coalgebras in dependent type theory. In: Crosilla, L., Schuster, P. (eds.) From Sets and Types to Topology and Analysis. Towards Practicable Foundations for Constructive Mathematics, Oxford, pp. 115–134. Clarendon Press (2005)Google Scholar
  13. 13.
    Hofmann, M.: Extensional concepts in intensional type theory. PhD thesis, Laboratory for Foundations of Computer Science, University of Edinburgh (1995), http://www.lfcs.informatics.ed.ac.uk/reports/95/ECS-LFCS-95-327/
  14. 14.
    McBride, C., McKinna, J.: The view from the left. Journal of Functional Programming 14(1), 69–111 (2004)MathSciNetCrossRefzbMATHGoogle Scholar
  15. 15.
    Michelbrink, M., Setzer, A.: State dependent IO-monads in type theory. Electronic Notes in Theoretical Computer Science 122, 127–146 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  16. 16.
    Norell, U.: Towards a Practical Programming Language based on Dependent Type Theory. PhD thesis, Chalmers University of Technology (2007)Google Scholar
  17. 17.
    Petersson, K., Synek, D.: A set constructor for inductive sets in martin-löf’s type theory. In: Dybjer, P., Pitts, A.M., Pitt, D.H., Poigné, A., Rydeheard, D.E. (eds.) Category Theory and Computer Science. LNCS, vol. 389, pp. 128–140. Springer, Heidelberg (1989)CrossRefGoogle Scholar
  18. 18.
    Jones, S.P. (ed.): Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, Cambridge (2003)zbMATHGoogle Scholar
  19. 19.
    Setzer, A.: Guarded recursion in dependent type theory. In: Talk at Agda Implementors Meeting, Göteborg, Sweden, May 2007, vol. 6 (2007)Google Scholar
  20. 20.
    Setzer, A.: Coalgebras in dependent type theory. In: Talk at Agda Intensive Meeting, Sendai, Japan, November 2008, vol. 9 (2008)Google Scholar
  21. 21.
    Telford, A., Turner, D.: Ensuring streams flow. In: Johnson, M. (ed.) AMAST 1997. LNCS, vol. 1349, pp. 509–523. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  22. 22.
    Turner, D.A.: Elementary strong functional programming. In: Hartel, P.H., Plasmeijer, R. (eds.) FPLE 1995. LNCS, vol. 1022, pp. 1–13. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  23. 23.
    Turner, D.A.: Total functional programming. J. UCS 10(7), 751–768 (2004)MathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Conor McBride
    • 1
  1. 1.University of StrathclydeUK

Personalised recommendations