Abstract
We present a pair of reasoning principles, definition and proof by rigid induction, which can be seen as proper generalizations of lazy-datatype induction to monadic effects other than partiality. We further show how these principles can be integrated into logical-relations arguments, and obtain as a particular instance a general and principled proof that the success-stream and failure-continuation models of backtracking are equivalent. As another application, we present a monadic model of general search trees, not necessarily traversed depth-first. The results are applicable to both lazy and eager languages, and we emphasize this by presenting most examples in both Haskell and SML.
- Roy L. Crole and Andrew M. Pitts. New foundations for fixpoint computations: FIX-hyperdoctrines and the FIX-logic. Information and Computation, 98:171--210, 1992. Google Scholar
Digital Library
- Olivier Danvy and Kevin Millikin. Refunctionalization at work. BRICS Research Report RS-07-7, Department of Computer Science, University of Aarhus, 2007.Google Scholar
- Olivier Danvy, Bernd Grobauer, and Morten Rhiger. A unifying approach to goal-directed evaluation. New Generation Computing, 20(1):53--73, 2002. ISSN 0288-3635. Google Scholar
Digital Library
- Andrzej Filinski. Representing layered monads. In Proceedings of the 26th ACM Symposium on Principles of Programming Languages, pages 175--188, San Antonio, Texas, January 1999. ACM Press. Google Scholar
Digital Library
- Andrzej Filinski. On the relations between monadic semantics. Theoretical Computer Science, 375:41--75, 2007. Google Scholar
Digital Library
- Marcelo Fiore and Gordon D. Plotkin. An axiomatisation of computationally adequate domain theoretic models of FPC. In Proceedings of the Ninth Symposium on Logic in Computer Science, pages 92--102, Paris, France, 1994.Google Scholar
Cross Ref
- Ralf Hinze. Deriving backtracking monad transformers. In ICFP '00: Proceedings of the 5th International Conference on Functional programming, pages 186--197. ACM Press, 2000. Google Scholar
Digital Library
- Martin Hofmann. Non strictly positive datatypes for breadth first search. TYPES Forum posting, 1993. Available from http://www.seas.upenn.edu/~sweirich/types/archive/1993/msg00027.html.Google Scholar
- John Hughes. The design of a pretty-printing library. In Advanced Functional Programming, First International Spring School, volume 925 of LNCS, pages 53--96, 1995. Google Scholar
- Oleg Kiselyov, Chung-chieh Shan, Daniel P. Friedman, and Amr Sabry. Backtracking, interleaving, and terminating monad transformers. In ICFP '05: Proceedings of the 10th International conference on Functional programming, pages 192--203. ACM Press, 2005. Google Scholar
Digital Library
- Daniel J. Lehmann and Michael B. Smyth. Algebraic specification of data types: A synthetic approach. Mathematical Systems Theory, 14:97--139, 1981.Google Scholar
Cross Ref
- Eugenio Moggi. Notions of computation and monads. Information and Computation, 93(1):55--92, July 1991. Google Scholar
Digital Library
- Andrew M. Pitts. Relational properties of domains. Information and Computation, 127:66--90, 1996.Google Scholar
Cross Ref
- Chris Reade. Elements of Functional Programming. Addison Wesley, 1989. Google Scholar
Digital Library
- John C. Reynolds. On the relation between direct and continuation semantics. In 2nd Colloquium on Automata, Languages and Programming, volume 14 of LNCS, pages 141--156, Saarbrücken, Germany, July 1974. Google Scholar
- Michael Spivey. Algebras for combinatorial search. In Workshop on Mathematically Structured Functional Programming, Kuressaare, Estonia, July 2006. Google Scholar
Digital Library
- Mitchell Wand and Dale Vaillancourt. Relating models of backtracking. In ICFP '04: Proceedings of the 9th International conference on Functional programming, pages 54--65. ACM Press, 2004. Google Scholar
Digital Library
Index Terms
Inductive reasoning about effectful data types
Recommendations
Inductive reasoning about effectful data types
ICFP '07: Proceedings of the 12th ACM SIGPLAN international conference on Functional programmingWe present a pair of reasoning principles, definition and proof by rigid induction, which can be seen as proper generalizations of lazy-datatype induction to monadic effects other than partiality. We further show how these principles can be integrated ...
Names, Equations, Relations: Practical Ways to Reason about new
The nu-calculus of Pitts and Stark is a typed lambda-calculus, extended with state in the form of dynamically-generated names. These names can be created locally, passed around, and compared with one another. Through the interaction between names and ...
Mechanizing Proofs about Mendler-style Recursion
LFMTP '16: Proceedings of the Eleventh Workshop on Logical Frameworks and Meta-Languages: Theory and PracticeWe consider the normalization proof for a simply-typed lambda calculus with Mendler-style recursion using logical relations. This language is powerful enough to encode total recursive functions using recursive types. A key feature of our proof is the ...







Comments