<p>This is the web site for an in-progress textbook about practical engineering with <ahref="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>
<p>This is the text for a <ahref="http://www.cs.harvard.edu/~adamc/cpdt/">Fall 2008 class at Harvard</a>.</p>
</div>
<divclass="project">
<h2>Distribution Formats</h2>
<ul>
<li><ahref="cpdt.pdf">Latest draft as a PDF</a></li>
<li><ahref="html/toc.html">Online version of latest draft, as hyperlinked HTML</a></li>
<li><ahref="cpdt.tgz">Tarball of Coq source to latest draft</a></li>
</ul>
</div>
<divclass="project">
<h2>Used by:</h2>
<ul>
<li> CS252 at Harvard <ahref="http://www.cs.harvard.edu/~adamc/cpdt/">(Fall 2008)</a></li>
</ul>
</div>
<divclass="project">
<h2>Status</h2>
<p>Updated on November 16, 2009 with a version retargeted to Coq 8.2pl1. Some chapters on programming languages and compilers are empty or just contain Coq code; these should be filled in soon-ish. Additional plans: a chapter on (practical aspects of) CIC metatheory and axioms; a chapter on best practices with dependent De Bruijn syntax; some examples of locally nameless syntax; more examples of Ltac design patterns; discussion of tactic debugging and maintenance.</p>