coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Adam Chlipala <adamc AT csail.mit.edu>
- To: types-announce AT lists.seas.upenn.edu, coq-club <coq-club AT inria.fr>
- Subject: [Coq-Club] Second announcement of an online book on program proof in Coq
- Date: Sat, 3 Jun 2017 13:24:48 -0400
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=adamc AT csail.mit.edu; spf=Pass smtp.mailfrom=adamc AT csail.mit.edu; spf=None smtp.helo=postmaster AT outgoing-stata.csail.mit.edu
- Ironport-phdr: 9a23:z+FmHResUocNa4DwZmIrtSDplGMj4u6mDksu8pMizoh2WeGdxcS8bR7h7PlgxGXEQZ/co6odzbGH7ea9BiRAuc/H6yFdNsQUFlcssoY/oU8JOI2/NQXDNvnkbig3ToxpdWRO2DWFC3VTA9v0fFbIo3e/vnY4ExT7MhdpdKyuQtaBx8u42Pqv9JLNfg5GmCSyYa9oLBWxsA7dqtQajZFsJ6s1yxbFuHtFduZLzm9sOV6fggzw68m08ZNh6Shcp+4t+8tdWqjmYqo0SqBVAzshP20p/sPnsgXNQxWS7XUGSGUWlRRIAwnB7B7kW5r6rzX3uOlg1iSEJMP6Vb87Vyis4KdtUx/olTwINyUl/2HNi8x/l7xUrRS8rBFi2YHUYYWVNP1jfqPBeN4RWGRMUtpNWyFHH4ixaZYEAegcMuZCt4Tzp0YAowW9CweiCuzgxSNHi2Ts0qEmyeksCx3K0QIiEt8IrX/arM/1NKAXUe2t0KTH0C/Mb/ZL0jrj6IjIdhEhoemWUrJ0a8Xa1E4iGBnYgVqKrIzqIyiY2fgWs2eB7upgUfiji2smqwFtuDSg2NojipTQi48T11vK+yJ5wIMvKt25Tk52ecKrEJtUtyGbL4t5WMciTHtytCY81LIGpZi2dzUJxpQ/3xPTduKLfouS7h/tSOqdOyl0iGh7dL6imxq+6UqtxvDmWsWq3ltHoDBJnsTMu30PzRDf9NWLR/V780y8wziAzRrT5ftBIU0slarUNZohwrkom5oUrETDAiD2mEL3jK+QeUUo4/Oo6/j9bbX6vJCQLZN7ihrkPaQvnsyzG+E4MgkSX2SB5+uzyaDj8VX4QLVMkPI2jrHUvI3EKckYvKK0DRNZ3pw95xqlETuqzcgUkWECLF1feRKHi4bpO0vJIPD9FfqwmUmjny1ux//aJbDuHo7NIWLCkLflZ7p97k9cyBYpwd9B+p1UF6kNIOjvVU/pqNzYEhg5PhSozObgEdVxz58RWWaSAqCCK67Sql+J5uc3I+aWfoMVuTD9K+Ik5/H0l3M5l0UdLuGV2s4LeWi1BbFvJUOefHznj/8FEHwWpUwlQeXxzkCaXDhVIXu+QuZ07TYiTYmiEI2LEouqmfmK2DqxNpxQfGFPTF6WRyTGbYKBDt4AYSfaCc9lkyQNUbHpH4Yt3BSlnAThwrtjaO/V5msVuY+1h4s93PHaiRxnrW88NM+ayWzYF2w=
I'm writing to announce another "release" of my work-in-progress
online book on program proof in Coq: http://adam.chlipala.net/frap/ It's called Formal Reasoning About Programs. I've used it in two graduate classes so far, and I made another announcement about a year ago about an earlier version. The current version is further tested and improved, including with new early tutorial material on Coq and with new chapters on data abstraction and compiler verification. Some subscribers of this mailing list might want to consider running FRAP classes at their own institutions. I think the book and associated materials are now well-enough developed to make that not a crazy idea, and I'm happy to provide personalized support in adapting the class to different settings. Please do let me know if you're considering such an experiment. In terms of educational goals, FRAP is a cousin to Software Foundations. FRAP also aims to introduce Coq to a general computer-science audience, and it also aims to introduce classic semantics and program-proof techniques using Coq. A crucial difference, though, is that FRAP assumes familiarity with topics like proof by induction -- which we generally "teach" to all CS undergraduates but, unfortunately, expect few to master. Students need to be comfortable with both rigorous proofs and programming to keep up with FRAP, though they shouldn't need to come in with any experience in formal methods or functional programming. The payoff from the higher starting expectations is getting through more of the PL canon. I can testify that multiple students with no prior formal-methods experience have accomplished the following by the end of the class, taking a sampling of our assignments. (Admittedly, more such students drop the class than hang on to the end, but I'm still working on tweaking the "gentle on-ramp" aspect!)
A nontrivial Coq library is behind the class, including both an alternative suite of basic tactics, to avoid some common beginner hang-ups; and a set of parameterized proof-automation engines, principally for model checking, abstract interpretation, and discharging verification conditions from separation logic. Almost all the proof techniques in the class are cast in terms of the common formalism of state transition systems and their invariants, a commonality that I find isn't emphasized often enough in semantics classes. (For instance, when we get to type soundness and the "progress and preservation" conditions behind the widely used syntactic approach, we see that they are just a special case of the principles of invariant induction and invariant strengthening that we have been using all along!) I'll be very glad to hear from anyone interested in test-driving
the material. |
- [Coq-Club] Second announcement of an online book on program proof in Coq, Adam Chlipala, 06/03/2017
Archive powered by MHonArc 2.6.18.