Big Step Normalisation for Type Theory

Authors Thorsten Altenkirch, Colin Geniet

Thumbnail PDF


  • Filesize: 478 kB
  • 20 pages

Document Identifiers

Author Details

Thorsten Altenkirch
  • School for Computer Science, University of Nottingham, UK
Colin Geniet
  • Computer Science Department, ENS Paris-Saclay, France

Cite AsGet BibTex

Thorsten Altenkirch and Colin Geniet. Big Step Normalisation for Type Theory. In 25th International Conference on Types for Proofs and Programs (TYPES 2019). Leibniz International Proceedings in Informatics (LIPIcs), Volume 175, pp. 4:1-4:20, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2020)


Big step normalisation is a normalisation method for typed lambda-calculi which relies on a purely syntactic recursive evaluator. Termination of that evaluator is proven using a predicate called strong computability, similar to the techniques used to prove strong normalisation of β-reduction for typed lambda-calculi. We generalise big step normalisation to a minimalist dependent type theory. Compared to previous presentations of big step normalisation for e.g. the simply-typed lambda-calculus, we use a quotiented syntax of type theory, which crucially reduces the syntactic complexity introduced by dependent types. Most of the proof has been formalised using Agda.

Subject Classification

ACM Subject Classification
  • Theory of computation → Type theory
  • Normalisation
  • big step normalisation
  • type theory
  • dependent types
  • Agda


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. Thorsten Altenkirch, Paolo Capriotti, Gabe Dijkstra, Nicolai Kraus, and Fredrik Nordvall Forsberg. Quotient inductive-inductive types. In International Conference on Foundations of Software Science and Computation Structures, pages 293-310. Springer, Cham, 2018. Google Scholar
  2. Thorsten Altenkirch and James Chapman. Tait in one big step. In MSFP@ MPC, 2006. Google Scholar
  3. Thorsten Altenkirch and James Chapman. Big-step normalisation. Journal of Functional Programming, 19(3-4):311-333, 2009. Google Scholar
  4. Thorsten Altenkirch, Peter Dybjer, Martin Hofmann, and Phil Scott. Normalization by evaluation for typed lambda calculus with coproducts. In Proceedings 16th Annual IEEE Symposium on Logic in Computer Science, pages 303-310. IEEE, 2001. Google Scholar
  5. Thorsten Altenkirch and Colin Geniet. Agda formalisation for the paper big step normalisation for type theory. Available at, 2019.
  6. Thorsten Altenkirch, Martin Hofmann, and Thomas Streicher. Categorical reconstruction of a reduction free normalization proof. In International Conference on Category Theory and Computer Science, pages 182-199. Springer, 1995. Google Scholar
  7. Thorsten Altenkirch and Ambrus Kaposi. Normalisation by evaluation for dependent types. In 1st conference on Foundational Structures in Computation and Deduction (FSCD), 2016. Google Scholar
  8. Thorsten Altenkirch and Ambrus Kaposi. Type theory in type theory using quotient inductive types. ACM SIGPLAN Notices, 51(1):18-29, 2016. Google Scholar
  9. Ulrich Berger and Helmut Schwichtenberg. An inverse of the evaluation functional for typed lambda-calculus. In [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science, pages 203-211. IEEE, 1991. Google Scholar
  10. James Chapman. Type theory should eat itself. Electronic Notes in Theoretical Computer Science, 228:21-36, 2009. Google Scholar
  11. Cyril Cohen, Thierry Coquand, Simon Huber, and Anders Mörtberg. Cubical type theory: a constructive interpretation of the univalence axiom. arXiv preprint, 2016. URL:
  12. Thierry Coquand. An algorithm for testing conversion in type theory. Logical frameworks, 1:255-279, 1991. Google Scholar
  13. Gabe Dijkstra. Quotient inductive-inductive definitions. PhD thesis, University of Nottingham, 2017. Google Scholar
  14. Daniel J Dougherty and Ramesh Subrahmanyam. Equality between functionals in the presence of coproducts. In Proceedings of Tenth Annual IEEE Symposium on Logic in Computer Science, pages 282-291. IEEE, 1995. Google Scholar
  15. Peter Dybjer. Internal type theory. In International Workshop on Types for Proofs and Programs, pages 120-134. Springer, 1995. Google Scholar
  16. Jean-Yves Girard, Paul Taylor, and Yves Lafont. Proofs and types, volume 7. Cambridge university press Cambridge, 1989. Google Scholar
  17. Michael Hedberg. A coherence theorem for martin-löf’s type theory. Journal of Functional Programming, 8(4):413-436, 1998. Google Scholar
  18. Martin Hofmann. Syntax and semantics of dependent types. In Extensional Constructs in Intensional Type Theory, pages 13-54. Springer, 1997. Google Scholar
  19. Jean-Pierre Jouannaud and Albert Rubio. Rewrite orderings for higher-order terms in η-long β-normal form and the recursive path ordering. Theoretical Computer Science, 208(1-2):33-58, 1998. Google Scholar
  20. Ambrus Kaposi, András Kovács, and Thorsten Altenkirch. Constructing quotient inductive-inductive types. Proceedings of the ACM on Programming Languages, 3(POPL):2, 2019. Google Scholar
  21. Paul Blain Levy. Call-by-push-value. PhD thesis, Queen Mary and Westfield College, University of London, 2001. Google Scholar
  22. Paul-André Mellies. Typed λ-calculi with explicit substitutions may not terminate. In International Conference on Typed Lambda Calculi and Applications, page 32. Springer, 1995. Google Scholar
  23. Ulf Norell. Towards a practical programming language based on dependent type theory, volume 32. Citeseer, 2007. Google Scholar
  24. Univalent Foundations Program. Homotopy type theory: Univalent foundations of mathematics. Univalent Foundations, 2013. Google Scholar
  25. W. W. Tait. Intensional interpretations of functionals of finite type i. Journal of Symbolic Logic, 32(2):198–212, 1967. URL: