Skip to main content
Log in

Encoding Abstract Syntax Without Fresh Names

  • Published:
Journal of Automated Reasoning Aims and scope Submit manuscript

Abstract

This paper introduces a variant of nominal abstract syntax in which bindable names are represented by normal meta-variables as opposed to a separate class of globally fresh names. Distinct meta-variables can be instantiated with the same concrete name, which we call aliasing. The possible aliasing patterns are controlled by explicit constraints on the distinctness (freshness) of names. This approach has already been used in the nominal meta-programming language αML. We recap that language and develop a theory of contextual equivalence for it. The central result of the paper is that abstract syntax trees (ASTs) involving binders can be encoded into αML in such a way that α-equivalence of ASTs corresponds with contextual equivalence of their encodings. This is novel because the encoding does not rely on the existence of globally fresh names and fresh name generation, which are fundamental to the correctness of the pre-existing encoding of abstract syntax into FreshML.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Barendregt, H.P.: The Lambda Calculus: Its Syntax and Semantics, revised edn. North-Holland (1984)

  2. de Bruijn, N.: Lambda calculus notation with nameless dummies: A tool for automatic formula manipulation, with application to the Church-Rosser Theorem. Indag. Math. 34, 381–392 (1972)

    Google Scholar 

  3. Cheney, J.: The complexity of equivariant unification. In: J. Díaz, J., Karhumäki, A., Lepistö, D. Sannella (eds.) Proceedings of the 31st International Colloquium on Automata, Languages and Programming (ICALP 2004). Lecture Notes in Computer Science, vol. 3142, pp. 332–344. Springer-Verlag (2004)

  4. Cheney, J.: Nominal Logic Programming. Ph.D. thesis, Cornell University (2004)

  5. Cheney, J.: Equivariant unification. In: Giesl, J. (ed.) Proceedings of the 16th International Conference on Rewriting Techniques and Applications (RTA 2005). Lecture Notes in Computer Science, vol. 3467, pp. 74–89. Springer-Verlag (2005)

  6. Cheney, J., Urban, C.: Alpha-Prolog: a logic programming language with names, binding and alpha-equivalence. In: Demoen, B., Lifschitz, V. (eds.) Proceedings of the 20th International Conference on Logic Programming (ICLP 2004). Lecture Notes in Computer Science, vol. 3132, pp. 269–283. Springer-Verlag (2004)

  7. Cheney, J., Urban, C.: Nominal logic programming. ACM Trans. Program. Lang. Syst. 30(5), 1–47 (2008)

    Article  Google Scholar 

  8. Felleisen, M., Hieb, R.: The revised report on the syntactic theories of sequential control and state. Theor. Comp. Sci. 103(2), 235–271 (1992)

    Article  MathSciNet  MATH  Google Scholar 

  9. Flanagan, C., Sabry, A., Duba, B.F., Felleisen, M.: The essence of compiling with continuations. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 1993). ACM SIGPLAN Notices, vol. 28, pp. 237–247. ACM (1993)

  10. Gabbay, M.J.: A theory of Inductive Definitions with α-equivalence: Semantics, Implementation, Programming Language. Ph.D. thesis, University of Cambridge (2000)

  11. Gabbay, M.J., Mathijssen, A.: Capture-avoiding substitution as a nominal algebra. Form. Asp. Comput. 20(4–5), 451–479 (2008)

    Article  MATH  Google Scholar 

  12. Gabbay, M.J., Pitts, A.M.: A new approach to abstract syntax with variable binding. Form. Asp. Comput. 13(3–5), 341–363 (2002)

    Article  MATH  Google Scholar 

  13. Goldfarb, W.D.: The undecidability of the second-order unification problem. Theor. Comp. Sci. 13(2), 225–230 (1981)

    Article  MathSciNet  MATH  Google Scholar 

  14. Gordon, A.D.: Operational equivalences for untyped and polymorphic object calculi. In: Gordon, A.D., Pitts, A.M. (eds.) Higher Order Operational Techniques in Semantics, Publications of the Newton Institute, pp. 9–54. Cambridge University Press (1998)

  15. Hanus, M.: Multi-paradigm declarative languages. In: Dahl, V., Niemelä, I. (eds.) Proceedings of the 23rd International Conference on Logic Programming (ICLP 2007). Lecture Notes in Computer Science, vol. 4670, pp. 45–75. Springer-Verlag (2007)

  16. Howe, D.J.: Proving congruence of bisimulation in functional programming languages. Inf. Comput. 124(2), 103–112 (1996)

    Article  MathSciNet  MATH  Google Scholar 

  17. Jaffar, J., Maher, M., Marriott, K., Stuckey, P.: Semantics of constraint logic programming. J. Log. Program. 37(1–3), 1–46 (1998)

    Article  MathSciNet  MATH  Google Scholar 

  18. Lakin, M.R.: An Executable Meta-language for Inductive Definitions with Binders. Ph.D. thesis, University of Cambridge (2010)

  19. Lakin, M.R., Pitts, A.M.: Resolving inductive definitions with binders in higher-order typed functional programming. In: G. Castagna (ed.) Proceedings of the 18th European Symposium on Programming (ESOP 2009). Lecture Notes in Computer Science, vol. 5502, pp. 47–61. Springer-Verlag (2009)

  20. Lassen, S.B.: Relational reasoning about contexts. In: Gordon, A.D., Pitts, A.M. (eds.) Higher Order Operational Techniques in Semantics, Publications of the Newton Institute, pp. 91–135. Cambridge University Press (1998)

  21. Mason, I.A., Talcott, C.L.: Equivalence in functional languages with effects. J. Funct. Program. 1(3), 287–327 (1991)

    Article  MathSciNet  MATH  Google Scholar 

  22. Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML (Revised). MIT (1997)

  23. Pfenning, F.: Logical frameworks. In: Robinson, A., Voronkov, A. (eds.) Handbook of Automated Reasoning, chap. 17, pp. 1063–1147. Elsevier Science and MIT (2001)

  24. Pitts, A.M.: Operational semantics and program equivalence. In: Applied Semantics, Advanced Lectures. Lecture Notes in Computer Science, vol. 2395, pp. 378–412. Springer-Verlag (2002)

  25. Pitts, A.M.: Typed operational reasoning. In: Pierce, B.C. (ed.) Advanced Topics in Types and Programming Languages, chap. 7, pp. 245–289. MIT (2005)

  26. Pitts, A.M.: Alpha-structural recursion and induction. Journal of the ACM 53(3), 459–506 (2006)

    Article  MathSciNet  Google Scholar 

  27. Pitts, A.M., Shinwell, M.R.: Generative unbinding of names. Log. Methods Comput. Sci. 4(1–4), 1–33 (2008)

    MathSciNet  Google Scholar 

  28. Pottier, F.: An overview of Cαml. In: Benton, N., Leroy, X. (eds.) Proceedings of the 2005 ACM-SIGPLAN Workshop on ML (ML 2005). Electronic Notes in Theoretical Computer Science, vol. 148, pp. 27–52. Elsevier (2006)

  29. Sewell, P., Nardelli, F.Z., Owens, S., Peskine, G., Ridge, T., Sarkar, S., Strniša, R.: Ott: effective tool support for the working semanticist. In: Hinze, R., Ramsey, N. (eds.) Proceedings of the 12th ACM SIGPLAN International Conference on Functional Programming (ICFP 2007), pp. 1–12. ACM (2007)

  30. Shinwell, M.R.: The fresh Approach: Functional Programming with Names and Binders. Ph.D. thesis, University of Cambridge (2005)

  31. Shinwell, M.R., Pitts, A.M.: On a monadic semantics for freshness. Theor. Comp. Sci. 342(1), 28–55 (2005)

    Article  MathSciNet  MATH  Google Scholar 

  32. Urban, C.: Nominal techniques in Isabelle/HOL. J. Autom. Reasoning 40(4), 327–356 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  33. Urban, C., Cheney, J.: Avoiding equivariance in Alpha-Prolog. In: Urzyczyn, P. (ed.) Proceedings of the 7th International Conference on Typed Lambda Calculus and Applications (TLCA 2005). Lecture Notes in Computer Science, vol. 3461, pp. 74–89. Springer-Verlag (2005)

  34. Urban, C., Pitts, A.M., Gabbay, M.J.: Nominal unification. Theor. Comp. Sci. 323(1–3), 473–497 (2004)

    Article  MathSciNet  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Matthew R. Lakin.

Additional information

Research supported by UK EPSRC grant EP/D000459/1.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Lakin, M.R., Pitts, A.M. Encoding Abstract Syntax Without Fresh Names. J Autom Reasoning 49, 115–140 (2012). https://doi.org/10.1007/s10817-011-9220-7

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10817-011-9220-7

Keywords

Navigation