Modules in Coq Are and Will Be Correct

The paper presents the system of named modules implemented in Coq version 7.4 and shows that this extension is conservative. It is also shown that the implemented module system is ready for the future planned extension of Coq with definitions of functions by means of rewrite rules. More precisely, the impact of the module system on the acceptance criterion for rewrite rules is carefully studied, leading to the formulation of four closure properties that have to be satisfied by the acceptance criterion in order to validate the conservativity proof. It turns out that syntactic termination criteria such as Higher Order Recursive Path Ordering or the General Schema can be adapted to satisfy these closure properties.

[1]  Xavier Leroy,et al.  Manifest types, modules, and separate compilation , 1994, POPL '94.

[2]  Lawrence C. Paulson,et al.  Isabelle: The Next 700 Theorem Provers , 2000, ArXiv.

[3]  Frank Pfenning,et al.  A Module System for a Programming Language Based on the LF Logical Framework , 1998, J. Log. Comput..

[4]  Zhaohui Luo An extended calculus of constructions , 1990 .

[5]  Thierry Coquand,et al.  Inductively defined types , 1988, Conference on Computer Logic.

[6]  Daria Walukiewicz-Chrzaszcz,et al.  Termination of rewriting in the Calculus of Constructions , 2003, Journal of Functional Programming.

[7]  Judicaël Courant Un calcul de modules pour les systemes de types purs , 1997 .

[8]  Jacek Chrzaszcz Modules in type theory with generative definitions , 2004 .

[9]  Thierry Coquand,et al.  The Calculus of Constructions , 1988, Inf. Comput..

[10]  Thierry Coquand,et al.  Pattern Matching with Dependent Types , 1992 .

[11]  Zhaohui Luo,et al.  ECC, an extended calculus of constructions , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[12]  Mark Lillibridge,et al.  A type-theoretic approach to higher-order modules with sharing , 1994, POPL '94.

[13]  Jacek Chrząszcz Implementation of Modules in the Coq System , 2003 .

[14]  Jacek Chrząszcz Implementing Modules in the Coq System , 2003, TPHOLs.

[15]  Frédéric Blanqui,et al.  Definitions by rewriting in the calculus of constructions , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[16]  Judicaël Courant,et al.  A Module Calculus for Pure Type Systems , 1997, TLCA.