- 91 Downloads
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, term rewriting, and automated theorem proving techniques that support reasoning about languages with name-binding. These applications often require nominal unification, or equational reasoning and constraint solving in nominal logic. Urban, Pitts and Gabbay developed an algorithm for a broadly applicable class of nominal unification problems. However, because of nominal logic’s equivariance property, these applications also require a different form of unification, which we call equivariant unification. In this article, we first study the complexity of the decision problem for equivariant unification and equivariant matching. We show that these problems are NP-hard in general, as is nominal unification without the ground-name restrictions employed in previous work on nominal unification. Moreover, we present an exponential-time algorithm for equivariant unification that can be used to decide satisfiability, or produce a complete finite set of solutions. We also study special cases that can be solved efficiently. In particular, we present a polynomial time algorithm for swapping-free equivariant matching, that is, for matching problems in which the swapping operation does not appear.
KeywordsNominal logic Nominal unification Equivariance
Unable to display preview. Download preview PDF.
- 2.Cheney, J.: The complexity of equivariant unification. In: Proceedings of the 31st International Colloquium on Automata, Languages and Programming (ICALP 2004), LNCS, vol. 3142, pp. 332–344, Turku, Finland. Springer, New York (2004)Google Scholar
- 3.Cheney, J.: Equivariant unification. In: Proceedings of the 2005 Conference on Rewriting Techniques and Applications (RTA 2005), number 3467 in LNCS, pp. 74–89, Nara, Japan. Springer, New York (2005)Google Scholar
- 6.Cheney, J.R.: Nominal logic programming. PhD thesis, Cornell University, Ithaca (2004)Google Scholar
- 8.Courcelle, B.: Graph rewriting: An algebraic and logic approach. In: Handbook of Theoretical Computer Science, vol. B: Formal Models and Semantics (B), pp. 193–242. MIT, Cambridge (1990)Google Scholar
- 15.Guo, Q., Narendran, P., Shukla, S.K.: Unification and matching in process algebras. In: Nipkow, T. (ed.) RTA. Lecture Notes in Computer Science, vol. 1379, pp. 91–105. Springer, New York (1998)Google Scholar
- 16.Lakin, M.R., Pitts, A.M.: Resolving inductive definitions with binders in higher-order typed functional programming. In: Castagna, G. (ed.) ESOP. Lecture Notes in Computer Science, vol. 5502, pp. 47–61. Springer, New York (2009)Google Scholar
- 17.Levy, J., Villaret, M.: Nominal unification from a higher-order perspective. In: Voronkov, A. (ed.) RTA. Lecture Notes in Computer Science, vol. 5117, pp. 246–260. Springer, New York (2008)Google Scholar
- 20.Snyder, W.: A Proof Theory for General Unification. Progress in Computer Science and Applied Logic, vol. 11. Birkhäuser, Boston (1991)Google Scholar
- 22.Urban, C., Cheney, J.: Avoiding equivariace in Alpha-Prolog. In: Proceedings of the 2005 Conference on Typed Lambda Calculus and Applications (TLCA 2005), no. 3461 in LNCS, pp. 74–89, Nara, Japan. Springer, New York (2005)Google Scholar