Abstract
This paper studies inductive definitions involving binders, in which aliasing between free and bound names is permitted. Such aliasing occurs in informal specifications of operational semantics, but is excluded by the common representation of binding as meta-level λ-abstraction. Drawing upon ideas from functional logic programming, we represent such definitions with aliasing as recursively defined functions in a higher-order typed functional programming language that extends core ML with types for name-binding, a type of “semi-decidable propositions” and existential quantification for types with decidable equality. We show that the representation is sound and complete with respect to the language’s operational semantics, which combines the use of evaluation contexts with constraint programming. We also give a new and simple proof that the associated constraint problem is NP-complete.
Research supported by UK EPSRC grant EP/D000459/1.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Barendregt, H.P.: The Lambda Calculus: Its Syntax and Semantics. North-Holland, Amsterdam (1984); revised edition
Byrd, W.E., Friedman, D.P.: alphaKanren: A fresh name in nominal logic programming. In: Proc. 2007 Workshop on Scheme and Functional Programming, number DIUL-RT-0701 in Université Laval Technical Reports, pp. 79–90 (2007)
Calvès, C., Fernández, M.: Nominal matching and alpha-equivalence. In: Hodges, W., de Queiroz, R. (eds.) Logic, Language, Information and Computation. LNCS, vol. 5110, pp. 111–122. Springer, Heidelberg (2008)
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)
Cheney, J.: Nominal Logic Programming. PhD thesis, Cornell Univ. (2004)
Cheney, J.: Equivariant unification. In: Giesl, J. (ed.) RTA 2005. LNCS, vol. 3467, pp. 74–89. Springer, Heidelberg (2005)
Cheney, J., Urban, C.: Nominal logic programming. Trans. Prog. Lang. and Systems 30(5), 1–47 (2008)
de Bruijn, N.G.: 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)
Felleisen, M., Hieb, R.: The revised report on the syntactic theories of sequential control and state. Theoret. Comput. Science 103, 235–271 (1992)
Flanagan, C., Sabry, A., Duba, B.F., Felleisen, M.: The essence of compiling with continuations. SIGPLAN Not. 28, 237–247 (1993)
Gabbay, M.J.: Fresh logic: Proof-theory and semantics for FM and nominal techniques. J. Appl. Logic 5, 356–387 (2007)
Gordon, A.D.: Operational equivalences for untyped and polymorphic object calculi. In: Gordon and Pitts [13], pp. 9–54
Gordon, A.D., Pitts, A.M. (eds.): Higher Order Operational Techniques in Semantics. Cambridge University Press, Cambridge (1998)
Hanus, M.: Multi-paradigm declarative languages. In: Dahl, V., Niemelä, I. (eds.) ICLP 2007. LNCS, vol. 4670, pp. 45–75. Springer, Heidelberg (2007)
Jaffar, J., Maher, M., Marriott, K., Stuckey, P.: Semantics of constraint logic programming. J. Logic Programming 37, 1–46 (1998)
Lakin, M.R., Pitts, A.M.: A metalanguage for structural operational semantics. In: Trends in Functional Programming, vol. 8, pp. 19–35. Intellect (2008)
Lassen, S.B.: Relational reasoning about contexts. In: Gordon and Pitts [13], pp. 91–135
Licata, D.R., Zeilberger, N., Harper, R.: Focusing on binding and computation. In: LICS 2008 Proceedings, pp. 241–252. IEEE Computer Society, Los Alamitos (2008)
Miller, D.A.: Abstract syntax for variable binders: An overview. In: Palamidessi, C., Moniz Pereira, L., Lloyd, J.W., Dahl, V., Furbach, U., Kerber, M., Lau, K.-K., Sagiv, Y., Stuckey, P.J. (eds.) CL 2000. LNCS, vol. 1861, pp. 239–253. Springer, Heidelberg (2000)
Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML (Revised). MIT Press, Cambridge (1997)
Pfenning, F., Elliott, C.: Higher-order abstract syntax. In: PLDI 1988 Proceedings, pp. 199–208. ACM Press, New York (1988)
Pitts, A.M.: Operational semantics and program equivalence. In: Barthe, G., Dybjer, P., Pinto, L., Saraiva, J. (eds.) APPSEM 2000. LNCS, vol. 2395, pp. 378–412. Springer, Heidelberg (2002)
Pitts, A.M.: Nominal logic, a first order theory of names and binding. Inf. and Comput. 186, 165–193 (2003)
Pitts, A.M.: Alpha-structural recursion and induction. J. ACM 53, 459–506 (2006)
Pitts, A.M., Shinwell, M.R.: Generative unbinding of names. Logical Methods in Comput. Science 4, 1–33 (2008)
Shinwell, M.R., Pitts, A.M., Gabbay, M.J.: FreshML: Programming with binders made simple. In: ICFP 2003 Proceedings, pp. 263–274. ACM Press, New York (2003)
Tolmach, A., Antoy, S.: A monadic semantics for core Curry. In: WFLP 2003 Proceedings. Electr. Notes in Theoret. Comp. Science, vol. 86(3), pp. 16–34. Elsevier, Amsterdam (2003)
Urban, C., Pitts, A.M., Gabbay, M.J.: Nominal unification. Theoret. Comp. Science 323, 473–497 (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lakin, M.R., Pitts, A.M. (2009). Resolving Inductive Definitions with Binders in Higher-Order Typed Functional Programming. In: Castagna, G. (eds) Programming Languages and Systems. ESOP 2009. Lecture Notes in Computer Science, vol 5502. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-00590-9_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-00590-9_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-00589-3
Online ISBN: 978-3-642-00590-9
eBook Packages: Computer ScienceComputer Science (R0)