Abstract
In this paper, we show how Miquel’s Implicit Calculus of Constructions (ICC) can be used as a programming language featuring dependent types. Since this system has an undecidable type-checking, we introduce a more verbose variant, called ICC* which fixes this issue. Datatypes and program specifications are enriched with logical assertions (such as preconditions, postconditions, invariants) and programs are decorated with proofs of those assertions. The point of using ICC* rather than the Calculus of Constructions (the core formalism of the Coq proof assistant) is that all of the static information (types and proof objects) is transparent, in the sense that it does not affect the computational behavior. This is concretized by a built-in extraction procedure that removes this static information. We also illustrate the main features of ICC* on classical examples of dependently typed programs.
Chapter PDF
Similar content being viewed by others
References
Barendregt, H.: Lambda Calculi with Types. Technical Report 91-19, Catholic University Nijmegen. In: Handbook of Logic in Computer Science, vol. II (1991)
Brady, E.: Practical Implementation of a Dependently Typed Functional Programming Language. PhD thesis, Durham University (2005)
Brady, E., McBride, C., McKinna, J.: Inductive families need not store their indices. In: Berardi, S., Coppo, M., Damiani, F. (eds.) TYPES 2003. LNCS, vol. 3085, pp. 115–129. Springer, Heidelberg (2004)
Chen, C., Xi, H.: Combining Programming with Theorem Proving. In: Proceedings of the tenth ACM SIGPLAN ICFP, Tallinn, Estonia, pp. 66–77 (September 2005)
Constable, R.L., Allen, S.F., Bromley, H.M., Cleaveland, W.R., Cremer, J.F., Harper, R.W., Howe, D.J., Knoblock, T.B., Mendler, N.P., Panangaden, P., Sasaki, J.T., Smith, S.F.: Implementing Mathematics with the Nuprl Development System. Prentice-Hall, NJ (1986)
Letouzey, P.: Programmation fonctionnelle certifiée – L’extraction de programmes dans l’assistant Coq. PhD thesis, Université Paris-Sud (July 2004)
Luo, Z.: An Extended Calculus of Constructions. PhD thesis, University of Edinburgh (1990)
McBride, C., McKinna, J.: The view from the left. Journal of Functional Programming 14(1), 69–111 (2004)
Miquel, A.: Arguments implicites dans le calcul des constructions: étude d’un formalisme à la curry. Master’s thesis, University Paris 7 (1998)
Miquel, A.: The implicit calculus of constructions. Extending pure type systems with an intersection type binder and subtyping. In: Abramsky, S. (ed.) TLCA 2001. LNCS, vol. 2044, Springer, Heidelberg (2001)
Miquel, A.: Le Calcul des Constructions implicite: syntaxe et sémantique. PhD thesis, Université Paris 7 (December 2001)
Miquel, A., Werner, B.: The not so simple proof-irrelevent model of CC. In: Geuvers, H., Wiedijk, F. (eds.) TYPES 2002. LNCS, vol. 2646, Springer, Heidelberg (2003)
Norell, U.: Towards a practical programming language based on dependent type theory. PhD thesis, Department of Computer Science and Engineering, Chalmers University of Technology, SE-412 96 Göteborg, Sweden (September 2007)
Owre, S., Shankar, N.: The formal semantics of PVS. Technical Report SRI-CSL-97-2, Menlo Park, CA (1997)
Prost, F.: Interprétation de l’analyse statique en théorie des types. PhD thesis, École Normale Supérieure de Lyon (December 1999)
Sozeau, M.: Subset coercions in Coq. In: Altenkirch, T., McBride, C. (eds.) TYPES 2006. LNCS, vol. 4502, Springer, Heidelberg (2007)
The Coq development team. The coq proof assistant reference manual v8.0. Technical report, INRIA, France, mars (2004), http://coq.inria.fr/doc/main.html
Werner, B.: On the strength of proof-irrelevant type theories. In: Furbach, U., Shankar, N. (eds.) IJCAR 2006. LNCS (LNAI), vol. 4130, pp. 604–618. Springer, Heidelberg (2006)
Xi, H., Pfenning, F.: Dependent types in practical programming. In: Proceedings of the 26th ACM SIGPLAN Symposium on Principles of Programming Languages, San Antonio, pp. 214–227 (January 1999)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Barras, B., Bernardo, B. (2008). The Implicit Calculus of Constructions as a Programming Language with Dependent Types. In: Amadio, R. (eds) Foundations of Software Science and Computational Structures. FoSSaCS 2008. Lecture Notes in Computer Science, vol 4962. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-78499-9_26
Download citation
DOI: https://doi.org/10.1007/978-3-540-78499-9_26
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-78497-5
Online ISBN: 978-3-540-78499-9
eBook Packages: Computer ScienceComputer Science (R0)