|         |      1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"  | 
|         |      2 "http://www.w3.org/TR/REC-html40/loose.dtd">  | 
|         |      3 <HEAD> | 
|         |      4 <TITLE>Nominal Unification</TITLE> | 
|         |      5 <BASE HREF="http://www4.in.tum.de/~urbanc/Unification"> | 
|         |      6 </HEAD> | 
|         |      7  | 
|         |      8 <BODY TEXT="#000000"  | 
|         |      9       BGCOLOR="#4169E1"  | 
|         |     10       LINK="#0000EF"  | 
|         |     11       VLINK="#51188E"  | 
|         |     12       ALINK="#FF0000"> | 
|         |     13  | 
|         |     14 <TABLE WIDTH="100%"  | 
|         |     15        BGCOLOR="#4169E1"  | 
|         |     16        BORDER="0"    | 
|         |     17        FRAME="border"   | 
|         |     18        CELLPADDING="10"      | 
|         |     19        CELLSPACING="2" | 
|         |     20        RULES="all"> | 
|         |     21  | 
|         |     22 <!-- right column --> | 
|         |     23 <TR> | 
|         |     24 <TD BGCOLOR="#FFFFFF" WIDTH="75%"> | 
|         |     25 <H2>Nominal Unification [<a HREF="http://www4.in.tum.de/~urbanc/Unification/nomu-tcs.ps">ps</a>]</H2> | 
|         |     26   | 
|         |     27 <A HREF="http://www4.in.tum.de/~urbanc/">Christian Urban</A>, | 
|         |     28 <A HREF="http://www.cl.cam.ac.uk/~amp12/">Andrew Pitts</A>, | 
|         |     29 Murdoch Gabbay | 
|         |     30 <p> | 
|         |     31     We present a generalisation of first-order unification to the | 
|         |     32     practically important case of equations between terms involving | 
|         |     33     <i>binding operations</i>. A substitution of terms for variables | 
|         |     34     solves such an equation if it makes the equated terms | 
|         |     35     <i>alpha-equivalent</i>, i.e. equal up to renaming bound names. | 
|         |     36     For the applications we have in mind, we must consider the simple, | 
|         |     37     textual form of substitution in which names occurring in terms may | 
|         |     38     be captured within the scope of binders upon substitution.  We are | 
|         |     39     able to take a "nominal" approach to binding in which bound | 
|         |     40     entities are explicitly named (rather than using nameless, | 
|         |     41     de Bruijn-style representations) and yet get a version of this | 
|         |     42     form of substitution that respects alpha-equivalence and | 
|         |     43     possesses good algorithmic properties. We achieve this by adapting | 
|         |     44     an existing idea and introducing a key new idea.  The existing | 
|         |     45     idea is terms involving explicit substitutions of names for names, | 
|         |     46     except that here we only use <i>explicit permutations</i> | 
|         |     47  | 
|         |     48     (bijective substitutions).  The key new idea is that the | 
|         |     49     unification algorithm should solve not only equational problems, | 
|         |     50     but also problems about the <i>freshness</i> of names for | 
|         |     51     terms. There is a simple generalisation of the classical | 
|         |     52     first-order unification algorithm to this setting which retains | 
|         |     53     the latter's pleasant properties: unification problems involving | 
|         |     54     alpha-equivalence and freshness are decidable; and solvable | 
|         |     55     problems possess most general solutions.   | 
|         |     56 <BR><BR> | 
|         |     57  | 
|         |     58 In an <a HREF="http://www4.in.tum.de/~urbanc/Unification/app-nomu.ps">appendix</a> we | 
|         |     59 discuss some issues about the relationship between nominal unification and higher-order | 
|         |     60 pattern unification.  | 
|         |     61  | 
|         |     62 <BR><BR><BR><BR> | 
|         |     63 All results in the paper have been verified in  | 
|         |     64 <A HREF="http://www.cl.cam.ac.uk/Research/HVG/Isabelle/">Isabelle</A> (2004 version).  | 
|         |     65 Below are the theory files. | 
|         |     66  | 
|         |     67 <ul> | 
|         |     68 <li><A HREF="Unification/Swap.thy">Swap.thy</A> | 
|         |     69     <br /> amongst other facts proves that swapping is a bijection (on atoms) | 
|         |     70 <li><A HREF="Unification/Atoms.thy">Atoms.thy</A> | 
|         |     71     <br /> facts about atoms occurring in swappings | 
|         |     72 <li><A HREF="Unification/Terms.thy">Terms.thy</A> | 
|         |     73     <br /> defines terms, occurs check and the notion of subterms | 
|         |     74 <li><A HREF="Unification/Disagreement.thy">Disagreement.thy</A> | 
|         |     75     <br /> proves various facts about disagreement sets | 
|         |     76 <li><A HREF="Unification/Fresh.thy">Fresh.thy</A> | 
|         |     77     <br /> defines the freshness relation and shows facts about its behaviour under swapping | 
|         |     78 <li><A HREF="Unification/PreEqu.thy">PreEqu.thy</A> | 
|         |     79     <br /> defines the relation capturing the notion of alpha-equivalence (on open terms)  | 
|         |     80            and proves a long lemma by mutual induction over the depth of terms which | 
|         |     81            is needed to show that the relation is an equivalence relation | 
|         |     82 <li><A HREF="Unification/Equ.thy">Equ.thy</A> | 
|         |     83     <br />  proves various facts about the equivalence relations | 
|         |     84 <li><A HREF="Unification/Substs.thy">Substs.thy</A> | 
|         |     85     <br />  defines substitutions and composition of substitutions, and establishes | 
|         |     86             some facts of substitution and our equivalence relation | 
|         |     87 <li><A HREF="Unification/Mgu.thy">Mgu.thy</A> | 
|         |     88     <br />  defines the notion of unification problems and reduction rules over sets  | 
|         |     89             of such problems; proves that every reduction leading to the empty set  | 
|         |     90             produces an mgu  | 
|         |     91 <li><A HREF="Unification/Termination.thy">Termination.thy</A> | 
|         |     92     <br />  shows that every reduction reduces a (well-founded) measure, thus | 
|         |     93             proves that every reduction sequence must terminate | 
|         |     94 <li><A HREF="Unification/Unification.thy">Unification.thy</A> | 
|         |     95     <br />  proves that all solvable problems reduce only to the empty set  | 
|         |     96             (the "ok" configuration which provides an mgu) and all unsolvable | 
|         |     97             problems reduce to a "fail" configuration  | 
|         |     98             (for which no unifier exists) | 
|         |     99 </uL><BR> | 
|         |    100 The old Isabelle-2002 files can be downloaded  | 
|         |    101 <A HREF="http://www4.in.tum.de/~urbanc/Unification/nomu-2002.tgz">here</A>. | 
|         |    102 <BR><BR> | 
|         |    103 A "quick and dirty" implementation of nominal unification in  | 
|         |    104 <A HREF="http://caml.inria.fr/">Ocaml</A> can be  | 
|         |    105 downloaded  | 
|         |    106 <A HREF="http://www4.in.tum.de/~urbanc/Unification/unification.ml">elsewhere</A>. | 
|         |    107  | 
|         |    108  | 
|         |    109 <BR><BR><BR><BR> | 
|         |    110  | 
|         |    111 </TABLE> | 
|         |    112 <P><!-- Created: Tue Mar  4 00:23:25 GMT 1997 --> | 
|         |    113 <!-- hhmts start --> | 
|         |    114 Last modified: Thu Feb 28 20:24:23 CET 2008 | 
|         |    115 <!-- hhmts end --> | 
|         |    116 <a href="http://validator.w3.org/check/referer">[Validate this page.]</a> | 
|         |    117 </BODY> | 
|         |    118 </HTML> |