Thèse de doctorat en Informatique
Sous la direction de Hugo Herbelin.
Soutenue en 2010
Développement modulaire de théories et gestion de l'espace de nom pour l'assistant de preuve Coq
Proof assistants offer a formal framework for formalizing and mechanically checking mathematical knowledge. Moreover, due to the numerous applications that follow from formal methods, the scientifc production being formalized and verified by such tools is constantly growing. In that context, the organization and the classification of this knowledge does not have to be neglected. Coq is a proof assistant well-suited for program certification and mathematical formalization, and for seven years now it has featured a module system that helps users in their development processes. Modules provide a way to represent theories and offer a namespace management that is crucial for large developments. In this dissertation, we advance the module system of Coq by putting the emphasis on the two latter aspects. We propose to unify both module implementation and module type into a single notion of structure, and to split our module system in two parts. We have, on one hand, a namespace system that is able to define extensible naming scopes and to deal with renaming, and on the other hand a structure system that describes how to combine and to form structures. We define a new merge operator that, given two structures, builds the resulting structure by unifying components of the former two. In that dual system, a module is the association of a sub-namespace and a pair of structures, it acts as concrete declared theory. Furthermore, we adopt an applicative semantic for higher-order functors that allows a precise propagation of information. We show that this module system is a conservative extension of the underlying base language of Coq and we present the on-going implementation.
Pas de résumé disponible.