A proof theory for general unification
A proof theory for general unification
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
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
Theoretical Computer Science
Nominal logic programming
Avoiding equivariance in alpha-prolog
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
ACM SIGACT News
Mechanized metatheory model-checking
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the Role of Names in Reasoning about λ-tree Syntax Specifications
Electronic Notes in Theoretical Computer Science (ENTCS)
Resolving Inductive Definitions with Binders in Higher-Order Typed Functional Programming
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Matching and alpha-equivalence check for nominal terms
Journal of Computer and System Sciences
Journal of Automated Reasoning
The semantics of nominal logic programs
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Nominal Unification from a Higher-Order Perspective
ACM Transactions on Computational Logic (TOCL)
Encoding Abstract Syntax Without Fresh Names
Journal of Automated Reasoning
Hi-index | 0.00 |
Nominal logic is a variant of first-order logic with special facilities for reasoning about names and binding based on the underlying concepts of swapping and freshness. It serves as the basis of logic programming and term rewriting techniques that provide similar advantages to, but remain simpler than, higher-order logic programming or term rewriting systems. Previous work on nominal rewriting and logic programming has relied on nominal unification, that is, unification up to equality in nominal logic. However, because of nominal logic's equivariance property, these applications require a stronger form of unification, which we call equivariant unification. Unfortunately, equivariant unification and matching are NP-hard decision problems. This paper presents an algorithm for equivariant unification that produces a complete set of finitely many solutions, as well as NP decision procedure and a version that enumerates solutions one at a time. In addition, we present a polynomial time algorithm for swapping-free equivariant matching, that is, for matching problems in which the swapping operation does not appear.