Théorie des types

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

En mathématiques, logique et informatique, une théorie des types est une classe de systèmes formels, dont certains peuvent servir d'alternatives à la théorie des ensembles comme axiomatique des mathématiques modernes. En théorie des types, chaque "terme" a un "type" et les opérations décrites par le système imposent des restrictions sur le type des termes qu'elles combinent.

La théorie des types est très liée (et recoupe parfois) l'étude des systèmes de types qui sont utilisés dans certains langages de programmation afin d'éviter certains bugs. Les types étudiés en théorie des types ont été introduits pour empêcher certains paradoxes au sein de divers système de logique formelle ou de réécriture et l'expression "théorie des types" renvoie parfois à ce contexte plus large.

Deux théories des types bien connues et qui peuvent servir de fondations pour les mathématiques sont le λ-calcul typé d'Alonzo Church et la théorie des types intuitionniste de Per Martin-Löf. Les théories des types trouvent une application majeure en tant que systèmes axiomatiques utilisés par une majorité de logiciels assistants de preuve du fait de la correspondance de Curry-Howard liant preuves et programmes.

Histoire[modifier | modifier le code]

Les type de la théorie des types ont été inventés par Bertrand Russell comme réponse à sa découverte du paradoxe affligeant la théorie naïve des ensembles de Gottlob Frege. Cette théorie des types est longuement développée dans l'ouvrage Principia Mathematica de Russell et Whitehead. Elle permet de contourner le paradoxe de Russell en introduisant tout d'abord une hiérarchie de types, puis en assignant un type à chaque entité mathématique. Les objets d'un certain type ne peuvent être construits qu'à partir d'objets leur pré-existant (situés plus bas dans la hiérarchie), empêchant ainsi les boucles infinies.

Dans le langage courant, "théorie des types" est à comprendre dans le contexte des systèmes de réécriture. L'exemple le plus connu est le lambda calcul d'Alonzo Church. Sa Theory of Types[1] a permis de passer du calcul non-typé originel inconsistant du fait du paradoxe de Kleene–Rosser à un calcul correct. Church a démontré que ce système pouvait servir de fondement des mathématiques; on le décrit comme une logique d'ordre supérieur.

D'autres théories des types marquantes sont la théorie des types intuitionniste de Per Martin-Löf qui est utilisée comme fondement dans certaines branches des mathématiques constructivistes et pour des assistants de preuve tels que Agda ou Idris. Le calcul des constructions de Thierry Coquand et ses extensions sont utilisés notamment par Coq et Matita. Le champ est un sujet de recherche actif comme le démontrent les récents développements en Théorie des types homotopiques.


Une première théorie des types (dite « ramifiée ») a été créée par Bertrand Russell pour résoudre les paradoxes logiques, comme celui du menteur et ceux de la théorie des ensembles ; lourde d'emploi, elle a d'abord été simplifiée par Ramsey puis supplantée par la théorie de Zermelo-Frankel en 1922 (socle axiomatique utilisé par tous les mathématiciens, l'autre théorie NF conçue par Quine en 1937 et perfectionnée en NFU en 1969 par Ronald Jensen (en) n'est pas utilisée par les mathématiciens malgré les possibilités simplificatrices qu'elle offre, voir New Foundations[2]), et aussi reconsidérée pour des objets plus élémentaires après la découverte du lambda-calcul et de la logique combinatoire. Bien que ces théories soient cohérentes dans leurs versions originelles, qui sont non typées, il est intéressant d'en étudier des formulations avec types.

Dans ces derniers cas, les entités mathématiques sont construites à l'aide de fonctions, où chaque fonction a un type qui décrit le type de ses arguments et le type de la valeur retournée. Les entités sont bien formées lorsque les fonctions sont appliquées à des entités ayant le type que la fonction attend.

Applications[modifier | modifier le code]

Le concept de type a plusieurs domaines d'applications :

Notes[modifier | modifier le code]

  1. Alonzo Church, A formulation of the simple theory of types, The Journal of Symbolic Logic 5(2):56–68 (1940)
  2. La notion de type reste latente dans ZF, via la hiérarchie cumulative, et dans NF, via la notion de stratification.
  3. La définition de type par Russell, comme domaine de signifiance d'une fonction propositionnelle, était du reste linguistique.

Voir aussi[modifier | modifier le code]