diff -r ed54ec416bb3 -r 5c816239deaa Unification/index.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Unification/index.html Sun Apr 29 11:29:56 2012 +0100 @@ -0,0 +1,118 @@ + + +Nominal Unification + + + + + + + + + +
+

Nominal Unification [ps]

+ +Christian Urban, +Andrew Pitts, +Murdoch Gabbay +

+ We present a generalisation of first-order unification to the + practically important case of equations between terms involving + binding operations. A substitution of terms for variables + solves such an equation if it makes the equated terms + alpha-equivalent, i.e. equal up to renaming bound names. + For the applications we have in mind, we must consider the simple, + textual form of substitution in which names occurring in terms may + be captured within the scope of binders upon substitution. We are + able to take a "nominal" approach to binding in which bound + entities are explicitly named (rather than using nameless, + de Bruijn-style representations) and yet get a version of this + form of substitution that respects alpha-equivalence and + possesses good algorithmic properties. We achieve this by adapting + an existing idea and introducing a key new idea. The existing + idea is terms involving explicit substitutions of names for names, + except that here we only use explicit permutations + + (bijective substitutions). The key new idea is that the + unification algorithm should solve not only equational problems, + but also problems about the freshness of names for + terms. There is a simple generalisation of the classical + first-order unification algorithm to this setting which retains + the latter's pleasant properties: unification problems involving + alpha-equivalence and freshness are decidable; and solvable + problems possess most general solutions. +

+ +In an appendix we +discuss some issues about the relationship between nominal unification and higher-order +pattern unification. + +



+All results in the paper have been verified in +Isabelle (2004 version). +Below are the theory files. + +

    +
  • Swap.thy +
    amongst other facts proves that swapping is a bijection (on atoms) +
  • Atoms.thy +
    facts about atoms occurring in swappings +
  • Terms.thy +
    defines terms, occurs check and the notion of subterms +
  • Disagreement.thy +
    proves various facts about disagreement sets +
  • Fresh.thy +
    defines the freshness relation and shows facts about its behaviour under swapping +
  • PreEqu.thy +
    defines the relation capturing the notion of alpha-equivalence (on open terms) + and proves a long lemma by mutual induction over the depth of terms which + is needed to show that the relation is an equivalence relation +
  • Equ.thy +
    proves various facts about the equivalence relations +
  • Substs.thy +
    defines substitutions and composition of substitutions, and establishes + some facts of substitution and our equivalence relation +
  • Mgu.thy +
    defines the notion of unification problems and reduction rules over sets + of such problems; proves that every reduction leading to the empty set + produces an mgu +
  • Termination.thy +
    shows that every reduction reduces a (well-founded) measure, thus + proves that every reduction sequence must terminate +
  • Unification.thy +
    proves that all solvable problems reduce only to the empty set + (the "ok" configuration which provides an mgu) and all unsolvable + problems reduce to a "fail" configuration + (for which no unifier exists) +

+The old Isabelle-2002 files can be downloaded +here. +

+A "quick and dirty" implementation of nominal unification in +Ocaml can be +downloaded +elsewhere. + + +



+ +
+

+ +Last modified: Thu Feb 28 20:24:23 CET 2008 + +[Validate this page.] + +