Skip to main content

αProlog: A Logic Programming Language with Names, Binding and α-Equivalence

  • Conference paper
Logic Programming (ICLP 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3132))

Included in the following conference series:

Abstract

There are two well-known approaches to programming with names, binding, and equivalence up to consistent renaming: representing names and bindings as concrete identifiers in a first-order language (such as Prolog), or encoding names and bindings as variables and abstractions in a higher-order language (such as λProlog). However, both approaches have drawbacks: the former often involves stateful name-generation and requires manual definitions for α-equivalence and capture-avoiding substitution, and the latter is semantically very complicated, so reasoning about programs written using either approach can be very difficult. Gabbay and Pitts have developed a new approach to encoding abstract syntax with binding based on primitive operations of name-swapping and freshness. This paper presents αProlog, a logic programming language that uses this approach, along with several illustrative example programs and an operational semantics.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Andreas, A.: A third-order representation of the λμ-calculus. In: MERLIN 2001: Mechanized Reasoning about Languages with Variable Binding. Electronic Notes in Theoretical Computer Science, vol. 58(1), Elsevier, Amsterdam (2001)

    Google Scholar 

  2. Cheney, J.: The complexity of equivariant unification. In: Díaz, J., Karhumäki, J., Lepistö, A., Sannella, D. (eds.) ICALP 2004. LNCS, vol. 3142, pp. 332–344. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  3. de Bruijn, N.G.: Lambda-calculus notation with nameless dummies, a tool for automatic formula manipulation. Indag. Mat. 34(5), 381–392 (1972)

    Google Scholar 

  4. Despeyroux, J., Felty, A., Hirschowitz, A.: Higher-order abstract syntax in Coq. In: Dezani-Ciancaglini, M., Plotkin, G. (eds.) TLCA 1995. LNCS, vol. 902, pp. 124–138. Springer, Heidelberg (1995)

    Chapter  Google Scholar 

  5. Fiore, M.P., Plotkin, G.D., Turi, D.: Abstract syntax and variable binding. In: Proc. 14th Symp. on Logic in Computer Science (LICS 1999), pp. 193–202. IEEE, Los Alamitos (1999)

    Google Scholar 

  6. Gabbay, M.J.: The π-calculus in FM. In: Kamareddine, F. (ed.) Thirty-five years of Automath, Kluwer, Dordrecht (2003)

    Google Scholar 

  7. Gabbay, M.J., Cheney, J.: A proof theory for nominal logic. In: Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science, LICS 2004 (2004) (to appear)

    Google Scholar 

  8. Gabbay, M.J., Pitts, A.M.: A new approach to abstract syntax with variable binding. Formal Aspects of Computing 13, 341–363 (2002)

    Article  MATH  Google Scholar 

  9. 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)

    Chapter  Google Scholar 

  10. Hofmann, M.: Semantical analysis of higher-order abstract syntax. In: Proc. 14th Symp. on Logic in Computer Science, July 1999, pp. 204–213. IEEE, Los Alamitos (1999)

    Google Scholar 

  11. Jaffar, J., Maher, M.J., Marriott, K., Stuckey, P.J.: The semantics of constraint logic programs. Journal of Logic Programming 37(1-3), 1–46 (1998)

    Article  MATH  MathSciNet  Google Scholar 

  12. Miller, D.: A logic programming language with lambda-abstraction, function variables, and simple unification. J. Logic and Computation 1(4), 497–536 (1991)

    Article  MATH  MathSciNet  Google Scholar 

  13. Miller, D., Nadathur, G., Pfenning, F., Scedrov, A.: Uniform proofs as a foundation for logic programming. Annals of Pure and Applied Logic 51, 125–157 (1991)

    Article  MATH  MathSciNet  Google Scholar 

  14. Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, I-II. Information and Computation 100(1), 1–77 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  15. Momigliano, A., Ambler, S.J., Crole, R.L.: A comparison of formalizations of the meta-theory of a language with variable bindings in Isabelle. In: Informatics Research Report EDI-INF-RR-0046, Supplemental Proceedings of TPHOLs 2001, pp. 267–282. University of Edinburgh, Edinburgh (2001)

    Google Scholar 

  16. Nadathur, G., Miller, D.: Higher-order logic programming. In: Gabbay, D.M., Hogger, C.J., Robinson, J.A. (eds.) Handbook of Logic in Artificial Intelligence and Logic Programming, vol. 5, ch. 8, pp. 499–590. Oxford University Press, Oxford (1998)

    Google Scholar 

  17. Parigot, M.: Lambda-mu-calculus: An algorithmic interpretation of classical natural deduction. In: Voronkov, A. (ed.) LPAR 1992. LNCS, vol. 624, pp. 190–201. Springer, Heidelberg (1992)

    Chapter  Google Scholar 

  18. Pfenning, F., Elliott, C.: Higher-order abstract syntax. In: Proc. ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI 1989), pp. 199–208. ACM Press, New York (1989)

    Google Scholar 

  19. Pitts, A.M.: Nominal logic, a first order theory of names and binding. Information and Computation 183, 165–193 (2003)

    Article  MathSciNet  Google Scholar 

  20. Röckl, C.: A first-order syntax for the pi-calculus in isabelle/hol using permutations. In: Ambler, S.J., Crole, R.L., Momigliano, A. (eds.) MERLIN 2001: Mechanized Reasoning about Languages with Variable Binding. Electronic Notes in Theoretical Computer Science, vol. 58(1), Elsevier, Amsterdam (2001)

    Google Scholar 

  21. Schürmann, C., Fontana, R., Liao, Y.: Delphin: Functional programming with deductive systems (2002), Available at http://cs-www.cs.yale.edu/homes/carsten/

  22. Shinwell, M.R., Pitts, A.M., Gabbay, M.J.: FreshML: Programmming with binders made simple. In: Proc. 8th ACM SIGPLAN Int. Conf. on Functional Programming (ICFP 2003), Uppsala, Sweden, pp. 263–274. ACM Press, New York (2003)

    Chapter  Google Scholar 

  23. Somogyi, Z., Henderson, F., Conway, T.: The execution algorithm of Mercury: an efficient purely declarative logic programming language. J. Logic Programming 29(1-3), 17–64 (1996)

    Article  MATH  Google Scholar 

  24. Staples, J., Robinson, P.J., Paterson, R.A., Hagen, R.A., Craddock, A.J., Wallis, P.C.: Qu-prolog: An extended prolog for meta level programming. In: Abramson, H., Rogers, M.H. (eds.) Meta-Programming in Logic Programming, ch. 23, MIT Press, Cambridge (1996)

    Google Scholar 

  25. Urban, C., Pitts, A.M., Gabbay, M.J.: Nominal unification. In: Baaz, M., Makowsky, J.A. (eds.) CSL 2003. LNCS, vol. 2803, pp. 513–527. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  26. Urban, C., Cheney, J.: Avoiding equivariant unification (submitted)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Cheney, J., Urban, C. (2004). αProlog: A Logic Programming Language with Names, Binding and α-Equivalence. In: Demoen, B., Lifschitz, V. (eds) Logic Programming. ICLP 2004. Lecture Notes in Computer Science, vol 3132. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-27775-0_19

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-27775-0_19

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-22671-0

  • Online ISBN: 978-3-540-27775-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics