Let’s See How Things Unfold: Reconciling the Infinite with the Intensional (Extended Abstract)
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 PreservationPreview
Unable to display preview. Download preview PDF.
References
- 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.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.Altenkirch, T., Morris, P.: Indexed Containers. In: Proceedings of LICS (2009)Google Scholar
- 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.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.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.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.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.Gonthier, G.: A computer-checked proof of the Four-Colour theorem. Technical report, Microsoft Research (2005)Google Scholar
- 10.Hagino, T.: A Categorical Programming Language. PhD thesis, Laboratory for Foundations of Computer Science, University of Edinburgh (1987)Google Scholar
- 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.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.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.McBride, C., McKinna, J.: The view from the left. Journal of Functional Programming 14(1), 69–111 (2004)MathSciNetCrossRefzbMATHGoogle Scholar
- 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.Norell, U.: Towards a Practical Programming Language based on Dependent Type Theory. PhD thesis, Chalmers University of Technology (2007)Google Scholar
- 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.Jones, S.P. (ed.): Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, Cambridge (2003)zbMATHGoogle Scholar
- 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.Setzer, A.: Coalgebras in dependent type theory. In: Talk at Agda Intensive Meeting, Sendai, Japan, November 2008, vol. 9 (2008)Google Scholar
- 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.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.Turner, D.A.: Total functional programming. J. UCS 10(7), 751–768 (2004)MathSciNetGoogle Scholar