Computational lambda-calculus and monads
Proceedings of the Fourth Annual Symposium on Logic in computer science
Comprehension categories and the semantics of type dependency
Theoretical Computer Science
New foundations for fixpoint computations: FIX-hyperdoctrines and the FIX-logic
Information and Computation - Special issue: Selections from 1990 IEEE symposium on logic in computer science
Inductive reasoning about effectful data types
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
The worker/wrapper transformation
Journal of Functional Programming
Fibrational induction rules for initial algebras
CSL'10/EACSL'10 Proceedings of the 24th international conference/19th annual conference on Computer science logic
When is a type refinement an inductive type?
FOSSACS'11/ETAPS'11 Proceedings of the 14th international conference on Foundations of software science and computational structures: part of the joint European conferences on theory and practice of software
Combining datatypes and effects
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
Relating computational effects by ττ-lifting
Information and Computation
Coinductive Predicates and Final Sequences in a Fibration
Electronic Notes in Theoretical Computer Science (ENTCS)
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
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.