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.
Similar content being viewed by others
References
Barendregt, H.P.: The Lambda Calculus: Its Syntax and Semantics, revised edn. North-Holland (1984)
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)
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)
Cheney, J.: Nominal Logic Programming. Ph.D. thesis, Cornell University (2004)
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)
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)
Cheney, J., Urban, C.: Nominal logic programming. ACM Trans. Program. Lang. Syst. 30(5), 1–47 (2008)
Felleisen, M., Hieb, R.: The revised report on the syntactic theories of sequential control and state. Theor. Comp. Sci. 103(2), 235–271 (1992)
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)
Gabbay, M.J.: A theory of Inductive Definitions with α-equivalence: Semantics, Implementation, Programming Language. Ph.D. thesis, University of Cambridge (2000)
Gabbay, M.J., Mathijssen, A.: Capture-avoiding substitution as a nominal algebra. Form. Asp. Comput. 20(4–5), 451–479 (2008)
Gabbay, M.J., Pitts, A.M.: A new approach to abstract syntax with variable binding. Form. Asp. Comput. 13(3–5), 341–363 (2002)
Goldfarb, W.D.: The undecidability of the second-order unification problem. Theor. Comp. Sci. 13(2), 225–230 (1981)
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)
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)
Howe, D.J.: Proving congruence of bisimulation in functional programming languages. Inf. Comput. 124(2), 103–112 (1996)
Jaffar, J., Maher, M., Marriott, K., Stuckey, P.: Semantics of constraint logic programming. J. Log. Program. 37(1–3), 1–46 (1998)
Lakin, M.R.: An Executable Meta-language for Inductive Definitions with Binders. Ph.D. thesis, University of Cambridge (2010)
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)
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)
Mason, I.A., Talcott, C.L.: Equivalence in functional languages with effects. J. Funct. Program. 1(3), 287–327 (1991)
Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML (Revised). MIT (1997)
Pfenning, F.: Logical frameworks. In: Robinson, A., Voronkov, A. (eds.) Handbook of Automated Reasoning, chap. 17, pp. 1063–1147. Elsevier Science and MIT (2001)
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)
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)
Pitts, A.M.: Alpha-structural recursion and induction. Journal of the ACM 53(3), 459–506 (2006)
Pitts, A.M., Shinwell, M.R.: Generative unbinding of names. Log. Methods Comput. Sci. 4(1–4), 1–33 (2008)
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)
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)
Shinwell, M.R.: The fresh Approach: Functional Programming with Names and Binders. Ph.D. thesis, University of Cambridge (2005)
Shinwell, M.R., Pitts, A.M.: On a monadic semantics for freshness. Theor. Comp. Sci. 342(1), 28–55 (2005)
Urban, C.: Nominal techniques in Isabelle/HOL. J. Autom. Reasoning 40(4), 327–356 (2008)
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)
Urban, C., Pitts, A.M., Gabbay, M.J.: Nominal unification. Theor. Comp. Sci. 323(1–3), 473–497 (2004)
Author information
Authors and Affiliations
Corresponding author
Additional information
Research supported by UK EPSRC grant EP/D000459/1.
Rights 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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10817-011-9220-7