Abstract
We present a new interpreter for \(\lambda \)Prolog that runs consistently faster than the byte code compiled by Teyjus, that is considered the best available implementation of \(\lambda \)Prolog. The key insight is the identification of a fragment of the language, which we call reduction-free fragment (\(\mathcal {L}_\lambda ^\beta \)), that occurs quite naturally in \(\lambda \)Prolog programs and that admits constant time reduction and unification rules.
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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Asperti, A., Ricciotti, W., Sacerdoti Coen, C., Tassi, E.: Hints in unification. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 84–98. Springer, Heidelberg (2009)
de Bruijn, N.G.: Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem. In: Nederpelt, R.P., Geuvers, J.H., de Vrijer, R.C. (eds.) Selected Papers on Automath, pp. 375–388. North-Holland, Amsterdam (1994)
Gonthier, G., Asperti, A., Avigad, J., Bertot, Y., Cohen, C., Garillot, F., Le Roux, S., Mahboubi, A., O’Connor, R., Ould Biha, S., Pasca, I., Rideau, L., Solovyev, A., Tassi, E., Théry, L.: A machine-checked proof of the odd order theorem. In: Blazy, Sandrine, Paulin-Mohring, Christine, Pichardie, David (eds.) ITP 2013. LNCS, vol. 7998, pp. 163–179. Springer, Heidelberg (2013)
Gonthier, G., Ziliani, B., Nanevski, A., Dreyer, D.: How to make ad hoc proof automation less ad hoc. J. Funct. Program. 23(4), 357–401 (2013)
Guidi, F.: The formal system \(\lambda \delta \). In: ToCL, vol. 11(1), pp. 1–37, November 2009
Guidi, F.: Verified representations of Landau’s “Grundlagen” in \(\lambda \delta \) and in the calculus of constructions (2015). http://lambdadelta.info/, Submitted to JFR
Liang, C., Nadathur, G., Qi, X.: Choices in representation and reduction strategies for lambda terms in intensional contexts. JAR 33(2), 89–132 (2004)
Miller, D.: A logic programming language with lambda-abstraction, function variables, and simple unification. J. Logic Comput. 1, 253–281 (1991)
Miller, D., Nadathur, G.: Programming with Higher-Order Logic. Cambridge University Press, Cambridge (2012)
Nadathur, G., Mitchell, D.J.: System description: Teyjus - a compiler and abstract machine based implementation of \(\lambda \) prolog. In: Ganzinger, Harald (ed.) CADE 1999. LNCS (LNAI), vol. 1632, pp. 287–291. Springer, Heidelberg (1999)
Ridoux, O.: \(\lambda \)-Prolog de A a Z... ou presque. Habilitation à diriger des recherches, Université de Rennes 1 (1998)
Sozeau, M., Oury, N.: First-class type classes. In: Mohamed, O.A., Muñoz, C., Tahar, S. (eds.) TPHOLs 2008. LNCS, vol. 5170, pp. 278–293. Springer, Heidelberg (2008)
van Benthem Jutting, L.S.: Checking Landau’s “Grundlagen” in the Automath system. In: Mathematical Centre Tracts, vol. 83. Mathematisch Centrum (1979)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dunchev, C., Guidi, F., Sacerdoti Coen, C., Tassi, E. (2015). ELPI: Fast, Embeddable, \(\lambda \)Prolog Interpreter. In: Davis, M., Fehnker, A., McIver, A., Voronkov, A. (eds) Logic for Programming, Artificial Intelligence, and Reasoning. LPAR 2015. Lecture Notes in Computer Science(), vol 9450. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-48899-7_32
Download citation
DOI: https://doi.org/10.1007/978-3-662-48899-7_32
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-48898-0
Online ISBN: 978-3-662-48899-7
eBook Packages: Computer ScienceComputer Science (R0)