Abstract
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 α-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 α-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 α-equivalence and freshness are decidable; and solvable problems possess most general solutions.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Baader, F., Nipkow, T.: Term Rewriting and All That. Cambridge University Press, Cambridge (1998)
Barendregt, H.P.: The Lambda Calculus: Its Syntax and Semantics. North-Holland, Amsterdam (1984)
Caires, L., Cardelli, L.: A spatial logic for concurrency II. In: Brim, L., Jančar, P., Křetínský, M., Kucera, A. (eds.) CONCUR 2002. LNCS, vol. 2421, pp. 209–225. Springer, Heidelberg (2002)
Cardelli, L., Gardner, P., Ghelli, G.: Manipulating trees with hidden labels. In: Gordon, A.D. (ed.) FOSSACS 2003. LNCS, vol. 2620, pp. 216–232. Springer, Heidelberg (2003)
Cheney, J., Urban, C.: αProlog, a fresh approach to logic programming modulo α-equivalence. In: Proc. of UNIF 2003, number DSIC-II/12/03 in Departamento de Sistemas Informáticos y Computación Technical Report Series. Universidad Politécnica de Valencia (2003)
Dowek, G.: Higher-order unification and matching. In: Robinson, A., Voronkov, A. (eds.) Handbook of Automated Reasoning, ch. 16, pp. 1009–1062. Elsevier, Amsterdam (2001)
Dowek, G., Hardin, T., Kirchner, C.: Higher-order unification via explicit substitutions. In: 10th Symposium of LICS, pp. 366–374. IEEE Computer Society Press, Los Alamitos (1995)
Dowek, G., Hardin, T., Kirchner, C., Pfenning, F.: Higher-order unification via explicit substitutions: the case of higher-order patterns. In: Proc. of JICSLP, pp. 259–273 (1996)
Fiore, M.P., Plotkin, G.D., Turi, D.: Abstract syntax and variable binding. In: 14th Symposium of LICS, pp. 193–202. IEEE Computer Society Press, Los Alamitos (1999)
Gabbay, M.J., Pitts, A.M.: A new approach to abstract syntax involving binders. In: 14th Symposium of LICS, pp. 214–224. IEEE Computer Society Press, Los Alamitos (1999)
Gabbay, M.J., Pitts, A.M.: A new approach to abstract syntax with variable binding. Formal Aspects of Computing 13, 341–363 (2002)
Gunter, C.A.: Semantics of Programming Languages: Structures and Techniques. In: Foundations of Computing, MIT Press, Cambridge (1992)
Hamana, M.: A logic programming language based on binding algebras. In: Kobayashi, N., Pierce, B.C. (eds.) TACS 2001. LNCS, vol. 2215, pp. 243–262. Springer, Heidelberg (2001)
Hamana, M.: Simple β 0-unification for terms with context holes. In: Proc. of UNIF 2002 (2002) (unpublished proceedings)
Hashimoto, M., Ohori, A.: A typed context calculus. TCS 266, 249–271 (2001)
Honsell, F., Miculan, M., Scagnetto, I.: An axiomatic approach to metareasoning on nominal algebras in HOAS. In: Orejas, F., Spirakis, P.G., van Leeuwen, J. (eds.) ICALP 2001. LNCS, vol. 2076, pp. 963–978. Springer, Heidelberg (2001)
Klop, J.W.: Term rewriting systems. In: Abramsky, S., Gabbay, D.M., Maibaum, T.S.E. (eds.) Handbook of Logic in Computer Science, vol. 2, pp. 1–116. OUP (1992)
Martelli, A., Montanari, U.: An efficient unification algorithm. ACM Trans. Programming Languages and Systems 4(2), 258–282 (1982)
Michaylov, S., Pfenning, F.: An empirical study of the runtime behaviour of higher-order logic programs. In: Proc. Workshop on the λProlog Programming Language, pp. 257–271 (1992); CIS Technical Report MS-CIS-92-86
Miller, D.: A logic programming language with lambda-abstraction, function variables, and simple unification. Journal of Logic and Computation 1, 497–536 (1991)
Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes (parts I and II). Information and Computation 100, 1–77 (1992)
Pfenning, F., Elliott, C.: Higher-order abstract syntax. In: Proc. ACM-SIGPLAN Conference on Programming Language Design and Implementation, pp. 199–208. ACM Press, New York (1988)
Pitts, A.M.: Nominal logic: A first order theory of names and binding. In: Kobayashi, N., Pierce, B.C. (eds.) TACS 2001. LNCS, vol. 2215, pp. 219–242. Springer, Heidelberg (2001)
Pitts, A.M., Gabbay, M.J.: A metalanguage for programming with bound names modulo renaming. In: Backhouse, R., Oliveira, J.N. (eds.) MPC 2000. LNCS, vol. 1837, pp. 230–255. Springer, Heidelberg (2000)
Plotkin, G.D.: An illative theory of relations. In: Situation Theory and its Applications. CSLI Lecure Notes, vol. 22, pp. 133–146. Stanford University, Stanford (1990)
Sato, M., Sakurai, T., Kameyama, Y.: A simply typed context calculus with first-class environments. Journal of Functional and Logic Programming 2002(4) (2002)
Shinwell, M.R., Pitts, A.M., Gabbay, M.J.: FreshML: Programming with binders made simple. In: Proc. of ICFP 2003, ACM Press, New York (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Urban, C., Pitts, A., Gabbay, M. (2003). Nominal Unification. In: Baaz, M., Makowsky, J.A. (eds) Computer Science Logic. CSL 2003. Lecture Notes in Computer Science, vol 2803. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45220-1_41
Download citation
DOI: https://doi.org/10.1007/978-3-540-45220-1_41
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40801-7
Online ISBN: 978-3-540-45220-1
eBook Packages: Springer Book Archive