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