Unification/index.html
changeset 107 5c816239deaa
equal deleted inserted replaced
106:ed54ec416bb3 107:5c816239deaa
       
     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>