Abstract

This report documents the insights gained from implementing the core functionality of xmonad, a popular window manager written in Haskell, in the Coq proof assistant. Rather than focus on verification, this report outlines the technical challenges involved with incorporating Coq code in a Haskell project.
- E. Brady. Practical Implementation of a Dependently Typed Functional Programming Language. PhD thesis, Durham University, 2005.Google Scholar
- E. Brady. Idris - systems programming meets full dependent types. In PLPV'11: Proceedings of the 2011 ACM SIGPLAN Workshop on Programming Languages meets Programming Verification, 2011. Google Scholar
Digital Library
- A. Chlipala. Certified programming with dependent types. Available from http://adam.chlipala.net/cpdt, 2008.Google Scholar
- K. Claessen and J. Hughes. QuickCheck: a lightweight tool for random testing of Haskell programs. In Proceedings of the fifth ACM SIGPLAN International Conference on Functional Programming, 2000. Google Scholar
Digital Library
- T. Coquand and G. Huet. The calculus of constructions. Inf. Comput., 76: 95--120, February 1988. Google Scholar
Digital Library
- L. Cruz-Filipe, H. Geuvers, and F. Wiedijk. C-CoRN, the constructive Coq repository at Nijmegen. In Mathematical Knowledge Management, 2004.Google Scholar
Cross Ref
- E. Denney. The synthesis of a Java Card tokenization algorithm. In Proceedings of the 16th IEEE International Conference on Automated Software Engineering, 2001. Google Scholar
Digital Library
- P. Derrin, K. Elphinstone, G. Klein, D. Cock, and M. M. T. Chakravarty. Running the manual: An approach to high-assurance microkernel development. In Proceedings of the ACM SIGPLAN Haskell Workshop, 2006. Google Scholar
Digital Library
- J.-C. Filliâtre and P. Letouzey. Functors for Proofs and Programs. In Proceedings of The European Symposium on Programming, volume 2986 of Lecture Notes in Computer Science, 2004.Google Scholar
Cross Ref
- A. Gill and C. Runciman. Haskell Program Coverage. In Proceedings of the ACM SIGPLAN Workshop on Haskell, 2007. Google Scholar
Digital Library
- G. Gonthier. Formal proof: the four-color theorem. Notices of the AMS, 55 (11): 1382--1393, 2008.Google Scholar
- B. Grégoire. Compilation des termes de preuves: un (nouveau) mariage entre Coq et OCaml. PhD thesis, Université Paris 7, 2003.Google Scholar
- F. Haftmann. From higher-order logic to Haskell: there and back again. In Proceedings of the 2010 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, pages 155--158, 2010. Google Scholar
Digital Library
- G. Huet. The zipper. Journal of Functional Programming, 7 (05): 549--554, 1997. Google Scholar
Digital Library
- G. Klein, K. Elphinstone, G. Heiser, J. Andronick, D. Cock, P. Derrin, D. Elkaduwe, K. Engelhardt, R. Kolanski, M. Norrish, et al. seL4: Formal verification of an OS kernel. In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles, pages 207--220. ACM, 2009. Google Scholar
Digital Library
- X. Leroy. Formal certification of a compiler back-end or: programming a compiler with a proof assistant. In Conference record of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 42--54, 2006. Google Scholar
Digital Library
- P. Letouzey. A new extraction for Coq. Types for Proofs and Programs, 2003. Google Scholar
Digital Library
- P. Letouzey. Programmation fonctionnelle certifiée: l'extraction de programmes dans l'assistant Coq. PhD thesis, Université Paris-Sud, 2004.Google Scholar
- P. Letouzey. Personal communication. 2011.Google Scholar
- P. Martin-Löf. Constructive mathematics and computer programming. Studies in Logic and the Foundations of Mathematics, 104, 1982.Google Scholar
- The Coq development team. The Coq proof assistant reference manual. LogiCal Project, 2004. URL http://coq.inria.fr.Google Scholar
- C. McBride. Dependently typed functional programs and their proofs. PhD thesis, University of Edinburgh, 1999.Google Scholar
- N. Mitchell. HLint Manual, 2010.Google Scholar
- N. Mitchell and C. Runciman. Not all patterns, but enough: an automatic verifier for partial but sufficient pattern matching. In Proceedings of the first ACM SIGPLAN Symposium on Haskell, 2008. Google Scholar
Digital Library
- U. Norell. Towards a practical programming language based on dependent type theory. PhD thesis, Chalmers University of Technology, 2007.Google Scholar
- M. Sozeau. Programing Finger Trees in Coq. In ICFP'07: Proceedings of the 2007 ACM SIGPLAN International Conference on Functional Programming, pages 13--24, 2007a. Google Scholar
Digital Library
- M. Sozeau. Subset coercions in Coq. In T. Altenkirch and C. McBride, editors, Types for Proofs and Programs, volume 4502 of Lecture Notes in Computer Science, pages 237--252. Springer, 2007b. Google Scholar
Digital Library
- M. Sozeau and N. Oury. First-class type classes. In Theorem Proving in Higher Order Logics, 2008. Google Scholar
Digital Library
- D. Stewart. Popular haskell packages: Q2 2010 report, June 2010. URL http://donsbot.wordpress.com/.Google Scholar
- D. Stewart and S. Janssen. xmonad: a tiling window manager. In Proceedings of the ACM SIGPLAN Workshop on Haskell, 2007. Google Scholar
Digital Library
Index Terms
xmonad in Coq (experience report): programming a window manager in a proof assistant
Recommendations
xmonad in Coq (experience report): programming a window manager in a proof assistant
Haskell '12: Proceedings of the 2012 Haskell SymposiumThis report documents the insights gained from implementing the core functionality of xmonad, a popular window manager written in Haskell, in the Coq proof assistant. Rather than focus on verification, this report outlines the technical challenges ...
Parametric higher-order abstract syntax for mechanized semantics
ICFP '08We present parametric higher-order abstract syntax (PHOAS), a new approach to formalizing the syntax of programming languages in computer proof assistants based on type theory. Like higher-order abstract syntax (HOAS), PHOAS uses the meta language's ...
Parametric higher-order abstract syntax for mechanized semantics
ICFP '08: Proceedings of the 13th ACM SIGPLAN international conference on Functional programmingWe present parametric higher-order abstract syntax (PHOAS), a new approach to formalizing the syntax of programming languages in computer proof assistants based on type theory. Like higher-order abstract syntax (HOAS), PHOAS uses the meta language's ...







Comments