Skip to main content

Proof principles for datatypes with iterated recursion

  • Conference paper
  • First Online:
Category Theory and Computer Science (CTCS 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1290))

Included in the following conference series:

Abstract

Data types like trees which are finitely branching and of (possibly) infinite depth are described by iterating initial algebras and terminal coalgebras. We study proof principles for such data types in the context of categorical logic, following and extending the approach of [14, 15]. The technical contribution of this paper involves a description of initial algebras and terminal coalgebras in total categories of fibrations for lifted “datafunctors”. These lifted functors are used to formulate our proof principles. We test these principles by proving some elementary results for four kinds of trees (with finite or infinite breadth or depth) using the proof tool Pvs.

This paper was written during a visit of Ulrich Hensel to the Computing Science Institute of the University of Nijmegen.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. P. Aczel. Non-well-founded sets. CSLI Lecture Notes 14, Stanford, 1988.

    Google Scholar 

  2. R.C. Backhouse, P. Chisholm, G. Malcolm, and E. Saaman. Do-it-yourself type theory. Formal Aspects of Comp., 1:19–84, 1989.

    Article  MATH  Google Scholar 

  3. F. Borceux. Handbook of Categorical Algebra, volume 50, 51 and 52 of Encyclopedia of Mathematics. Cambridge Univ. Press, 1994.

    Google Scholar 

  4. J.R.B. Cockett and T. Fukushima. About charity. Technical Report 92/480/18, Dep. Comp. Sci., Univ. Calgary, 1992.

    Google Scholar 

  5. J.R.B. Cockett and D. Spencer. Strong categorical datatypes II: A term logic for categorical programming. Theor. Comp. Sci., 139:69–113, 1995.

    Article  MATH  MathSciNet  Google Scholar 

  6. Th. Coquand and Ch. Paulin. Inductively defined types. In P. Martinlöf and G. Mints, editors, COLOG 88 International conference on computer logic, number 417 in Lect. Notes Comp. Sci., pages 50–66. Springer, Berlin, 1988.

    Google Scholar 

  7. P. Dybjer. Inductive families. Formal Aspects of Comp., 6:440–465, 1994.

    Article  MATH  Google Scholar 

  8. M.P. Fiore. A coinduction principle for recursive data types based on bisimulation. Inf. & Comp., 127(2):186–198, 1996.

    Article  MATH  MathSciNet  Google Scholar 

  9. E. Giménez. Implementation of co-inductive types in Coq: an experiment with the Alternating Bit Protocol. In S. Berardi and M. Coppo, editors, Types for Proofs and Programs, number 1158 in Lect. Notes Comp. Sci., pages 135–152. Springer, Berlin, 1996.

    Google Scholar 

  10. J.A. Goguen, J. Thatcher, and E. Wagner. An initial algebra approach to the specification, correctness and implementation of abstract data types. In R. Yeh, editor, Current Trends in Programming Methodology, pages 80–149. Prentice Hall, 1978.

    Google Scholar 

  11. U. Hensel and B. Jacobs. Coalgebraic theories of sequences in Pvs. Techn. Rep. CSI-119708, Comput. Sci. Inst., Univ. of Nijmegen, 1997.

    Google Scholar 

  12. U. Hensel and D. Spooner. A view on implementing processes: Categories of circuits. In M. Haveraaen, 0. Owe, and O.-J. Dahl, editors, Recent Trends in Data Type Specification, number 1130 in Lect. Notes Comp. Sci., pages 237–254. Springer, Berlin, 1996.

    Google Scholar 

  13. C. Hermida. Some properties of Fib as a fibred 2-category. Journ. Pure & Appl. Algebra, 1997, to appear.

    Google Scholar 

  14. C. Hermida and B. Jacobs. An algebraic view of structural induction. In L. Pacholski and J. Tiuryn, editors, Computer Science Logic 1994, number 933 in Lect. Notes Comp. Sci., pages 412–426. Springer, Berlin, 1995.

    Google Scholar 

  15. C. Hermida and B. Jacobs. Structural induction and coinduction in a fibrational setting. Full version of [14], 1996.

    Google Scholar 

  16. B. Jacobs. Parameters and parametrization in specification using distributive categories. Fund. Informaticae, 24(3):209–250, 1995.

    MATH  MathSciNet  Google Scholar 

  17. B. Jacobs. Invariants, bisimulations and the correctness of coalgebraic refinements. Techn. Rep. CSI-119704, Comput. Sci. Inst., Univ. of Nijmegen, 1997.

    Google Scholar 

  18. B. Jacobs. Categorical Logic and Type Theory. 1998, to appear.

    Google Scholar 

  19. B. Jay. Data categories. In M.E. Houle and P.Eades, editors, Computing: The Australasian Theory Symposium Proceedings, number 18 in Australian Comp. Sci. Comm., pages 21–28,1996.

    Google Scholar 

  20. M. Makkai. The fibrational formulation of intuitionistic predicate logic I: completeness according to Gödel, Kripke, and Läuchli. Part 1. Notre Dame Journ. Formal Log., 34(3):334–377, 1993.

    Article  MATH  MathSciNet  Google Scholar 

  21. M. Makkai. The fibrational formulation of intuitionistic predicate logic 1: completeness according to Gödel, Kripke, and Läuchli. Part 2. Notre Dame Journ. Formal Log., 34(4):471–499, 1993.

    Article  MATH  MathSciNet  Google Scholar 

  22. N.P. Mendler. Inductive types and type constraints in second-order lambda calculus. Ann. Pure & Appl. Logic, 51(1/2):159–172, 1991.

    Article  MATH  MathSciNet  Google Scholar 

  23. E. Moggi. Notions of computation and monads. Inf. & Comp., 93(1):55–92, 1991.

    Article  MATH  MathSciNet  Google Scholar 

  24. S. Owre, S. Rajan, J.M. Rushby, N. Shankar, and M. Srivas. PVS: Combining specification, proof checking, and model checking. In R. Alur and T.A. Henzinger, editors, Computer Aided Verification, number 1102 in Lect. Notes Comp. Sci., pages 411–414. Springer, Berlin, 1996.

    Google Scholar 

  25. S. Owre, J.M. Rushby, N. Shankar, and F. von Henke. Formal verification for fault-tolerant architectures: Prolegomena to the design of PVS. IEEE Trans. on Softw. Eng., 21(2):107–125,1995.

    Article  Google Scholar 

  26. Ch. Paulin-Mohring. Inductive definitions in the system Coq. Rules and properties. In M. Bezem and J.F. Groote, editors, Typed Lambda Calculi and Applications, number 664 in Lect. Notes Comp. Sci., pages 328–345. Springer, Berlin, 1993.

    Google Scholar 

  27. L.C. Paulson. Mechanizing coinduction and corecursion in higher-order logic. Journ. of Logic and Computation, 7:175–204, 1997.

    Article  MATH  MathSciNet  Google Scholar 

  28. A.M. Pitts. A co-induction principle for recursively defined domains. Theor. Comp. Sci., 124(2):195–219, 1994.

    Article  MATH  MathSciNet  Google Scholar 

  29. J. Rutten and D. Turi. Initial algebra and final coalgebra semantics for concurrency. In J.W. de Bakker, W.P. de Roever, and G. Rozenberg, editors, A Decade of Concurrency, number 803 in Lect. Notes Comp. Sci., pages 530–582. Springer, Berlin, 1994.

    Google Scholar 

  30. J.J.M.M. Rutten. Universal coalgebra: a theory of systems. CWI Report CS-119652, 1996.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Eugenio Moggi Giuseppe Rosolini

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hensel, U., Jacobs, B. (1997). Proof principles for datatypes with iterated recursion. In: Moggi, E., Rosolini, G. (eds) Category Theory and Computer Science. CTCS 1997. Lecture Notes in Computer Science, vol 1290. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0026991

Download citation

  • DOI: https://doi.org/10.1007/BFb0026991

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63455-3

  • Online ISBN: 978-3-540-69552-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics