A polynomial nominal unification algorithm

  • Authors:
  • Christophe Calvès;Maribel Fernández

  • Affiliations:
  • Kings College London, Department of Computer Science, Strand, London WC2R 2LS, UK;Kings College London, Department of Computer Science, Strand, London WC2R 2LS, UK

  • Venue:
  • Theoretical Computer Science
  • Year:
  • 2008

Quantified Score

Hi-index 5.23

Visualization

Abstract

Nominal syntax includes an abstraction operator and a primitive notion of name swapping, that can be used to represent in a simple and natural way systems that include binders. Nominal unification (i.e., solving @a-equality constraints between nominal terms) has applications in rewriting and logic programming, amongst others. It is decidable: Urban, Pitts and Gabbay gave a nominal unification algorithm that finds the most general solution to a nominal matching or unification problem, if one exists. A naive implementation of this algorithm is exponential in time; here we describe an algorithm based on a graph representation of nominal terms with lazy propagation of swappings, and show that it is polynomial.