# Théorie des domaines

La théorie des domaines est une branche des mathématiques dont le principal champ d'application se trouve en informatique théorique. Cette partie de la théorie des ensembles ordonnés a été introduite par Dana Scott pendant les années 1960, afin de fournir le cadre théorique nécessaire à la définition d'une sémantique dénotationnelle du lambda-calcul.
Les domaines sont des ensembles partiellement ordonnés. Dans la sémantique dénotationnelle du lambda-calcul, les éléments des domaines représentent les lambda-termes et le plus petit élément (quand on en munit le domaine) représente le résultat d'un calcul ne finissant pas, c'est l'élément dit « indéfini », noté ⊥ (prononcer « bottom »). L'ordre du domaine définit, dans l'idée, une notion de quantité d'information : un élément du domaine contient au moins toute l'information contenue dans les éléments qui lui sont inférieurs.
L'idée est ensuite de se ramener à des domaines particuliers où toute fonction monotone (croissante) a un plus petit point fixe. En général, on utilise des ordres partiels complets (complete partial order, ou CPO), c'est-à-dire des domaines qui possèdent un plus petit élément et où toute chaîne (partie strictement ordonnée) a une borne supérieure.
Ainsi, il devient aisé d'associer une sémantique au combinateur de point fixe Y, en le représentant par une fonction totale qui à une fonction associe un de ses points fixes s'il en existe et ⊥ sinon. Par là-même, donner un sens à une fonction définie « récursivement » (c'est-à-dire en fait, en tant que point fixe d'une fonctionnelle G) devient possible :
* si f est la fonction qui à 0 associe 1 et à n > 0 associe n * f(n – 1),
* on peut aussi définir f comme ceci : f = Y(G) (point fixe de G) où G est la fonction qui prend une fonction φ en entrée et rend la fonction qui à 0 associe 1 et à n > 0 associe n * φ(n – 1) (et à ⊥ associe ⊥, par définition de ⊥). G est monotone sur le domaine des fonctions de ℕ$_⊥$ dans ℕ$_⊥$ et, à ce titre, admet un point fixe (la fonction factorielle)
* alors, on a un moyen de calculer f : en itérant G sur la fonction f$_0$ = ⊥, c'est-à-dire la fonction qui à tout entier naturel et à ⊥ associe ⊥. f est la limite de la suite ainsi obtenue (et le plus petit point fixe de G).
La théorie des domaines permet aussi de donner un sens aux équations de domaine de type A = A → A (A est l'ensemble des fonctions de A dans A). Dans les mathématiques habituelles, ceci est absurde, à moins de donner un sens particulier à cette flèche. Par exemple ℝ = ℝ → ℝ paraît impossible, ne serait-ce que pour des raisons de cardinalité (Dans la théorie des cardinaux, ℝ est un infini strictement plus petit que ℝ → ℝ) ; pourtant, si cette flèche ne représente que les applications continues de ℝ dans ℝ, on garde bien le même cardinal que ℝ (en effet, une application continue de ℝ dans ℝ peut être définie par sa restriction à l'ensemble dénombrable ℚ, donc cet ensemble a le cardinal de ℝ$^ℕ$, donc de ℝ).
En théorie des domaines, la notion de continuité sur un ensemble A aura son équivalent : la continuité de Scott sur un domaine A. Une fonction est Scott-continue ssi elle est monotone sur A et si pour toute partie filtrante (partie où toute paire d'éléments a un majorant) B de A admettant une borne supérieure, on a sup(f(B)) = f(sup(B)). Cette définition sera souvent simplifiée pour le cas où A est un CPO : la fonction est continue si et seulement si elle est monotone et si, pour toute chaîne B, on a sup(f(B)) = f(sup(B)).