Nominal/main.html--
changeset 416 75df587e1bcd
parent 415 f1be8028a4a9
child 417 9f5d825580b7
equal deleted inserted replaced
415:f1be8028a4a9 416:75df587e1bcd
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
       
     3 <html>
       
     4 <head>
       
     5   <title>Nominal Methods Group</title>
       
     6   <link rel="stylesheet" href="nominal.css">
       
     7 </head>
       
     8 
       
     9 <body>
       
    10 
       
    11 <div align="right" style="position:relative; left:15%; width:80%">
       
    12 <P>
       
    13 <small>
       
    14 <SCRIPT LANGUAGE="JAVASCRIPT" type="text/javascript">
       
    15 <!--
       
    16 var r_text = new Array ();
       
    17 r_text[0] = "<em>\"Proving theorems about substitutions (and related operations such as alpha-conversion) required far more time and HOL code than any other variety of theorem.\"<br><\/em>M. VanInwegen using a concrete representation for binders in her PhD-thesis, 1996";
       
    18 
       
    19 r_text[1] = "<em>\"When doing the formalization, I discovered that the core part of the proof... is fairly straightforward and only requires a good understanding of the paper version. However, in completing the proof I observed that in certain places I had to invest much more work than expected, e.g. proving lemmas about substitution and weakening.\"<\/em><br>T. Altenkirch using de Bruijn indices in Proc. of TLCA, 1993";
       
    20 
       
    21 r_text[2] = "<em>\"Technical work, however, still represents the biggest part of our implementation, mainly due to the managing of de Bruijn indexes...Of our 800 proved lemmas, about 600 are concerned with operators on free names.\"<\/em><br>D. Hirschkoff in Proc. of TPHOLs, 1997";
       
    22 
       
    23 r_text[3] = "<em>\"It took the author many long months to complete the work on this formalization...The part concerning substitution is by far the largest part of the whole development.\"<\/em><br>A. Koprowski using de Bruijn indices in a draft paper, 2006";
       
    24 
       
    25 r_text[4] = "<em>\"We thank T. Thacher Robinson for showing us on August 19, 1962 by a counterexample the existence of an error in our handling of bound variables.\"<\/em><br>S. Kleene in J. of Symbolic Logic 27(1):11-18, 1962";
       
    26 
       
    27 r_text[5] = "<em>\"The main drawback in HOAS is the difficulty of dealing with metatheoretic issues concerning names in processes...As a consequence, some metatheoretic properties involving substitution and freshness of names inside proofs and processes cannot be proved inside the framework and instead have to be postulated.\"<\/em><br>F. Honsell, M. Miculan and I. Scagnetto in Theoretical Computer Science, 253(2):239-285, 2001";
       
    28 
       
    29 r_text[6] = "<em>\"Because Twelf metatheorems are proved using totality assertions about LF type families, the class of metatheorems that can be mechanized is restricted to All/Exists-statements over LF types. On the one hand, as the successful Twelf formalizations cited in Section 5 demonstrate, these All/Exists-statements have proved to be sufficient for formalizing a wide variety of metatheorems about programming languages and logics. On the other hand, we have no way to quantify when metatheorems of this form will be sufficient, and there are some well-known examples of proofs that cannot be formalized directly using Twelf as metatheorem language. For example, proofs by logical relations often require more quantifier complexity than All/Exists-statements afford.\"<\/em><br>Robert Harper and Daniel Licata in a paper on Twelf, 2007";
       
    30 
       
    31 r_text[7] = "<em>\"So we cannot, hand-on-heart, recommend the vanilla LN style for anything but small, kernel language developments. \"<\/em><br>in F-ing Modules by Rossberg, Russo and Dreyer, TLDI 2010";
       
    32 
       
    33 r_text[8] = "<em>\"Higher-order abstract syntax is a convenient way to approach languages with binding, but it is possible to imagine a problem where manipulating a fully concrete object without binding is simpler. In these cases, it is possible to establish a bijection between your HOAS terms and de Bruijn versions of the same terms. \"<\/em><br>Interesting responses from the <A HREF=\"http://twelf.plparty.org/wiki/Ask_Twelf_Elf\">Twelf wiki.</A> (To be honest, the same comment applies to Nominal. --cu)";
       
    34 
       
    35 r_text[9] = "<em>\"I wonder if de Bruijn was any good at remembering names. \"<\/em><br>Darius Jahandarie according to Haskell Digest, Vol 97, Issue 1";
       
    36 
       
    37 var i = Math.floor(r_text.length * Math.random());
       
    38 document.write(r_text[i]);
       
    39 //-->
       
    40 </SCRIPT>
       
    41 </small>
       
    42 </P>
       
    43 </div>
       
    44 
       
    45 
       
    46 <H1>Our Vision</H1>
       
    47 
       
    48 <P>
       
    49 <IMG SRC="new.gif" ALT="" style="" align="left">
       
    50 <I>We are working on a major overhaul of Nominal Isabelle. The 
       
    51 latest bundles of Nominal2 are 
       
    52 <A HREF="http://inf.kcl.ac.uk/staff/urbanc/Nominal/download.html">here</A>. 
       
    53 </I></P>
       
    54 
       
    55 
       
    56 <P>
       
    57 To root out bugs, every programming language should be designed with the help
       
    58 of a theorem prover, and every compiler should be verified. With our work we
       
    59 aim to provide all proving technologies necessary for reasoning
       
    60 <B>conveniently</B> about programming languages (for example the <A
       
    61 HREF="http://en.wikipedia.org/wiki/Lambda_calculus" target="_top">lambda
       
    62 calculus</A>) and compilers. For us, formal proofs should be as easy to perform as informal
       
    63 "pencil-and-paper" proofs - at least the overhead of formal proofs should not
       
    64 prevent any formalisation.  Many ideas for our work come from the nominal
       
    65 logic work by <A HREF="http://www.cl.cam.ac.uk/~amp12/" target="_top">Andrew
       
    66 Pitts</A>.  Our theoretical results about nominal theories enabled us to
       
    67 implement Nominal Isabelle on top of Isabelle/HOL.
       
    68 </P>
       
    69 
       
    70 <P>
       
    71 If you want to see a simple example illustrating our results on Nominal Isabelle click
       
    72 <A HREF="example.html">here</A>. For more interesting results, we already
       
    73 completed formalisations of Church-Rosser and strong-normalisation proofs as
       
    74 well as the first part of the <A
       
    75 HREF="https://www.seas.upenn.edu/~plclub/poplmark/" target="_top">PoplMark
       
    76 Challenge</A>.  We also formalised some typical proofs from SOS, <A
       
    77 HREF="http://www.cs.cmu.edu/~crary/" target="_top">Karl Crary</A>'s chapter on
       
    78 logical relations from <A
       
    79 HREF="http://www.cis.upenn.edu/~bcpierce/attapl/index.html"
       
    80 target="_top">Advanced Topics in Types and Programming Languages</A>, and also
       
    81 a paper on LF by <A HREF="http://www.cs.cmu.edu/~rwh/" target="_top">Harper</A> and 
       
    82 <A HREF="http://www.cs.cmu.edu/~fp/" target="_top">Pfenning</A>. In the latter paper we found a gap in
       
    83 the soundness proof and corrected it (we actually gave three solutions to the problem [6]). Urban 
       
    84 formalised and also corrected the main result of his PhD, a logical relation argument for
       
    85 establishing strong normalisation of cut-elimination in classical logic. Other
       
    86 people have used Nominal Isabelle too:
       
    87 
       
    88 <ul>
       
    89 <li>
       
    90 <A HREF="http://www.it.uu.se/katalog/jesperb/" target="_top">Jesper Bengtson</A>
       
    91 and <A HREF="http://user.it.uu.se/~joachim/" target="_top">Joachim Parrow</A>
       
    92 used Nominal Isabelle to verify the theory of the
       
    93 pi-calculus. They formalised the proof that bisimulation is a congruence (both
       
    94 for late and early operational semantics) available 
       
    95 <a href="http://afp.sourceforge.net/entries/Pi_Calculus.shtml">here</a>.  Moreover they formalised the proof
       
    96 that all late bisimilar processes are early bisimilar. The corresponding
       
    97 papers were presented at FOSSACS'07 and SOS'07. They also used Nominal Isabelle
       
    98 to formalise their work on Psi-calculi, available 
       
    99 <a href="http://afp.sourceforge.net/entries/Psi_Calculi.shtml">here</a>. This was 
       
   100 presented at LICS 2009 and LICS 2010.
       
   101 Jesper finished his PhD about this in 2010 with a large formalisation in Nominal Isabelle. 
       
   102 He also formalised CCS (<a href="http://afp.sourceforge.net/entries/CCS.shtml">here</a>). 
       
   103 All formalisations are part of the <A HREF="http://afp.sourceforge.net/">AFP</A>.
       
   104 <li>
       
   105 <A HREF="http://www.ccs.neu.edu/home/samth/" target="_top">Sam Tobin-Hochstadt</A>, a student
       
   106 of <A HREF="http://www.ccs.neu.edu/home/matthias/" target="_top">Matthias Felleisen</A>, used 
       
   107 Nominal Isabelle to formalise their work on Typed Scheme. This was presented at POPL'08. 
       
   108 
       
   109 <li>
       
   110 <A HREF="http://homepages.inf.ed.ac.uk/ldixon/" target="_top">Lucas Dixon</A>,
       
   111 Alan Smaill and <A HREF="http://homepages.inf.ed.ac.uk/bundy/"
       
   112 target="_top">Alan Bundy</A> used Nominal Isabelle to formalise
       
   113 proof terms of ILL and studied proof planning with this formalisation
       
   114 (EDI-INF-RR-0786). 
       
   115 
       
   116 <li>
       
   117 <A HREF="http://www.cs.swan.ac.uk/~csteme/" target="_top">Temesghen Kahsai</A>
       
   118 and <A HREF="http://users.dimi.uniud.it/~marino.miculan/" target="_top">Marino Miculan</A> formalised
       
   119 the spi-calculus using our work - see 
       
   120 <A HREF="http://www.cs.swan.ac.uk/~csteme/SpiInIsabelle/SpiInIsabelle.html" target="_top">here</A>.
       
   121 
       
   122 <li>
       
   123 Ayesha Yasmeen, a student of  
       
   124 <A HREF="http://www-faculty.cs.uiuc.edu/~egunter/" target="_top">Elsa Gunter</A>,
       
   125 formalised an extension of the ambient calculus using Nominal Isabelle. This
       
   126 was presented in the Emerging Trends section of TPHOLs'08. 
       
   127 
       
   128 <li>
       
   129 <A HREF="http://www.ps.uni-saarland.de/~doczkal/" target="_top">Christian Doczkal</A>,
       
   130 a student of <A HREF="http://www.ps.uni-saarland.de/~smolka/">Gert Smolka</A>, 
       
   131 finished in 2009 his 
       
   132 <A HREF="http://www.ps.uni-saarland.de/~doczkal/master/master.php" target="_top">master thesis</A> 
       
   133 at Saarbr&uuml;cken University using 
       
   134 Nominal Isabelle. He formalised the TT-lifting technique in order to prove 
       
   135 strong normalisation of Moggi's computational metalanguage. This is part of
       
   136 the <A HREF="http://afp.sourceforge.net/entries/Lam-ml-Normalization.shtml">AFP repository</A>.
       
   137 
       
   138 <li>
       
   139 Armin Heller finished his master thesis at the TU Munich in 2010 with a simple compiler verification
       
   140 using Nominal Isabelle.
       
   141 
       
   142 <li>
       
   143 <A HREF="http://homepages.inf.ed.ac.uk/jcheney/" target="_top">James Cheney</A> 
       
   144 formalised a number of properties of the meta-theory of mini-XQuery in Nominal Isabelle.
       
   145 The plan is to extend this work to full XQuery. The preliminary results appeared at CPP'11.
       
   146 
       
   147 <li>
       
   148 <A HREF="http://cl-informatik.uibk.ac.at/users/cek/" target="_top">Cezary Kaliszyk</A> 
       
   149 with input from Henk Barendregt formalised the second fixed point theorem
       
   150 of the lambda calculus using Nominal Isabelle 2. This work appeared at CPP'11.
       
   151 
       
   152 <li>
       
   153 <A HREF="http://www.joachim-breitner.de/blog/" target="_top">Joachim Breitner</A> 
       
   154 used Nominal2 for formalising Launchbury's natural semantics for lazy evaluation. This is part
       
   155 of the <A HREF="http://afp.sourceforge.net/entries/Launchbury.shtml">AFP</A>.
       
   156 
       
   157 <li>
       
   158 <A HREF="http://www.cl.cam.ac.uk/~lp15/" target="_top">Larry Paulson</A> 
       
   159 formalised G&ouml;del's Incompletness Theorems using Nominal2. This work
       
   160 appeared in the Journal of Automated Reasoning in 2015.
       
   161 
       
   162 <li>
       
   163 <A HREF="http://www.joachim-breitner.de/blog/" target="_top">Joachim Breitner</A>
       
   164 proved the correctness of a GHC compiler transformation using Nominal2.
       
   165 This work appeared at the
       
   166 <A HREF="https://www.haskell.org/haskell-symposium/2015/">Haskell Symposium 2015</A>.
       
   167 </ul>
       
   168 </P>
       
   169 
       
   170 <P>
       
   171 Note, however, that Nominal Isabelle is still an ongoing research
       
   172 project, which needs both theoretical and implementation work. You are
       
   173 encouraged to subscribe to the (moderated)
       
   174 <a href="https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/nominal-isabelle" target="_top">
       
   175 mailing list</a> to hear about our progress and to give
       
   176 us feedback.</P> 
       
   177 
       
   178 <P>
       
   179 We have recently re-implemented the underlying nominal theory [7] and also have
       
   180 a good proposal for how to deal with general binding structures in Nominal Isabelle [8]. 
       
   181 </P><BR>
       
   182 
       
   183 <B>References</B><BR><BR>
       
   184 <CENTER>
       
   185 <TABLE>
       
   186 <TR><TD WIDTH="7%" VALIGN=Top>[1]</TD>
       
   187     <TD ALIGN=Left>
       
   188     <B>Nominal Reasoning Techniques in Isabelle/HOL.</B>  In
       
   189       Journal of Automatic Reasoning, Vol. 40(4), 327-356, 2008.
       
   190       [<A HREF="http://http://www.inf.kcl.ac.uk/staff/urbanc/Publications/nom-tech.ps" target="_top">ps</A>].
       
   191       The predecessor paper, which appeaerd at CADE in 2005, received the
       
   192       <A HREF="http://www.cadeinc.org/SkolemAward.html">Thoralf Skolem Award</A>.
       
   193     </TD>
       
   194 </TR>
       
   195 <TR><TD VALIGN=Top>[2]</TD>
       
   196     <TD ALIGN=Left>
       
   197     <B>A Formal Treatment of the Barendregt Variable Convention in Rule Inductions</B> 
       
   198     (Christian Urban and Michael Norrish) 
       
   199     Proceedings of the ACM Workshop on Mechanized Reasoning about Languages with Variable
       
   200     Binding and Names (MERLIN 2005), Pages 25-32, 2005. &copy ACM, Inc.
       
   201     [<A HREF="http://http://www.inf.kcl.ac.uk/staff/urbanc/Publications/merlin-05.ps" target="_top">ps</A>]
       
   202     [<A HREF="http://http://www.inf.kcl.ac.uk/staff/urbanc/Publications/merlin-05.pdf" target="_top">pdf</A>]
       
   203     </TD>
       
   204 </TR>
       
   205 <TR><TD VALIGN=Top>[3]</TD>
       
   206     <TD ALIGN=Left>
       
   207     <B>A Recursion Combinator for Nominal Datatypes Implemented in Isabelle/HOL</B> 
       
   208     (Christian Urban and Stefan Berghofer) 
       
   209     Proceedings of the 3rd 
       
   210     International Joint Conference on Automated Deduction (IJCAR 2006). In volume 4130 of 
       
   211     Lecture Notes in Artificial Intelligence, Pages 498-512, 2006.
       
   212     &copy <A HREF="http://link.springer.de/link/service/series/0558/" target="_top">Springer Verlag</A>
       
   213     [<A HREF="http://http://www.inf.kcl.ac.uk/staff/urbanc/Publications/ijcar-06.ps" target="_top">ps</A>]
       
   214     </TD>
       
   215 </TR>
       
   216 
       
   217 <TR><TD VALIGN=Top>[4]</TD>
       
   218     <TD ALIGN=Left>
       
   219     <B>A Head-to-Head Comparison of de Bruijn Indices and Names.</B> 
       
   220     (Stefan Berghofer and Christian Urban) 
       
   221     Proceedings of the International Workshop on Logical Frameworks and 
       
   222     Meta-Languages: Theory and Practice (LFMTP 2006), ENTCS, Pages 53-67, 2006.
       
   223     [<A HREF="http://http://www.inf.kcl.ac.uk/staff/urbanc/Publications/lfmtp-06.ps" target="_top">ps</A>]
       
   224     </TD>
       
   225 </TR>
       
   226 
       
   227 <TR><TD VALIGN=Top>[5]</TD>
       
   228     <TD ALIGN=Left>
       
   229     <B>Barendregt's Variable Convention in Rule Inductions.</B> (Christian
       
   230     Urban, Stefan Berghofer and Michael Norrish) Proceedings of the 21th
       
   231     Conference on Automated Deduction (CADE 2007). In volume 4603 of Lecture
       
   232     Notes in Artificial Intelligence, Pages 35-50, 2007.
       
   233     &copy <A HREF="http://link.springer.de/link/service/series/0558/tocs/t4603.htm" 
       
   234     target="_top">Springer Verlag</A> 
       
   235     [<A HREF="http://http://www.inf.kcl.ac.uk/staff/urbanc/Publications/cade07.ps" target="_top">ps</A>]
       
   236     </TD>
       
   237 </TR>
       
   238 
       
   239 <TR><TD VALIGN=Top>[6]</TD>
       
   240     <TD ALIGN=Left>
       
   241     <B>Mechanising the Metatheory of LF.</B> 
       
   242     (Christian Urban, James Cheney and Stefan Berghofer) 
       
   243     In Proc. of the 23rd IEEE Symposium on Logic in Computer Science (LICS 2008), IEEE Computer Society,
       
   244     Pages 45-56, 2008.
       
   245     [<A HREF="http://http://www.inf.kcl.ac.uk/staff/urbanc/Publications/lics-08.pdf">pdf</A>] More
       
   246       information <A HREF="http://http://www.inf.kcl.ac.uk/staff/urbanc/Nominal/LF/index.html">elsewhere</A>.
       
   247     </TD>
       
   248 </TR>
       
   249 
       
   250 <TR><TD VALIGN=Top>[7]</TD>
       
   251     <TD ALIGN=Left>
       
   252     <B>Proof Pearl: A New Foundation for Nominal Isabelle.</B> 
       
   253     (Brian Huffman and Christian Urban) 
       
   254     In Proc. of the 1st Conference on Interactive Theorem Proving (ITP 2010). In volume 6172 in 
       
   255     Lecture Notes in Computer Science, Pages 35-50, 2010.
       
   256     [<A HREF="http://http://www.inf.kcl.ac.uk/staff/urbanc/Publications/nominal-atoms.pdf">pdf</A>] 
       
   257     </TD>
       
   258 </TR>
       
   259 
       
   260 <TR><TD VALIGN=Top>[8]</TD>
       
   261     <TD ALIGN=Left>
       
   262     <B>General Bindings and Alpha-Equivalence in Nominal Isabelle.</B> 
       
   263       (Christian Urban and Cezary Kaliszyk) 
       
   264       In Proc. of the 20th European Symposium on Programming (ESOP 2011).
       
   265       In Volume 6602 of Lecture Notes in Computer Science, Pages 480-500, 2011.
       
   266       [<A HREF="http://http://www.inf.kcl.ac.uk/staff/urbanc/Publications/esop-11.pdf">pdf</A>] (and a
       
   267       longer version appeared in the Journal of Logical Methods in Computer 
       
   268       Science, Volume 8 (2:14), 2012 
       
   269       [<A HREF="http://http://www.inf.kcl.ac.uk/staff/urbanc/Publications/lmcs.pdf">pdf</A>])
       
   270     </TD>
       
   271 
       
   272 </TR>
       
   273 
       
   274 
       
   275 
       
   276 </TABLE>
       
   277 </CENTER>
       
   278 
       
   279 <P>
       
   280 <a href="http://validator.w3.org/check/referer" target="_top">[Validate this page.]</a>
       
   281 
       
   282 </body>
       
   283 </html>