Nominal/main.html
author Christian Urban <christian.urban@kcl.ac.uk>
Tue, 07 Jan 2025 12:42:42 +0000
changeset 653 2807ec31d144
parent 626 1ef1771f30d7
permissions -rw-r--r--
updated

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>Nominal Methods Group</title>
  <link rel="stylesheet" href="nominal.css">
</head>

<body>

<div align="right" style="position:relative; left:15%; width:80%">
<P>
<small>
<SCRIPT LANGUAGE="JAVASCRIPT" type="text/javascript">
<!--
var r_text = new Array ();
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";

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

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

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

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

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

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

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

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)";

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

var i = Math.floor(r_text.length * Math.random());
document.write(r_text[i]);
//-->
</SCRIPT>
</small>
</P>
</div>


<H1>Our Vision</H1>

<P>
<IMG SRC="new.gif" ALT="" style="" align="left">
<I>We are working on a major overhaul of Nominal Isabelle. The 
latest bundles of Nominal2 are 
<A HREF="http://nms.kcl.ac.uk/christian.urban/Nominal/download.html">here</A>. 
</I></P>


<P>
To root out bugs, every programming language should be designed with the help
of a theorem prover, and every compiler should be verified. With our work we
aim to provide all proving technologies necessary for reasoning
<B>conveniently</B> about programming languages (for example the <A
HREF="http://en.wikipedia.org/wiki/Lambda_calculus" target="_top">lambda
calculus</A>) and compilers. For us, formal proofs should be as easy to perform as informal
"pencil-and-paper" proofs - at least the overhead of formal proofs should not
prevent any formalisation.  Many ideas for our work come from the nominal
logic work by <A HREF="http://www.cl.cam.ac.uk/~amp12/" target="_top">Andrew
Pitts</A>.  Our theoretical results about nominal theories enabled us to
implement Nominal Isabelle on top of Isabelle/HOL.
</P>

<P>
If you want to see a simple example illustrating our results on Nominal Isabelle click
<A HREF="example.html">here</A>. For more interesting results, we already
completed formalisations of Church-Rosser and strong-normalisation proofs as
well as the first part of the <A
HREF="https://www.seas.upenn.edu/~plclub/poplmark/" target="_top">PoplMark
Challenge</A>.  We also formalised some typical proofs from SOS, <A
HREF="http://www.cs.cmu.edu/~crary/" target="_top">Karl Crary</A>'s chapter on
logical relations from <A
HREF="http://www.cis.upenn.edu/~bcpierce/attapl/index.html"
target="_top">Advanced Topics in Types and Programming Languages</A>, and also
a paper on LF by <A HREF="http://www.cs.cmu.edu/~rwh/" target="_top">Harper</A> and 
<A HREF="http://www.cs.cmu.edu/~fp/" target="_top">Pfenning</A>. In the latter paper we found a gap in
the soundness proof and corrected it (we actually gave three solutions to the problem [6]). Urban 
formalised and also corrected the main result of his PhD, a logical relation argument for
establishing strong normalisation of cut-elimination in classical logic. Other
people have used Nominal Isabelle too - see our list of users and projects
<A HREF="users.html">here</A>
</P>

<P>
Note, however, that Nominal Isabelle is still an ongoing research
project, which needs both theoretical and implementation work. You are
encouraged to subscribe to the (moderated)
<a href="https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/nominal-isabelle" target="_top">
mailing list</a> to hear about our progress and to give
us feedback.</P> 

<P>
We have recently re-implemented the underlying nominal theory [7] and also have
a good proposal for how to deal with general binding structures in Nominal Isabelle [8]. 
</P><BR>

<B>References</B><BR><BR>
<CENTER>
<TABLE>
<TR><TD WIDTH="7%" VALIGN=Top>[1]</TD>
    <TD ALIGN=Left>
    <B>Nominal Reasoning Techniques in Isabelle/HOL.</B>  In
      Journal of Automatic Reasoning, Vol. 40(4), 327-356, 2008.
      [<A HREF="http://nms.kcl.ac.uk/christian.urban/Publications/nom-tech.pdf" target="_top">pdf</A>].
      The predecessor paper, which appeaerd at CADE in 2005, received the
      <A HREF="http://www.cadeinc.org/SkolemAward.html">Thoralf Skolem Award</A>.
    </TD>
