Decidability of Type-Checking in the Calculus of Algebraic Constructions with Size Annotations

  • Frédéric Blanqui
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3634)


Since Val Tannen’s pioneering work on the combination of simply-typed λ-calculus and first-order rewriting [11], many authors have contributed to this subject by extending it to richer typed λ-calculi and rewriting paradigms, culminating in the Calculus of Algebraic Constructions. These works provide theoretical foundations for type-theoretic proof assistants where functions and predicates are defined by oriented higher-order equations. This kind of definitions subsumes usual inductive definitions, is easier to write and provides more automation.

On the other hand, checking that such user-defined rewrite rules, when combined with β-reduction, are strongly normalizing and confluent, and preserve the decidability of type-checking, is more difficult. Most termination criteria rely on the term structure. In a previous work, we extended to dependent types and higher-order rewriting, the notion of “sized types” studied by several authors in the simpler framework of ML-like languages, and proved that it preserves strong normalization.

The main contribution of the present paper is twofold. First, we prove that, in the Calculus of Algebraic Constructions with size annotations, the problems of type inference and type-checking are decidable, provided that the sets of constraints generated by size annotations are satisfiable and admit most general solutions. Second, we prove the latter properties for a size algebra rich enough for capturing usual induction-based definitions and much more.


Function Symbol Recursive Call Predicate Symbol Dependent Type Constraint Problem 
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.
    Abel, A.: Termination checking with types. Theoretical Informatics and Applications 38(4), 277–319 (2004)zbMATHCrossRefMathSciNetGoogle Scholar
  2. 2.
    Barendregt, H.: Lambda calculi with types. In: Abramsky, S., Gabbay, D., Maibaum, T. (eds.) Handbook of logic in computer science, vol. 2, Oxford University Press, Oxford (1992)Google Scholar
  3. 3.
    Barthe, G., Frade, M.J., Giménez, E., Pinto, L., Uustalu, T.: Type-based termination of recursive definitions. Mathematical Structures in Computer Science 14(1), 97–141 (2004)zbMATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    Barthe, G., Grégoire, B., Pastawski, F.: Practical inference for type-based termination in a polymorphic setting. In: Urzyczyn, P. (ed.) TLCA 2005. LNCS, vol. 3461, pp. 71–85. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  5. 5.
    Blanqui, F.: Rewriting modulo in Deduction modulo. In: Nieuwenhuis, R. (ed.) RTA 2003. LNCS, vol. 2706, Springer, Heidelberg (2003)CrossRefGoogle Scholar
  6. 6.
    Blanqui, F.: A type-based termination criterion for dependently-typed higher-order rewrite systems. In: van Oostrom, V. (ed.) RTA 2004. LNCS, vol. 3091, pp. 24–39. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  7. 7.
    Blanqui,F.: Full version of [6], See
  8. 8.
    Blanqui, F.: Definitions by rewriting in the Calculus of Constructions. Mathematical Structures in Computer Science 15(1), 37–92 (2005)zbMATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Blanqui, F.: Full version, See
  10. 10.
    Blanqui, F.: Inductive types in the Calculus of Algebraic Constructions. Fundamenta Informaticae 65(1-2), 61–86 (2005)zbMATHMathSciNetGoogle Scholar
  11. 11.
    Breazu-Tannen, V.: Combining algebra and higher-order types. In: Proc. of LICS 1988 (1998)Google Scholar
  12. 12.
    Chen, G.: Subtyping, Type Conversion and Transitivity Elimination. PhD thesis, Université Paris VII, France (1998)Google Scholar
  13. 13.
    Chin, W.N., Khoo, S.C.: Calculating sized types. Journal of Higher-Order and Symbolic Computation 14(2-3), 261–300 (2001)zbMATHCrossRefGoogle Scholar
  14. 14.
    Coq-Development-Team. The Coq Proof Assistant Reference Manual - Version 8.0. INRIA Rocquencourt, France (2004)
  15. 15.
    Coquand, T.: An algorithm for testing conversion in type theory. In: Huet, G., Plotkin, G. (eds.) Logical Frameworks, pp. 255–279. Cambridge University Press, Cambridge (1991)CrossRefGoogle Scholar
  16. 16.
    Coquand, T., Huet, G.: The Calculus of Constructions. Information and Computation 76(2-3), 95–120 (1988)zbMATHCrossRefMathSciNetGoogle Scholar
  17. 17.
    Coquand, T., Paulin-Mohring, C.: Inductively defined types. In: Martin-Löf, P., Mints, G. (eds.) COLOG 1988. LNCS, vol. 417, Springer, Heidelberg (1990)Google Scholar
  18. 18.
    Dershowitz, N., Jouannaud, J.-P.: Rewrite systems. In: van Leeuwen, J. (ed.) Handbook of Theoretical Computer Science, vol. B, ch. 6, North-Holland, Amsterdam (1990)Google Scholar
  19. 19.
    Giménez, E.: Structural recursive definitions in type theory. In: Larsen, K.G., Skyum, S., Winskel, G. (eds.) ICALP 1998. LNCS, vol. 1443, p. 397. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  20. 20.
    Hughes, J., Pareto, L., Sabry, A.: Proving the correctness of reactive systems using sized types. In: Proc. of POPL 1996 (1996)Google Scholar
  21. 21.
    Jouannaud, J.-P., Rubio, A.: The Higher-Order Recursive Path Ordering. In: Proc. of LICS 1999 (1999)Google Scholar
  22. 22.
    Lueker, G., Megiddo, N., Ramachandran, V.: Linear programming with two variables per inequality in poly-log time. SIAM Journal on Computing 19(6), 1000–1010 (1990)zbMATHCrossRefMathSciNetGoogle Scholar
  23. 23.
    Müller, F.: Confluence of the lambda calculus with left-linear algebraic rewriting. Information Processing Letters 41(6), 293–299 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  24. 24.
    Odersky, M., Sulzmann, M., Wehr, M.: Type inference with constrained types. Theory and Practice of Object Systems 5(1), 35–55 (1999)CrossRefGoogle Scholar
  25. 25.
    Pratt, V.: Two easy theories whose combination is hard. Technical report, MIT, United States (1977)Google Scholar
  26. 26.
    Sulzmann, M.: A general type inference framework for Hindley/Milner style systems. In: Kuchen, H., Ueda, K. (eds.) FLOPS 2001. LNCS, vol. 2024, p. 248. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  27. 27.
    Walukiewicz-Chrząszcz, D.: Termination of rewriting in the Calculus of Constructions. Journal of Functional Programming 13(2), 339–414 (2003)zbMATHMathSciNetGoogle Scholar
  28. 28.
    Xi, H.: Dependent types in practical programming. PhD thesis, Carnegie-Mellon, Pittsburgh, United States (1998)Google Scholar
  29. 29.
    Xi, H.: Dependent types for program termination verification. Journal of Higher- Order and Symbolic Computation 15(1), 91–131 (2002)zbMATHCrossRefGoogle Scholar
  30. 30.
    Zenger, C.: Indexed types. Theoretical Computer Science 187(1-2), 147–165 (1997)zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Frédéric Blanqui
    • 1
  1. 1.Laboratoire Lorrain de Recherche en Informatique et Automatique (LORIA)Institut National de Recherche en Informatique et Automatique (INRIA)Villers-lès-NancyFrance

Personalised recommendations