Handbook of graph grammars and computing by graph transformation
A Metalanguage for Programming with Bound Names Modulo Renaming
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
FreshML: programming with binders made simple
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Nominal logic, a first order theory of names and binding
Information and Computation - TACS 2001
Numbering matters: first-order canonical forms for second-order recursive types
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Theoretical Computer Science
Information and Computation
Electronic Notes in Theoretical Computer Science (ENTCS)
Avoiding equivariance in alpha-prolog
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Matching and alpha-equivalence check for nominal terms
Journal of Computer and System Sciences
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Journal of Automated Reasoning
LOPSTR'10 Proceedings of the 20th international conference on Logic-based program synthesis and transformation
Nominal Unification from a Higher-Order Perspective
ACM Transactions on Computational Logic (TOCL)
(Nominal) unification by recursive descent with triangular substitutions
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Permissive-nominal logic: First-order logic over nominal terms and sets
ACM Transactions on Computational Logic (TOCL)
Hi-index | 5.23 |
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.