A Formalized Proof of Strong Normalization for Guarded Recursive Types

  • Andreas Abel
  • Andrea Vezzosi
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8858)


We consider a simplified version of Nakano’s guarded fixed-point types in a representation by infinite type expressions, defined coinductively. Smallstep reduction is parametrized by a natural number “depth” that expresses under how many guards we may step during evaluation. We prove that reduction is strongly normalizing for any depth. The proof involves a typed inductive notion of strong normalization and a Kripke model of types in two dimensions: depth and typing context. Our results have been formalized in Agda and serve as a case study of reasoning about a language with coinductive type expressions.


Kripke Model Typing Context Type Constructor Strong Normalization Recursive Type 
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. Agda Wiki. Chalmers and Gothenburg University, 2.4 edn. (2014),
  2. Abel, A.: Normalization for the simply-typed lambda-calculus in Twelf. In: Logical Frameworks and Metalanguages (LFM 2004). Electronic Notes in Theoretical Computer Science, vol. 199C, pp. 3–16. Elsevier (2008)Google Scholar
  3. Abel, A., Pientka, B., Thibodeau, D., Setzer, A.: Copatterns: Programming infinite structures by observations. In: The 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2013, Rome, Italy, January 23-25, pp. 27–38. ACM Press (2013)Google Scholar
  4. Abel, A., Vezzosi, A.: A formalized proof of strong normalization for guarded recursive types (long version and Agda sources) (August 2014),
  5. Altenkirch, T., McBride, C., Swierstra, W.: Observational equality, now! In: Proceedings of the ACM Workshop Programming Languages meets Program Verification, PLPV 2007, Freiburg, Germany, October 5, pp. 57–68. ACM Press (2007)Google Scholar
  6. Altenkirch, T., Reus, B.: Monadic presentations of lambda terms using generalized inductive types. In: Flum, J., Rodríguez-Artalejo, M. (eds.) CSL 1999. LNCS, vol. 1683, pp. 453–468. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  7. Atkey, R., McBride, C.: Productive coprogramming with guarded recursion. In: Proc. of the 18th ACM SIGPLAN Int. Conf. on Functional Programming, ICFP 2013, pp. 197–208. ACM Press (2013)Google Scholar
  8. Benton, N., Hur, C.K., Kennedy, A., McBride, C.: Strongly typed term representations in Coq. Journal of Automated Reasoning 49(2), 141–159 (2012)MathSciNetCrossRefzbMATHGoogle Scholar
  9. Birkedal, L., Møgelberg, R.E.: Intensional type theory with guarded recursive types qua fixed points on universes. In: 28th Annual ACM/IEEE Symposium on Logic in Computer Science, LICS 2013, New Orleans, LA, USA, June 25-28, pp. 213–222. IEEE Computer Society Press (2013)Google Scholar
  10. Dybjer, P.: Inductive families. Formal Aspects of Computing 6(4), 440–465 (1994)CrossRefzbMATHGoogle Scholar
  11. Joachimski, F., Matthes, R.: Short proofs of normalization. Archive of Mathematical Logic 42(1), 59–87 (2003)MathSciNetCrossRefzbMATHGoogle Scholar
  12. Krishnaswami, N.R., Benton, N.: A semantic model for graphical user interfaces. In: Proceeding of the 16th ACM SIGPLAN International Conference on Functional Programming, ICFP 2011, Tokyo, Japan, September 19-21, pp. 45–57. ACM Press (2011a)Google Scholar
  13. Krishnaswami, N.R., Benton, N.: Ultrametric semantics of reactive programs. In: Proceedings of the 26th Annual IEEE Symposium on Logic in Computer Science, LICS 2011, Toronto, Ontario, Canada, June 21-24, pp. 257–266. IEEE Computer Society Press (2011b)Google Scholar
  14. McBride, C.: Type-preserving renaming and substitution, unpublished draft (2006),
  15. McBride, C.: Let’s see how things unfold: Reconciling the infinite with the intensional (Extended abstract). In: Kurz, A., Lenisa, M., Tarlecki, A. (eds.) CALCO 2009. LNCS, vol. 5728, pp. 113–126. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  16. McBride, C.: Outrageous but meaningful coincidences: Dependent type-safe syntax and evaluation. In: Proceedings of the ACM SIGPLAN Workshop on Generic Programming, WGP 2010, Baltimore, MD, USA, September 27-29, pp. 1–12. ACM Press (2010)Google Scholar
  17. Nakano, H.: A modality for recursion. In: Proceedings of the 15th Annual IEEE Symposium on Logic in Computer Science (LICS 2000), Santa Barbara, California, USA, June 26-29, pp. 255–266. IEEE Computer Society Press (2000)Google Scholar
  18. van Raamsdonk, F., Severi, P., Sørensen, M.H., Xi, H.: Perpetual reductions in lambda calculus. Information and Computation 149(2), 173–225 (1999)MathSciNetCrossRefzbMATHGoogle Scholar
  19. Tait, W.W.: Intensional interpretations of functionals of finite type I. The Journal of Symbolic Logic 32(2), 198–212 (1967)MathSciNetCrossRefzbMATHGoogle Scholar
  20. Univalent Foundations: Homotopy type theory: Univalent foundations of mathematics. Tech. rep. Institute for Advanced Study (2013),
  21. Xi, H., Chen, C., Chen, G.: Guarded recursive datatype constructors. In: Proceedings of the 30th ACM SIGPLAN Symposium on Principles of Programming Languages, New Orleans, pp. 224–235 (2003)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Andreas Abel
    • 1
  • Andrea Vezzosi
    • 1
  1. 1.Computer Science and EngineeringChalmers and Gothenburg UniversityGöteborgSweden

Personalised recommendations