A Compiled Implementation of Normalization by Evaluation

  • Klaus Aehlig
  • Florian Haftmann
  • Tobias Nipkow
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5170)


We present a novel compiled approach to Normalization by Evaluation (NBE) for ML-like languages. It supports efficient normalization of open λ-terms w.r.t. β-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.


Pattern Match Default Rule Functional Language Partial Correctness Proof Rule 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aehlig, K., Joachimski, F.: Operational aspects of untyped normalization by evaluation. Mathematical Structures in Computer Science 14(4), 587–611 (2004)MathSciNetCrossRefzbMATHGoogle Scholar
  2. 2.
    Barras, B.: Programming and computing in HOL. In: Aagaard, M.D., Harrison, J. (eds.) TPHOLs 2000. LNCS, vol. 1869, pp. 17–37. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  3. 3.
    Berger, U., Eberl, M., Schwichtenberg, H.: Term rewriting for normalization by evaluation. Information and Computation 183, 19–42 (2003)MathSciNetCrossRefzbMATHGoogle Scholar
  4. 4.
    Berger, U., Eberl, M., Schwichtenberg, H.: Normalization by evaluation. In: Möller, B., Tucker, J.V. (eds.) NADA 1997. LNCS, vol. 1546, pp. 117–137. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  5. 5.
    Berger, U., Schwichtenberg, H.: An inverse of the evaluation functional for typed λ–calculus. In: Vemuri, R. (ed.) Proceedings of the Sixth Annual IEEE Symposium on Logic in Computer Science (LICS 1991), pp. 203–211 (1991)Google Scholar
  6. 6.
    de Bruijn, N.G.: Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church–Rosser theorem. Indagationes Mathematicae 34, 381–392 (1972)MathSciNetCrossRefzbMATHGoogle Scholar
  7. 7.
    Danvy, O.: Type-directed partial evaluation. In: Proceedings of the Twenty-Third Annual ACM SIGPLAN-SIGACT Symposium on Priciples Of Programming Languages (POPL 1996) (1996)Google Scholar
  8. 8.
    Danvy, O., Rhiger, M., Rose, C.H.: Normalisation by evaluation with typed syntax. Journal of Functional Programming 11(6), 673–680 (2001)MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    Gonthier, G.: A computer-checked proof of the four-colour theorem,
  10. 10.
    Gordon, M.J.C., Melham, T.F. (eds.): Introduction to HOL: a theorem-proving environment for higher order logic. Cambridge University Press, Cambridge (1993)zbMATHGoogle Scholar
  11. 11.
    Grégoire, B., Leroy, X.: A compiled implementation of strong reduction. In: International Conference on Functional Programming 2002, pp. 235–246. ACM Press, New York (2002)Google Scholar
  12. 12.
    Haftmann, F., Nipkow, T.: A code generator framework for Isabelle/HOL. In: Schneider, K., Brandt, J. (eds.) Theorem Proving in Higher Order Logics: Emerging Trends Proceedings. Department of Computer Science, University of Kaiserslautern (2007)Google Scholar
  13. 13.
    Krauss, A.: Partial recursive functions in higher-order logic. In: Furbach, U., Shankar, N. (eds.) IJCAR 2006. LNCS (LNAI), vol. 4130, pp. 589–603. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  14. 14.
    Nipkow, T., Bauer, G., Schultz, P.: Flyspeck I: Tame graphs. In: Furbach, U., Shankar, N. (eds.) IJCAR 2006. LNCS (LNAI), vol. 4130, pp. 21–35. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  15. 15.
    Nipkow, T., Paulson, L.C., Wenzel, M.T.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002), zbMATHGoogle Scholar
  16. 16.
    Pitts, A.M.: Nominal logic, a first order theory of names and binding. Information and Computation 186, 165–193 (2003)MathSciNetCrossRefzbMATHGoogle Scholar
  17. 17.
    Reif, W., Schellhorn, G., Stenzel, K., Balser, M.: tructured specifications and interactive proofs with KIV. In: Bibel, W., Schmitt, P. (eds.) Automated Deduction—A Basis for Applications. Systems and Implementation Techniques, vol. II, pp. 13–39. Kluwer Academic Publishers, Dordrecht (1998)CrossRefGoogle Scholar
  18. 18.
    Urban, C., Tasson, C.: Nominal techniques in Isabelle/HOL. In: Nieuwenhuis, R. (ed.) CADE 2005. LNCS (LNAI), vol. 3632, pp. 38–53. Springer, Heidelberg (2005)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Klaus Aehlig
    • 1
  • Florian Haftmann
    • 2
  • Tobias Nipkow
    • 2
  1. 1.Department of Computer ScienceSwansea UniversityUK
  2. 2.Institut für InformatikTechnische Universität MünchenGermany

Personalised recommendations