Abstract
This paper provides an induction rule that can be used to prove properties of data structures whose types are inductive, i.e., are carriers of initial algebras of functors. Our results are semantic in nature and are inspired by Hermida and Jacobs’ elegant algebraic formulation of induction for polynomial data types. Our contribution is to derive, under slightly different assumptions, an induction rule that is generic over all inductive types, polynomial or not. Our induction rule is generic over the kinds of properties to be proved as well: like Hermida and Jacobs, we work in a general fibrational setting and so can accommodate very general notions of properties on inductive types rather than just those of particular syntactic forms. We establish the correctness of our generic induction rule by reducing induction to iteration. We show how our rule can be instantiated to give induction rules for the data types of rose trees, finite hereditary sets, and hyperfunctions. The former lies outside the scope of Hermida and Jacobs’ work because it is not polynomial; as far as we are aware, no induction rules have been known to exist for the latter two in a general fibrational framework. Our instantiation for hyperfunctions underscores the value of working in the general fibrational setting since this data type cannot be interpreted as a set.
This research is partially supported by EPSRC grant EP/C0608917/1.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Bird, R.S., De Moor, O.: Algebra of Programming. International Series in Computing Science, vol. 100. Prentice-Hall, Englewood Cliffs (1997)
Bird, R., Meertens, L.: Nested Datatypes. In: Jeuring, J. (ed.) MPC 1998. LNCS, vol. 1422, pp. 52–67. Springer, Heidelberg (1998)
Coquand, T., Huet, G.: The Calculus of Constructions. Information and Computation 76(2-3), 95–120 (1988)
The Coq Proof Assistant, coq.inria.fr
Ghani, N., Johann, P.: Foundations for Structured Programming with GADTs. In: Proceedings, Principles of Programming Languages, pp. 297–308 (2008)
Hermida, C., Jacobs, B.: Structural Induction and Coinduction in a Fibrational Setting. Information and Computation 145(2), 107–152 (1998)
Jacobs, B.: Comprehension Categories and the Semantics of Type Dependency. Theoretical Computer Science 107, 169–207 (1993)
Jacobs, B.: Categorical Logic and Type Theory. North Holland, Amsterdam (1999)
Johann, P., Ghani, N.: Initial Algebra Semantics is Enough! Proceedings, Typed Lambda Calculus and Applications, pp. 207–222 (2007)
Lawvere, F.W.: Equality in Hyperdoctrines and Comprehension Scheme as an Adjoint Functor. Applications of Categorical Algebra, 1–14 (1970)
Matthes, R.: An Induction Principle for Nested Datatypes in Intensional Type Theory. Journal of Functional Programming 19(3&4), 439–468 (2009)
Morris, P.: Constructing Universes for Generic Programming. Dissertation, University of Nottingham (2007)
Moggi, E.: Notations of Computation and Monads. Information and Computation 93(1), 55–92 (1991)
Pavlovic, D.: Predicates and Fibrations. Dissertation, University of Utrecht (1990)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ghani, N., Johann, P., Fumex, C. (2010). Fibrational Induction Rules for Initial Algebras. In: Dawar, A., Veith, H. (eds) Computer Science Logic. CSL 2010. Lecture Notes in Computer Science, vol 6247. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-15205-4_27
Download citation
DOI: https://doi.org/10.1007/978-3-642-15205-4_27
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-15204-7
Online ISBN: 978-3-642-15205-4
eBook Packages: Computer ScienceComputer Science (R0)