adamc@39
|
1 <html>
|
adamc@39
|
2 <head>
|
adamc@268
|
3 <link rel="alternate" type="application/rss+xml" title="Updates RSS Feed" href="updates.rss">
|
adamc@39
|
4 <link rel="stylesheet" type="text/css" href="/style.css">
|
adamc@39
|
5 <title>Certified Programming with Dependent Types</title>
|
adamc@39
|
6 </head><body>
|
adamc@39
|
7 <h1>Certified Programming with Dependent Types</h1>
|
adamc@69
|
8 <h2><a href="http://adam.chlipala.net/">Adam Chlipala</a></h2>
|
adamc@39
|
9
|
adamc@39
|
10 <div class="summary">
|
adamc@39
|
11 <p>This is the web site for an in-progress textbook about practical engineering with <a href="http://coq.inria.fr/">the Coq proof assistant</a>. The focus is on building programs with proofs of correctness, using dependent types and scripted proof automation.</p>
|
adamc@267
|
12
|
adamc@267
|
13 <p>I'm following an unusual philosophy in this book, so it may be of interest even to long-time Coq users. At the same time, I hope that it provides an easier introduction for newcomers, since short and automated proofs are the starting point, rather than an advanced topic.</p>
|
adamc@267
|
14
|
adamc@267
|
15 <p>The final part of the book applies the earlier parts' tools to examples in programming languages and compilers.</p>
|
adamc@267
|
16
|
adamc@270
|
17 <p>Interested in beta testing this book in a course you're teaching? Please <a href="mailto:adam@chlipala.net">drop me a line</a>!</p>
|
adam@299
|
18
|
adam@299
|
19 <p>A traditional hardcopy version will appear from <a href="http://mitpress.mit.edu/">MIT Press</a> Real Soon Now.</p>
|
adamc@39
|
20 </div>
|
adamc@39
|
21
|
adamc@39
|
22 <div class="project">
|
adamc@226
|
23 <h2>Distribution Formats</h2>
|
adamc@39
|
24 <ul>
|
adamc@39
|
25 <li> <a href="cpdt.pdf">Latest draft as a PDF</a></li>
|
adamc@39
|
26 <li> <a href="html/toc.html">Online version of latest draft, as hyperlinked HTML</a></li>
|
adamc@39
|
27 <li> <a href="cpdt.tgz">Tarball of Coq source to latest draft</a></li>
|
adamc@268
|
28 <li> <a href="updates.rss">RSS feed of updates</a></li>
|
adamc@226
|
29 </ul>
|
adamc@226
|
30 </div>
|
adamc@226
|
31
|
adamc@226
|
32 <div class="project">
|
adamc@226
|
33 <h2>Used by:</h2>
|
adamc@226
|
34 <ul>
|
adamc@226
|
35 <li> CS252 at Harvard <a href="http://www.cs.harvard.edu/~adamc/cpdt/">(Fall 2008)</a></li>
|
adamc@226
|
36 </ul>
|
adamc@226
|
37 </div>
|
adamc@226
|
38
|
adamc@226
|
39 <div class="project">
|
adamc@226
|
40 <h2>Status</h2>
|
adamc@226
|
41
|
adam@299
|
42 <p>Updated on November 16, 2009 with a version retargeted to Coq 8.2pl1, and then again on January 14, 2011 to support Coq 8.3.</p>
|
adamc@231
|
43
|
adamc@266
|
44 <p>The current version is effectively a beta release. It is intended to be consistent, self-contained, and useful, both for individual study and for introductory theorem-proving classes aimed at students with ML or Haskell experience and with basic familiarity with programming language theory.</p>
|
adamc@266
|
45
|
adamc@266
|
46 <p>The main omissions have to do with some supporting resources that I didn't get around to implementing when I used this book for a course. Some suggested exercises are present, but only at points where I was looking to assign an exercise in the course. Some chapters are lacking the annotations used to build reduced versions of their source code, where some definitions and proofs have been elided; the course instructor can step through such a file, guiding class participants in filling in the omitted code.</p>
|
adamc@267
|
47
|
adamc@267
|
48 <p>I'm also not sure how much of the final part, on programming languages and compilers, belongs in this book. It might change significantly or go away.</p>
|
adamc@39
|
49 </div>
|
adamc@39
|
50
|
adamc@39
|
51 </body></html>
|