Hostname: page-component-586b7cd67f-t8hqh Total loading time: 0 Render date: 2024-11-22T11:26:29.707Z Has data issue: false hasContentIssue false

A compiled implementation of normalisation by evaluation*

Published online by Cambridge University Press:  29 February 2012

KLAUS AEHLIG
Affiliation:
Institut für Informatik, Ludwigs-Maximilians-Universität München
FLORIAN HAFTMANN
Affiliation:
Fakultät für Informatik, Technische Universität München (e-mail: nipkow@in.tum.de)
TOBIAS NIPKOW
Affiliation:
Fakultät für Informatik, Technische Universität München (e-mail: nipkow@in.tum.de)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

We present a novel compiled approach to Normalisation by Evaluation (NBE) for ML-like languages. It supports efficient normalisation of open λ-terms with respect to β-reduction and rewrite rules. We have implemented NBE and show both a detailed formal model of our implementation and its verification in Isabelle. Finally we discuss how NBE is turned into a proof rule in Isabelle.

Type
Articles
Copyright
Copyright © Cambridge University Press 2012

References

Aehlig, K. & Joachimski, F. (2004) Operational aspects of untyped normalization by evaluation. Math. Struct. Comput. Sci. 14 (4), 587611.Google Scholar
Aehlig, K., Haftmann, F. & Nipkow, T. (2008) A compiled implementation of normalization by evaluation. In Theorem Proving in Higher Order Logics (TPHOLs 2008), Mohamed, O.A., Muñoz, C., & Tahar, S. (eds), Lecture Notes in Computer Science, vol. 5170. Springer Verlag, pp. 3954.Google Scholar
Barras, B. (2000) Programming and computing in HOL. In Theorem Proving in Higher Order Logics (TPHOLs 2000), Aagaard, M. & Harrison, J. (eds), Lecture Notes in Computer Science, vol. 1869. Springer Verlag, pp. 1737.CrossRefGoogle Scholar
Berger, U., Eberl, M. & Schwichtenberg, H. (2003) Term rewriting for normalization by evaluation. Inf. Comput. 183, 1942.CrossRefGoogle Scholar
Berger, U. & Schwichtenberg, H. (1991) An inverse of the evaluation functional for typed λ–calculus. In Proceedings of The Sixth IEEE Symposium on Logic in Computer Science, LICS 1991, Vemuri, R. (ed), pp. 203–211.CrossRefGoogle Scholar
Berger, U., Eberl, M. & Schwichtenberg, H. (1998) Normalization by evaluation. In Prospects for Hardware Foundations, Möller, B. & Tucker, J.V. (eds), Lecture Notes in Computer Science, vol. 1546. Springer Verlag, pp. 117137.CrossRefGoogle Scholar
Boespflug, M. (2010) Conversion by evaluation. In Proceedings of the Twelfth International Symposium on Pracical Aspects of Declarative Languages (PADL '10), Carro, M. & Peña, R. (eds), Lecture Notes in Computer Science, vol. 5937. Springer Verlag, pp. 5872.CrossRefGoogle Scholar
Bruijn, N. G. de. (1972) Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church–Rosser theorem. Indagationes Math. 34, 381392.Google Scholar
Danvy, O. (1996) Type-directed partial evaluation. In Proceedings of the Twenty-third ACM Symposium on Priciples of Programming Languages (POPL 1996), pp. 242–257.CrossRefGoogle Scholar
Gonthier, G. (2008) Formal proof–-the four-color theorem. Not. AMS. 55, 13821393.Google Scholar
Gordon, M. J. C. & Melham, T. F. (eds). (1993) Introduction to HOL: A Theorem-Proving Environment for Higher Order Logic. Cambridge University Press.Google Scholar
Grégoire, B. & Leroy, X. (2002) A compiled implementation of strong reduction. In International Conference on Functional Programming (ICFP 2002). ACM Press, pp. 235246.Google Scholar
Haftmann, F. & Nipkow, T. (2010) Code generation via higher-order rewrite systems. In Functional and Logic Programming, FLOPS 2010, Blume, M., Kobayashi, N. & Vidal, G. (eds), Lecture Notes in Computer Science, vol. 6009. Springer Verlag, pp. 103117.Google Scholar
Krauss, A. (2006) Partial recursive functions in higher-order logic. In Automated Reasoning (IJCAR 2006), Furbach, U. & Shankar, N. (eds), Lecture Notes in Computer Science, vol. 4130. Springer Verlag, pp. 589603.Google Scholar
Nipkow, T., Paulson, L., & Wenzel, M. (2002) Isabelle/HOL –-A Proof Assistant for Higher-Order Logic, Lecture Notes in Computer Science, vol. 2283. Springer Verlag.Google Scholar
Nipkow, T., Bauer, G., & Schultz, P. (2006) Flyspeck I: Tame graphs. In Automated Reasoning (IJCAR 2006), Furbach, U. & Shankar, N. (eds), Lecture Notes in Computer Science, vol. 4130. Springer Verlag, pp. 2135.Google Scholar
Reif, W., Schellhorn, G., Stenzel, K., & Balser, M. (1998) Structured specifications and interactive proofs with KIV. In Automated Deduction–-A Basis for Applications, Bibel, W., & Schmitt, P. (eds), Systems and Implementation Techniques, vol. II. Kluwer, pp. 1339.CrossRefGoogle Scholar
Submit a response

Discussions

No Discussions have been published for this article.