adamc@268: adamc@268: adamc@268: adamc@268: adamc@268: Certified Programming with Dependent Types updates adamc@268: http://adam.chlipala.net/cpdt/ adamc@268: Updates to a draft textbook adamc@268: adamc@268: en-us adamc@270: adam@chlipala.net adamc@270: adam@chlipala.net adamc@268: http://blogs.law.harvard.edu/tech/rss adamc@268: adamc@268: adam@445: Vertical spacing adam@445: Wed, 1 Aug 2012 17:29:20 EDT adam@445: http://adam.chlipala.net/cpdt/ adam@445: adamc@csail.mit.edu adam@445: This is a mundane revision where I've normalized the vertical space separators between text sections. Like the last release, this one won't build for LaTeX without a coqdoc patch that may not be in Coq's Subversion repos yet. This is the home stretch; I am going to make a proofreading pass through everything, and then I'll be looking for other proofreaders to help come up with the final version to be published by MIT Press! adam@445: adam@445: adam@445: adam@438: Taking advantage of coqdoc changes adam@438: Fri, 27 Jul 2012 16:48:35 EDT adam@438: http://adam.chlipala.net/cpdt/ adam@438: adamc@csail.mit.edu adam@438: Starting with some help from Matthieu Sozeau, a number of improvements have been made to the coqdoc program, which is used to generate CPDT renderings. The changes aren't in any Coq release yet (not even an 8.4 beta release), but I hope they will make it into the final 8.4, and I've used a working Coq version to generate pretty outputs. Now the only concrete change I have planned before the final CPDT version for publication is tweaking of empty vertical space between some page elements. adam@438: adam@438: adam@438: adam@415: Preparing for final typesetting adam@415: Fri, 8 Jun 2012 15:55:17 EDT adam@415: http://adam.chlipala.net/cpdt/ adam@415: adamc@csail.mit.edu adam@415: I'm getting ready for the final push to get the PDF rendering into shape to use as the final version of the book to deliver to MIT Press. I plan to get some coqdoc issues fixed, and I've undone some hack-arounds that were meant to avoid a need for coqdoc changes, in addition to some general improvements to the markup. I've also made some changes to take advantage of Coq 8.4 features. adam@415: adam@415: adam@415: adam@396: Some content finishing touches adam@396: Sun, 22 Apr 2012 16:26:07 EDT adam@396: http://adam.chlipala.net/cpdt/ adam@396: adamc@csail.mit.edu adam@396: In introduction, clarify meaning of certified programming; add some citations. adam@396: adam@396: adam@396: adam@390: A number of revisions adam@390: Thu, 12 Apr 2012 18:42:46 EDT adam@390: http://adam.chlipala.net/cpdt/ adam@390: adamc@csail.mit.edu adam@391: Stronger theorem at end of "Infinite Data and Proofs" chapter; in "Reasoning About Equality Proofs" chapter, more discussion of axiom avoidance and tactic pitfalls for JMeq; general passes through "Proof Search in Ltac" and "Proving in the Large" chapters; in "Universes and Axioms" chapter, a class of baffling error messages explained; comments added to CpdtTactics.v. adam@390: adam@390: adam@390: adam@383: New Conclusion page adam@383: Tue, 3 Apr 2012 15:08:37 EDT adam@383: http://adam.chlipala.net/cpdt/ adam@383: adamc@csail.mit.edu adam@383: adam@383: adam@383: adam@383: New chapter: "A Taste of Reasoning About Programming Language Syntax" adam@381: Sun, 1 Apr 2012 14:58:20 EDT adam@381: http://adam.chlipala.net/cpdt/ adam@381: adamc@csail.mit.edu adam@381: This new chapter condenses and recasts some material from the old Part IV of CPDT. I felt the level of detail I was giving was out of proportion to my certainty that the techniques I was demonstrating would make sense to use in 5 years, so I'm opting instead for a quick tour that is mostly meant to convey the moral that encoding choices matter (but also to introduce PHOAS). adam@381: adam@381: adam@381: adam@380: Update to work with Coq 8.4 beta (and keep working with 8.3pl2) adam@380: Thu, 29 Mar 2012 18:10:00 EDT adam@380: http://adam.chlipala.net/cpdt/ adam@380: adamc@csail.mit.edu adam@380: adam@380: adam@380: adam@378: Two new tricks useful in proof by reflection adam@378: Thu, 29 Mar 2012 17:12:01 EDT adam@378: http://adam.chlipala.net/cpdt/ adam@378: adamc@csail.mit.edu adam@378: The "Universes and Axioms" chapter has a new ending describing a way to avoid axioms in dealing with reified typing environments, and the "Proof by Reflection" chapter has a new ending explaining how to write a reification function that recurses under binders. adam@378: adam@378: adam@378: adam@376: Revisions touching many chapters adam@376: Mon, 26 Mar 2012 16:59:11 EDT adam@376: http://adam.chlipala.net/cpdt/ adam@376: adamc@csail.mit.edu adam@376: I've moved the exercises out of the book, because I don't feel that I have the time to produce well-tested exercises yet; changed crush's use of autorewrite so that Hint Rewrite commands may be given without explicit hint databases; added a crucial new section to "More Dependent Types"; and added prose and other improvements to "Proof Search by Logic Programming." adam@376: adam@376: adam@376: adam@368: A pass through "Proving in the Large" adam@368: Wed, 9 Nov 2011 15:25:42 EST adam@368: http://adam.chlipala.net/cpdt/ adam@368: adamc@csail.mit.edu adam@368: adam@368: adam@368: adam@365: A pass through "Reasoning About Equality Proofs" adam@365: Sun, 6 Nov 2011 16:50:59 EST adam@365: http://adam.chlipala.net/cpdt/ adam@365: adamc@csail.mit.edu adam@365: I've added a new discussion of the reduction behavior of "fix" and "cofix" terms. adam@365: adam@365: adam@365: adam@361: A pass through "Proof by Reflection" adam@361: Wed, 2 Nov 2011 16:22:00 EDT adam@361: http://adam.chlipala.net/cpdt/ adam@361: adamc@csail.mit.edu adam@361: I've added a new subsection on reification of term syntax with Ltac, in a way that preserves equality between uninterpreted subterms. adam@361: adam@361: adam@361: adam@358: A pass through "Generic Programming" adam@358: Mon, 31 Oct 2011 14:23:29 EDT adam@358: http://adam.chlipala.net/cpdt/ adam@358: adamc@csail.mit.edu adam@358: adam@358: adam@358: adam@357: New chapter: "General Recursion" adam@357: Fri, 28 Oct 2011 18:25:46 EDT adam@357: http://adam.chlipala.net/cpdt/ adam@357: adamc@csail.mit.edu adam@357: adam@357: adam@357: adam@347: A pass through "Infinite Data and Proofs" adam@347: Sun, 23 Oct 2011 14:47:55 EDT adam@347: http://adam.chlipala.net/cpdt/ adam@347: adamc@csail.mit.edu adam@347: I've added new discussion of co-induction principles and replaced the programming language semantics example. adam@347: adam@347: adam@347: adam@345: A pass through "Universes and Axioms" adam@345: Wed, 19 Oct 2011 09:58:57 EDT adam@345: http://adam.chlipala.net/cpdt/ adam@345: adamc@csail.mit.edu adam@345: I've added a new section on avoiding axioms. adam@345: adam@345: adam@345: adam@342: A pass through "Dependent Data Structures" adam@342: Sun, 16 Oct 2011 10:45:48 EDT adam@342: http://adam.chlipala.net/cpdt/ adam@342: adamc@csail.mit.edu adam@342: adam@342: adam@342: adam@338: A pass through "More Dependent Types" adam@338: Mon, 10 Oct 2011 15:59:55 EDT adam@338: http://adam.chlipala.net/cpdt/ adam@338: adamc@csail.mit.edu adam@338: adam@338: adam@338: adam@336: A pass through "Subset Types and Variations" adam@336: Wed, 5 Oct 2011 11:32:54 EDT adam@336: http://adam.chlipala.net/cpdt/ adam@336: adamc@csail.mit.edu adam@336: adam@336: adam@336: adam@333: New Match exercises; remove Part IV adam@333: Mon, 3 Oct 2011 11:18:27 EDT adam@333: http://adam.chlipala.net/cpdt/ adam@333: adamc@csail.mit.edu adam@333: The old Part IV is still present in old versions available through the public Mercurial repository. adam@333: adam@333: adam@333: adam@325: New chapter on logic programing adam@325: Thu, 22 Sep 2011 11:08:30 EDT adam@325: http://adam.chlipala.net/cpdt/ adam@325: adamc@csail.mit.edu adam@325: Some new content is missing prose. adam@325: adam@325: adam@325: adam@322: A pass through Chapter 4 adam@322: Mon, 19 Sep 2011 14:03:40 EDT adam@322: http://adam.chlipala.net/cpdt/ adam@322: adamc@csail.mit.edu adam@322: adam@322: adam@322: adam@321: Added a public Mercurial repository with the book source adam@321: Wed, 14 Sep 2011 14:01:23 EDT adam@321: http://adam.chlipala.net/cpdt/repo adam@321: adamc@csail.mit.edu adam@321: adam@321: adam@321: adam@319: A pass through Chapter 3 adam@319: Mon, 12 Sep 2011 16:47:12 EDT adam@319: http://adam.chlipala.net/cpdt/ adam@319: adamc@csail.mit.edu adam@319: adam@319: adam@319: adam@314: Renamed "Tactics" module to "CpdtTactics" adam@314: Wed, 7 Sep 2011 13:45:31 EDT adam@314: http://adam.chlipala.net/cpdt/ adam@314: adamc@csail.mit.edu adam@314: This avoids a name clash with a module included with Coq. adam@314: adam@314: adam@314: adam@313: A pass through Chapter 2 adam@313: Thu, 1 Sep 2011 11:32:42 EDT adam@313: http://adam.chlipala.net/cpdt/ adam@313: adamc@csail.mit.edu adam@313: I've removed some material on dependent pattern-matching but not yet compensated by adding it back in somewhere else. adam@313: adam@313: adam@313: adam@308: A pass through Chapter 1 adam@308: Thu, 25 Aug 2011 14:47:30 EDT adam@308: http://adam.chlipala.net/cpdt/ adam@308: adamc@csail.mit.edu adam@308: I've started passes through all chapters, with an eye toward getting ready both for my fall class and publication by MIT Press. I'm adding bibliographic references, index entries, and additional exercises, along with the usual tweaks and improvements. The version I've just put up is the result of a pass through Chapter 1. Feedback is especially welcome now, as I get the book into final publishable shape! adam@308: adam@308: adam@308: adam@303: Tweaks to recent update to satisfy coqdoc 8.3 adam@303: Tue, 18 Jan 2011 08:15:00 EST adam@303: http://adam.chlipala.net/cpdt/ adam@303: adam@chlipala.net adam@303: adam@303: adam@303: adam@299: Updated to work with both Coq 8.3 and Coq 8.2 adam@299: Fri, 14 Jan 2011 15:39:00 EST adam@299: http://adam.chlipala.net/cpdt/ adam@299: adam@chlipala.net adam@299: adam@299: adam@299: adam@293: A significant revision pass, based on extensive feedback kindly provided by Pierre Castéran adam@293: Wed, 10 Nov 2010 16:33:49 EST adam@293: http://adam.chlipala.net/cpdt/ adam@293: adam@chlipala.net adam@293: adam@293: adam@293: adam@276: Mention that recent versions of Coq allow some omitted "match" cases adam@276: Mon, 28 Jun 2010 07:59:29 EDT adam@276: http://adam.chlipala.net/cpdt/ adam@276: adam@chlipala.net adam@276: adam@276: adam@276: adamc@274: A few small typo fixes adamc@274: Sat, 15 May 2010 06:42:47 EDT adamc@274: http://adam.chlipala.net/cpdt/ adamc@274: adam@chlipala.net adamc@274: adamc@274: adamc@274: adamc@270: Fix table of contents and mention another command needed to enter Chapter 2's code literally adamc@270: Wed, 3 Feb 2010 08:16:16 EST adamc@270: http://adam.chlipala.net/cpdt/ adamc@270: adam@chlipala.net adamc@270: adamc@270: adamc@270: adamc@268: RSS feed created adamc@268: Wed, 27 Jan 2010 07:33:34 EST adamc@268: http://adam.chlipala.net/cpdt/ adamc@270: adam@chlipala.net adamc@268: adamc@268: adamc@268: adamc@268: