A Module Calculus Enjoying the Subject-Reduction Property

The module system of SML is a small typed language of its own. As is, one would expect a proof of its soundness following from a proof of subject reduction, but none exists. As a consequence the theoretical study of reductions is diicult, and for instance, the question of normalization of the module calculus can not even be asked. In this paper, we b u i l d a v ariant of the SML module system | inspired from recent w orks | which enjoys the subject reduction property. This was the initial motivation. Besides our system enjoys other type-theoretic properties: the obtained calculus is strongly normalizing, there are no syntactic restrictions on module paths, it enjoys a purely applicative s e m a n tic, every module has a principal type, and type inference is decidable. Moreover we conjecture that type abstraction | a c hieved through an explicit declaration of the signature of a module at its deenition | is preserved. Le syst eme de modules de SML est un vrai petit langage typ e. Alors qu'on pourrait attendre une preuve de la consistance des syst emes de modules d ecoulant d e l ' etude des r eductions de modules, en particulier d'une preuve d'autor eduction, aucune preuve de ce genre ne semble exister. Or cela est un pr eliminaire n ecessaire a toute etude des r eductions, et en particulier a la question de la normalisation du syst e m e d e m o d u l e s. Dans ce rapport, nous construisons une variante du syst eme de modules de SML, inspir ee de travaux r ecents, qui poss ede la propri et e d'autor eduction. Cette motivation initiale conduit par ailleurs a un syst eme de modules poss edant des propri et es th eoriques remarquables: le calcul de modules est fortement normalisant, aucune restriction syntaxique sur les chemins d'acc es n'est n ecessaire, la s emantique de notre syst eme est purement applicative, tout module poss ede un type principal, et l'inf erence de type est d ecidable. Nous conjecturons par ailleurs que l'abstraction de type | obtenue par un m ecanisme de d eclaration explicite de la signature d'un module lors de sa d eenition | est pr eserv ee.