Abstract
This paper provides several induction rules that can be used to prove properties of effectful data types. Our results are semantic in nature and build upon Hermida and Jacobs’ fibrational formulation of induction for polynomial data types and its extension to all inductive data types by Ghani, Johann, and Fumex. An effectful data type μ(TF) is built from a functor F that describes data, and a monad T that computes effects. Our main contribution is to derive induction rules that are generic over all functors F and monads T such that μ(TF) exists. Along the way, we also derive a principle of definition by structural recursion for effectful data types that is similarly generic. Our induction rule is also generic over the kinds of properties to be proved: like the work on which we build, we work in a general fibrational setting and so can accommodate very general notions of properties, rather than just those of particular syntactic forms. We give examples exploiting the generality of our results, and show how our results specialize to those in the literature, particularly those of Filinski and Støvring.
Chapter PDF
Similar content being viewed by others
References
Atkey, R., Johann, P., Ghani, N.: When is a Type Refinement an Inductive Type? In: Hofmann, M. (ed.) FOSSACS 2011. LNCS, vol. 6604, pp. 72–87. Springer, Heidelberg (2011)
Burstall, R.: Proving Properties of Programs by Structural Induction. Computer Journal 12(1), 41–48 (1969)
Crole, R., Pitts, A.: New Foundations for Fixpoint Computations: FIX-Hyperdoctrines and the FIX-Logic. Information and Computation 98(2), 171–210 (1992)
Fokkinga, M.: Monadic Maps and Folds for Arbitrary Datatypes. Technical Report, University of Twente (1994)
Filinski, A., Støvring, K.: Inductive Reasoning About Effectful Data Types. In: Proc. International Conference on Functional Programming, pp. 97–110 (2007)
Gill, A., Hutton, G.: The worker/wrapper Transformation. Journal of Functional Programming 19(2), 227–251 (2009)
Ghani, N., Johann, P., Fumex, C.: Fibrational Induction Rules for Initial Algebras. In: Dawar, A., Veith, H. (eds.) CSL 2010. LNCS, vol. 6247, pp. 336–350. Springer, Heidelberg (2010)
Ghani, N., Johann, P., Fumex, C.: Generic Fibrational Induction (2011) (submitted)
Hermida, C., Jacobs, B.: Structural Induction and Coinduction in a Fibrational Setting. Information and Computation 145, 107–152 (1998)
Jacobs, B.: Categorical Logic and Type Theory. Studies in Logic and the Foundations of Mathematics, vol. 141. Elsevier (1999)
Jacobs, B.: Comprehension Categories and the Semantics of Type Dependency. Theoretical Computer Science 107, 169–207 (1993)
Lehmann, D., Smyth, M.: Algebraic Specification of Data Types: A Synthetic Approach. Theory of Computing Systems 14(1), 97–139 (1981)
Moggi, E.: Computational Lambda-Calculus and Monads. In: Proc. Logic in Computer Science, pp. 14–23 (1989)
Pardo, A.: Combining Datatypes and Effects. In: Vene, V., Yu, H.-J. (eds.) AFP 2004. LNCS, vol. 3622, pp. 171–209. Springer, Heidelberg (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Atkey, R., Ghani, N., Jacobs, B., Johann, P. (2012). Fibrational Induction Meets Effects. In: Birkedal, L. (eds) Foundations of Software Science and Computational Structures. FoSSaCS 2012. Lecture Notes in Computer Science, vol 7213. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-28729-9_3
Download citation
DOI: https://doi.org/10.1007/978-3-642-28729-9_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-28728-2
Online ISBN: 978-3-642-28729-9
eBook Packages: Computer ScienceComputer Science (R0)