(**Reasoningaboutthesyntaxandsemanticsofprogramminglanguagesisapopularapplicationofproofassistants.Beforeprovingthefirsttheoremofthiskind,itisnecessarytochooseaformalencodingoftheinformalnotionsofsyntax,dealingwithsuchissuesas%\index{variablebinding}%variablebindingconventions.Ibelievethepragmaticquestionsinthisdomainarefarfromsettledandremainasimportantopenresearchproblems.However,inthischapter,Iwilldemonstratetwounderusedencodingapproaches.NotethatIamnotrecommendingeitherapproachasasilverbullet!Mileagewillvaryacrossconcreteproblems,andIexpecttheretobesignificantfutureadvancesinourknowledgeofencodingtechniques.Forabroaderintroductiontoprogramminglanguageformalization,usingmoreelementarytechniques,see%\emph{%#<ahref="http://www.cis.upenn.edu/~bcpierce/sf/"><i>#SoftwareFoundations#</i></a>#%}\footnote{\url{http://www.cis.upenn.edu/~bcpierce/sf/}}% by Pierce et al.
Asanexampleofatrickytransformation,consideronethatremovesallusesof%``%#"#[let x = e1 in e2]#"#%''%bysubstituting[e1]for[x]in[e2].Wewillimplementthetranslationbypairingthe%``%#"#compile-time#"#%''%typingenvironmentwitha%``%#"#run-time#"#%''%valueenvironmentor%\emph{%#<i>#substitution#</i>#%}%,mappingeachvariabletoavaluetobesubstitutedforit.Suchasubstitutetermmaybeplacedwithinaprograminapositionwithalargertypingenvironmentthanappliedatthepointwherethesubstitutetermwaschosen.Tosupportsuchcontexttransplantation,weneed%\emph{%#<i>#lifting#</i>#%}%,astandarddeBruijnindicesoperation.Withdependenttyping,liftingcorrespondstoweakeningfortypingjudgments.
<title>New Chapter: "A Taste of Reasoning About Programming Language Syntax"</title>
<pubDate>Sun, 1 Apr 2012 14:58:20 EDT</pubDate>
<link>http://adam.chlipala.net/cpdt/</link>
<author>adamc@csail.mit.edu</author>
<description>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).</description>
</item>
<item>
<title>Update to work with Coq 8.4 beta (and keep working with 8.3pl2)</title>