view staging/index.html @ 574:1dc1d41620b6

Builds with Coq 8.15.2
author Adam Chlipala <adam@chlipala.net>
date Sun, 31 Jul 2022 14:48:22 -0400
parents c3d4217e1da7
children
line wrap: on
line source
<html>
<head>
<link rel="alternate" type="application/rss+xml" title="Updates RSS Feed" href="updates.rss">
<link rel="stylesheet" type="text/css" href="/style.css">
<title>Certified Programming with Dependent Types</title>
</head><body>
<h1>Certified Programming with Dependent Types</h1>
<h2><a href="http://adam.chlipala.net/">Adam Chlipala</a></h2>

<div class="summary" style="overflow: hidden">
<img src="cover.jpg" width="300" height="390" align="left" style="margin-right: 30px" alt="book cover">

<p>This is the web site for a 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>

<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>

<p>Interested in using this book in a course you're teaching?  Please <a href="mailto:adamc@csail.mit.edu">drop me a line</a>!</p>

<p>A traditional hardcopy version is available from <a href="http://mitpress.mit.edu/">MIT Press</a>, who have graciously agreed to allow distribution of free versions online indefinitely, minus the benefits of the Press' copy editing!</p>

<h2>Buy a Copy in Print</h2>
<ul>
<a href="http://www.amazon.com/gp/product/0262026651/ref=as_li_tf_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0262026651&linkCode=as2&tag=adamchli-20">From Amazon.com</a><img src="http://ir-na.amazon-adsystem.com/e/ir?t=adamchli-20&l=as2&o=1&a=0262026651" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br/>
<a href="http://mitpress.mit.edu/books/certified-programming-dependent-types">The MIT Press page for the book</a><br/>
<b>ISBN:</b> 9780262026659
</ul>
</div>

<div class="project">
<h2>Distribution Formats (free version)</h2>
<ul>
<li> <a href="cpdt.pdf">Latest draft as a PDF</a></li>
<li> <a href="html/toc.html">Online version of latest draft, as hyperlinked HTML</a> [note that the author focuses on the PDF version and doesn't make an effort to keep the HTML version particularly pleasant to use]</li>
<li> <a href="cpdt.tgz">Tarball of Coq source to latest draft</a></li>
<li> <a href="cpdtlib.tgz">Tarball of a few generally useful library modules from the book</a> (which are released under an open-source license, while the book generally isn't)</li>
<li> <a href="repo">Public, read-only Mercurial repository</a></li>
<li> <a href="updates.rss">RSS feed of updates</a></li>
</ul>
</div>

<div class="project">
<h2><a href="ex/">Online Collection of Exercises for the Book</a></h2>
</div>

<div class="project">
<h2>Use in classes</h2>

<h3>Classes where CPDT is/was a primary text</h3>
<ul>
<li>CK0230 at Universidade Federal do Cear&aacute; <a href="http://lia.ufc.br/~pmsf/2017-2/pac/">(Fall 2017)</a></li>
<li>EECS 755 at U. Kansas <a href="http://perry.alexander.name/eecs755/">(Fall 2017)</a></li>
<li>CS691PL at U. Mass. Amherst <a href="https://www.cs.umass.edu/~arjun/courses/cs691pl-spring2014/">(Spring 2014)</a></li>
<li>CSE 506 at U. Washington <a href="http://courses.cs.washington.edu/courses/cse506/14wi/">(Winter 2014)</a></li>
<li>EECS 395 at Northwestern <a href="http://www.eecs.northwestern.edu/~robby/courses/395-495-2013-fall/">(Fall 2013)</a></li>
<li>CIS 670 at Penn <a href="http://www.cis.upenn.edu/~bcpierce/courses/670Fall12/">(Fall 2012)</a></li>
<li>6.892 at MIT <a href="http://stellar.mit.edu/S/course/6/fa11/6.892/">(Fall 2011)</a></li>
<li>CS252 at Harvard <a href="http://www.cs.harvard.edu/~adamc/cpdt/">(Fall 2008)</a></li>
</ul>

<h3>Classes where CPDT is/was a supplementary text</h3>
<ul>
<li>ITP at U. T&uuml;bingen <a href="http://ps.informatik.uni-tuebingen.de/teaching/ws18/itp/">(Winter 2018/2019)</a></li>
<li>CS410 at Portland State (<a href="http://web.cecs.pdx.edu/~apt/cs510coq/">Fall 2018</a>, Spring 2013)</li>
<li>CSI 5137 at U. Ottawa (<a href="http://www.site.uottawa.ca/~afelty/csi5137/">Fall 2018</a>)</li>
<li>6.822 at MIT (<a href="https://frap.csail.mit.edu/">Spring 2018</a>, Spring 2017, Spring 2016)</li>
<li>CS 6115 at Cornell <a href="http://www.cs.cornell.edu/courses/cs6115/2017fa/">(Fall 2017)</a></li>
<li>CS750 at IIT Kanpur <a href="https://www.cse.iitk.ac.in/users/ppk/teaching/Programs-Proofs-and-Types/">(Fall 2017)</a></li>
<li>6.820 at MIT (<a href="https://learning-modules.mit.edu/class/index.html?uuid=/course/6/fa17/6.820">Fall 2017</a>, <a href="http://stellar.mit.edu/S/course/6/fa15/6.820/">Fall 2015</a>, <a href="http://stellar.mit.edu/S/course/6/fa13/6.820/">Fall 2013</a>)</li>
<li>CSCI 740 at RIT <a href="https://cs.rit.edu/~hh/teaching/plt17/">(Fall 2017)</a></li>
<li>CMSC631 at U. Maryland <a href="http://cs.umd.edu/class/fall2017/cmsc631/">(Fall 2017)</a></li>
<li>CS260r at Harvard <a href="http://read.seas.harvard.edu/~kohler/class/cs260r-17/">(Spring 2017)</a></li>
<li>CS250 at Harvard <a href="http://www.eecs.harvard.edu/~greg/cs250fall2014/">(Fall 2014)</a></li>
<li>CS 565 at Purdue <a href="https://www.cs.purdue.edu/homes/gpetri/cs565-spring2014/">(Spring 2014)</a></li>
<li>Formal Methods at UST China <a href="http://staff.ustc.edu.cn/~bjhua/courses/theory/2014/index.html">(Spring 2014)</a></li>
<li>185.A60 at TU Vienna <a href="https://tiss.tuwien.ac.at/course/courseDetails.xhtml?windowId=ddd&courseNr=185A60&semester=2014S">(Spring 2014)</a></li>
<li>CMPS203 at UC Santa Cruz <a href="http://courses.soe.ucsc.edu/courses/cmps203/Winter14/01">(Winter 2014)</a></li>
<li>CS 430 at Yale <a href="http://flint.cs.yale.edu/cs430/info.html">(Fall 2013)</a></li>
<li>IFT 6172 at U. Montreal <a href="http://www.iro.umontreal.ca/~monnier/6172/">(Spring 2013)</a></li>
<li>TIES341 at U. Jyv&auml;skyl&auml; <a href="http://functional-programming.it.jyu.fi/TIES343/TIES341.html">(Spring 2013)</a></li>
<li>CMPT 340 at U. Saskatchewan (Spring 2012)</li>
<li>CS252r at Harvard <a href="http://www.eecs.harvard.edu/~greg/cs252rfa11/">(Fall 2011)</a></li>
<li>G54DTP at Nottingham <a href="http://www.cs.nott.ac.uk/~vxc/g54dtp/g54dtp.html">(Spring 2011)</a></li>
<li>Formal Methods at U. Zagreb <a href="http://titan.fsb.hr/~nslani/fm/Site/B424FC03-5F6D-4CD9-8A53-CB71DD137F42.html">(Spring 2011)</a></li>
<li>CMPT 863 at U. Saskatchewan (Spring 2010)</li>
</ul>

<h3>Reading groups</h3>
<ul>
<li>CS 7190 at Cornell <a href="http://www.cs.cornell.edu/projects/pldg/archives.php">(Summer 2013)</a></li>
<li>At Radboud University Nijmegen (<a href="http://www.cs.ru.nl/~spitters/cpdt.html">2010</a>, <a href="http://cs.ru.nl/~dfrumin/cpdt.html">2016/2017</a>)</li>
<li>At U. Wisconsin <a href="http://pages.cs.wisc.edu/~mulhern/coqtalks/2008.09/">(2008-2009)</a></li>
</ul>
</div>

<div class="project">
<h2>Old versions</h2>

<p>Previous versions included a final Part on programming language semantics in particular.  I have decided to separate that part out.  I plan to put it up as a supplementary resource eventually; for now it is simply removed.  (It remains present in the <a href="repo">Mercurial</a> history.)</p>
</div>

<p><img src="scholar.jpg" width="205" height="207"><br></p>
<p>One scholar appreciating the book</p>

<script src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&adInstanceId=14c7f9de-2f5e-4edd-af33-33d7e49e3296"></script>

</body></html>