Academia.eduAcademia.edu

Outline

Nominal unification

2004, Theoretical Computer Science

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 two existing ideas. The first one is terms involving explicit substitutions of names for names, except that here we only use explicit permutations (bijective substitutions). The second one 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 classical first-order unification problems 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.

References (34)

  1. G. Dowek, T. Hardin, C. Kirchner, Higher-order unification via explicit substitutions, in: 10th Annual Symposium on Logic in Computer Science, IEEE Computer Society Press, Washington, 1995, pp. 366-374.
  2. C. A. Gunter, Semantics of Programming Languages: Structures and Techniques, Foundations of Computing, MIT Press, 1992.
  3. D. Miller, A logic programming language with lambda-abstraction, function variables, and simple unification, Journal of Logic and Computation 1 (1991) 497-536.
  4. G. Dowek, Higher-order unification and matching, in: A. Robinson, A. Voronkov (Eds.), Handbook of Automated Reasoning, North-Holland, Amsterdam, 2001, Ch. 16, pp. 1009-1062.
  5. M. Hamana, A logic programming language based on binding algebras, in: N. Kobayashi, B. C. Pierce (Eds.), Theoretical Aspects of Computer Software, 4th International Symposium, TACS 2001, Sendai, Japan, October 29-31, 2001, Proceedings, Vol. 2215 of Lecture Notes in Computer Science, Springer-Verlag, Berlin, 2001, pp. 243-262.
  6. M. Hashimoto, A. Ohori, A typed context calculus, Theoretical Computer Science 266 (2001) 249-271.
  7. M. Sato, T. Sakurai, Y. Kameyama, A simply typed context calculus with first-class environments, Journal of Functional and Logic Programming 2002 (4).
  8. P. Nickolas, P. J. Robinson, The Qu-Prolog unification algorithm: Formalisation and correctness, Theoretical computer Science 169 (1996) 81-112.
  9. R. Paterson, Unification of schemes of quantified terms, in: Proc. of UNIF 1990, 1990, unpublished proceedings.
  10. M. J. Gabbay, A. M. Pitts, A new approach to abstract syntax with variable binding, Formal Aspects of Computing 13 (2002) 341-363.
  11. L. Caires, L. Cardelli, A spatial logic for concurrency (part II), in: L. Brim, P. Jancar, M. Kȓetínský, A. Kucera (Eds.), CONCUR 2002 -Concurrency Theory, 13th International Conference, Brno, Czech Republic, August 20-23, 2002. Proceedings, Vol. 2421 of Lecture Notes in Computer Science, Springer-Verlag, Berlin, 2002, pp. 209-225.
  12. L. Cardelli, P. Gardner, G. Ghelli, Manipulating trees with hidden labels, in: A. D. Gordon (Ed.), Foundations of Software Science and Computation Structures, 6th International Conference, FOSSACS 2003, Warsaw, Poland. Proceedings, Vol. 2620 of Lecture Notes in Computer Science, Springer-Verlag, Berlin, 2003, pp. 216-232.
  13. M. R. Shinwell, A. M. Pitts, M. J. Gabbay, FreshML: Programming with binders made simple, in: Eighth ACM SIGPLAN International Conference on Functional Programming (ICFP 2003), Uppsala, Sweden, ACM Press, 2003, pp. 263-274.
  14. A. Salibra, On the algebraic models of lambda calculus, Theoretical Computer Science 249 (2000) 197-240.
  15. F. Honsell, M. Miculan, I. Scagnetto, An axiomatic approach to metareasoning on nominal algebras in HOAS, in: F. Orejas, P. G. Spirakis, J. Leeuwen (Eds.), 28th International Colloquium on Automata, Languages and Programming, ICALP 2001, Crete, Greece, July 2001. Proceedings, Vol. 2076 of Lecture Notes in Computer Science, Springer-Verlag, Heidelberg, 2001, pp. 963-978.
  16. A. M. Pitts, Nominal logic, a first order theory of names and binding, Information and Computation 186 (2003) 165-193.
  17. M. Sato, T. Sakurai, Y. Kameyama, A. Igarashi, Calculi of meta-variables, in: M. Baaz (Ed.), Computer Science Logic and 8th Kurt G ödel Colloquium (CSL'03 & KGC), Vienna, Austria. Proccedings, Vol. 2803 of Lecture Notes in Computer Science, Springer-Verlag, Berlin, 2003, pp. 484-497.
  18. A. Martelli, U. Montanari, An efficient unification algorithm, ACM Trans. Programming Languages and Systems 4 (2) (1982) 258-282.
  19. J. W. Klop, Term rewriting systems, in: S. Abramsky, D. M. Gabbay, T. S. E. Maibaum (Eds.), Handbook of Logic in Computer Science, Volume 2, Oxford Univerity Press, 1992, pp. 1-116.
  20. F. Baader, T. Nipkow, Term Rewriting and All That, Cambridge University Press, 1998.
  21. H. P. Barendregt, The Lambda Calculus: its Syntax and Semantics, North-Holland, 1984.
  22. R. Milner, J. Parrow, D. Walker, A calculus of mobile processes (parts I and II), Information and Computation 100 (1992) 1-77.
  23. G. D. Plotkin, An illative theory of relations, in: R. Cooper, Mukai, J. Perry (Eds.), Situation Theory and its Applications, Vol. 22 of CSLI Lecture Notes, Stanford University, 1990, pp. 133-146.
  24. M. P. Fiore, G. D. Plotkin, D. Turi, Abstract syntax and variable binding, in: 14th Annual Symposium on Logic in Computer Science, IEEE Computer Society Press, Washington, 1999, pp. 193-202.
  25. R. Milner, M. Tofte, R. Harper, D. MacQueen, The Definition of Standard ML (Revised), MIT Press, 1997.
  26. F. Pfenning, C. Elliott, Higher-order abstract syntax, in: Proc. ACM-SIGPLAN Conference on Programming Language Design and Implementation, ACM Press, 1988, pp. 199-208.
  27. S. Michaylov, F. Pfenning, An empirical study of the runtime behaviour of higher-order logic programs, in: D. Miller (Ed.), Proc. Workshop on the λProlog Programming Language, University of Pennsylvania, 1992, pp. 257-271, CIS Technical Report MS-CIS-92-86.
  28. G. Dowek, T. Hardin, C. Kirchner, F. Pfenning, Higher-order unification via explicit substitutions: the case of higher-order patterns, in: Proc. of JICSLP, 1996, pp. 259- 273.
  29. M. Hamana, Simple β 0 -unification for terms with context holes, in: C. Ringeissen, C. Tinelli, R. Treinen, R. M. Verma (Eds.), Proc. of UNIF 2002, 2002, unpublished proceedings.
  30. J. Cheney, C. Urban, αProlog, a fresh approach to logic programming modulo α- equivalence, in: J. Levy, M. Kohlhase, J. Niehren, M. Villaret (Eds.), Proc. of UNIF 2003, no. DSIC-II/12/03 in Departamento de Sistemas Informáticos y Computación Technical Report Series, Universidad Politécnica de Valencia, 2003, pp. 15-19.
  31. M. Gabbay, J. Cheney, A proof theory for nominal logic, in: Nineteenth Annual IEEE Symposium on Logic in Computer Science, IEEE Computer Society Press, Washington, 2004.
  32. M. S. Paterson, M. N. Wegman, Linear unification, Journal of Computer System Sciences 16 (2) (1978) 158-167.
  33. Z. Qian, Unification of higher-order patterns in linear time and space, Journal of Logic and Computation 6 (3) (1996) 315-341.
  34. C. Urban, A. M. Pitts, M. J. Gabbay, Nominal unification, in: M. Baaz (Ed.), Computer Science Logic and 8th Kurt Gödel Colloquium (CSL'03 & KGC), Vienna, Austria. Proceedings, Vol. 2803 of Lecture Notes in Computer Science, Springer-Verlag, Berlin, 2003, pp. 513-527.