</TR>
<TR><TD VALIGN=Top>[2]</TD>
    <TD ALIGN=Left>
    <B>A Formal Treatment of the Barendregt Variable Convention in Rule Inductions</B> 
    (Christian Urban and Michael Norrish) 
    Proceedings of the ACM Workshop on Mechanized Reasoning about Languages with Variable
    Binding and Names (MERLIN 2005), Pages 25-32, 2005. &copy ACM, Inc.
    [<A HREF="http://nms.kcl.ac.uk/christian.urban/Publications/merlin-05.ps" target="_top">ps</A>]
    [<A HREF="http://nms.kcl.ac.uk/christian.urban/Publications/merlin-05.pdf" target="_top">pdf</A>]
    </TD>
</TR>
<TR><TD VALIGN=Top>[3]</TD>
    <TD ALIGN=Left>
    <B>A Recursion Combinator for Nominal Datatypes Implemented in Isabelle/HOL</B> 
    (Christian Urban and Stefan Berghofer) 
    Proceedings of the 3rd 
    International Joint Conference on Automated Deduction (IJCAR 2006). In volume 4130 of 
    Lecture Notes in Artificial Intelligence, Pages 498-512, 2006.
    &copy <A HREF="http://link.springer.de/link/service/series/0558/" target="_top">Springer Verlag</A>
    [<A HREF="http://nms.kcl.ac.uk/christian.urban/Publications/ijcar-06.ps" target="_top">ps</A>]
    </TD>
</TR>

<TR><TD VALIGN=Top>[4]</TD>
    <TD ALIGN=Left>
    <B>A Head-to-Head Comparison of de Bruijn Indices and Names.</B> 
    (Stefan Berghofer and Christian Urban) 
    Proceedings of the International Workshop on Logical Frameworks and 
    Meta-Languages: Theory and Practice (LFMTP 2006), ENTCS, Pages 53-67, 2006.
    [<A HREF="http://nms.kcl.ac.uk/christian.urban/Publications/lfmtp-06.ps" target="_top">ps</A>]
    </TD>
</TR>

<TR><TD VALIGN=Top>[5]</TD>
    <TD ALIGN=Left>
    <B>Barendregt's Variable Convention in Rule Inductions.</B> (Christian
    Urban, Stefan Berghofer and Michael Norrish) Proceedings of the 21th
    Conference on Automated Deduction (CADE 2007). In volume 4603 of Lecture
    Notes in Artificial Intelligence, Pages 35-50, 2007.
    &copy <A HREF="http://link.springer.de/link/service/series/0558/tocs/t4603.htm" 
    target="_top">Springer Verlag</A> 
    [<A HREF="http://nms.kcl.ac.uk/christian.urban/Publications/cade07.ps" target="_top">ps</A>]
    </TD>
</TR>

<TR><TD VALIGN=Top>[6]</TD>
    <TD ALIGN=Left>
    <B>Mechanising the Metatheory of LF.</B> 
    (Christian Urban, James Cheney and Stefan Berghofer) 
    In Proc. of the 23rd IEEE Symposium on Logic in Computer Science (LICS 2008), IEEE Computer Society,
    Pages 45-56, 2008.
    [<A HREF="http://nms.kcl.ac.uk/christian.urban/Publications/lics-08.pdf">pdf</A>] More
      information <A HREF="http://nms.kcl.ac.uk/christian.urban/Nominal/LF/index.html">elsewhere</A>.
    </TD>
</TR>

<TR><TD VALIGN=Top>[7]</TD>
    <TD ALIGN=Left>
    <B>Proof Pearl: A New Foundation for Nominal Isabelle.</B> 
    (Brian Huffman and Christian Urban) 
    In Proc. of the 1st Conference on Interactive Theorem Proving (ITP 2010). In volume 6172 in 
    Lecture Notes in Computer Science, Pages 35-50, 2010.
    [<A HREF="http://nms.kcl.ac.uk/christian.urban/Publications/nominal-atoms.pdf">pdf</A>] 
    </TD>
</TR>

<TR><TD VALIGN=Top>[8]</TD>
    <TD ALIGN=Left>
    <B>General Bindings and Alpha-Equivalence in Nominal Isabelle.</B> 
      (Christian Urban and Cezary Kaliszyk) 
      In Proc. of the 20th European Symposium on Programming (ESOP 2011).
      In Volume 6602 of Lecture Notes in Computer Science, Pages 480-500, 2011.
      [<A HREF="http://nms.kcl.ac.uk/christian.urban/Publications/esop-11.pdf">pdf</A>] (and a
      longer version appeared in the Journal of Logical Methods in Computer 
      Science, Volume 8 (2:14), 2012 
      [<A HREF="http://nms.kcl.ac.uk/christian.urban/Publications/lmcs.pdf">pdf</A>])
    </TD>

</TR>



</TABLE>
</CENTER>

<P>
<a href="http://validator.w3.org/check/referer" target="_top">[Validate this page.]</a>

</body>
</html>