Andrew Tolmach

Essential Coq from Scratch

Coq is a mechanized proof assistant that is widely used for reasoningabout programs, programming languages, and programming tools.While it enjoys a very simple foundational core based on type theory,the full Coq system is rich and complex, and can be daunting for beginners.These lectures will give a pragmatic introduction to the essential features of Coq,based on the early chapters of the online textbook "Software Foundations in Coq" by B. Pierce et al., available at http://www.cis.upenn.edu/~bcpierce/sf/. (Be sure to download a recent copy, as the text is frequently updated.)They will be complemented with plenty of hands-on exercises.

To take advantage of these lectures, it is definitely necessary to spend sometime working with Coq yourself, so plan to spend some of your evenings doingthis! You should arrive with Coq version 8.2 installed on your laptop; it can be obtained from http://coq.inria.fr/download. You will also need an interactive development environment for Coq, either the CoqIde tool that comes with the system, or, if you are an emacs user, the Proof General tool (http://proofgeneral.inf.ed.ac.uk/).

Recommended exercises from the first five chapters of Software Foundations: