A Module Calculus for Pure Type Systems

Several proof-assistants rely on the very formal basis of Pure Type Systems (PTS). However, some practical issues raised by the development of large proofs lead to add other features to actual implementations for handling namespace management, for developing reusable proof libraries and for separate verification of distinct parts of large proofs. Unfortunately, few theoretical basis are given for these features. In this paper we propose an extension of Pure Type Systems with a module calculus adapted from SML-like module systems for programming pratiqueslanguages. Our module calculus gives a theoretical framework addressing the need for these features. We show that our module extension is conservative, and that type inference in the module extension of a given PTS is decidable under some hypotheses over this PTS.

[1]  Claude Marché,et al.  CiME: Completion Modulo E , 1996, RTA.

[2]  David B. MacQueen Modules for standard ML , 1984, LFP '84.

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

[4]  William M. Farmer,et al.  The IMPS User's Manual , 1995 .

[5]  Furio Honsell,et al.  A framework for defining logics , 1993, JACM.

[6]  Roberto Di Cosmo,et al.  Isomorphisms of Types , 1995, Progress in Theoretical Computer Science.

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

[8]  Roberto Di Cosmo Review of Isomorphisms of Types:: from λ-calculus to information retrieval and language design , 1997 .

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

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

[11]  Mark P. Jones,et al.  Using parameterized signatures to express modular structure , 1996, POPL '96.

[12]  Bengt Nordström,et al.  The ALF Proof Editor and Its Proof Engine , 1994, TYPES.

[13]  Donald Sannella Formal program development in Extended ML for the working programmer , 1990 .

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

[15]  Christine Paulin-Mohring,et al.  Inductive Definitions in the system Coq - Rules and Properties , 1993, TLCA.

[16]  R. Pollack The Theory of LEGO A Proof Checker for the Extended Calculus of Constructions , 1994 .

[17]  Giuseppe Castagna,et al.  Programmation modulaire avec surcharge et liaison tardive , 1996 .

[18]  J. Courant,et al.  A Module Calculus Enjoying the Subject-Reduction Property , 1996 .

[19]  Donald Sannella,et al.  The Definition of Extended ML: A Gentle Introduction , 1997, Theor. Comput. Sci..

[20]  Francois M. Rouaix Alcool-90. Typage de la surcharge dans un langage fonctionnel , 1990 .

[21]  Erik Poll,et al.  Pure Type Systems with Definitions , 1994, LFCS.

[22]  Xavier Leroy,et al.  Applicative functors and fully transparent higher-order modules , 1995, POPL '95.

[23]  Hugo Herbelin,et al.  The Coq proof assistant : reference manual, version 6.1 , 1997 .

[24]  Giuseppe Castagna Surcharge, sous-typage et liaison tardive : fondements fonctionnels de la programmation orientee objets , 1994 .