Système T

De testwiki
Version datée du 2 mars 2025 à 22:09 par imported>JeanCASPAR (Orthographe)
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

À l'instar de la récursion primitive ou le lambda-calcul, le système T ou l'arithmétique dans les types finis, parfois notée 𝐇𝐀ω est un système formel. Il a été inventé par le logicien Kurt Gödel[1] pour montrer la cohérence de l'arithmétique de Heyting au moyen de son Modèle:Lien.

Ce système consiste en une extension du lambda-calcul simplement typé avec des entiers naturels et la possibilité de définir des fonctions par récurrence. Le système T est plus expressif que le lambda-calcul simplement typé et que la récursion primitive étant donné qu'il permet de définir la fonction d'Ackermann. En fait, les fonctions définissables dans le système T sont exactement les fonctions prouvablement totales dans l'arithmétique de Peano, ou de façon équivalente, dans l'arithmétique de Heyting.

Le principe est simple : on garde les schémas récursifs primitifs, notamment celui de la récurrence primitive :

  • f(0,y)=g(y)
  • f(x+1,y)=h(x,f(x,y),y)

La différence majeure est que l'on autorise désormais les paramètres y à être des fonctions. Par rapport à la récursion primitive, il est alors possible, par exemple, de faire une récurrence sur plusieurs paramètres.

Formalisme

Le formalisme se base sur celui du lambda-calcul simplement typé. On y ajoute un type représentant les entiers naturels, , ainsi qu'un type représentant les booléens, 𝔹[2]. Il est également possible d'ajouter des types produits.

Pour les booléens, on considère deux constantes, True (Vrai en anglais) et False (Faux en anglais), ainsi qu'une construction ifAuvw avec u un booléen et v et w de même type A. Cette opération représente une instruction conditionnelle : si u est vrai, on renvoie v, sinon w. Cela se traduit par les règles ifATruevwv et ifAFalsevww.

(T)ΓTrue:𝔹
(F)ΓFalse:𝔹
(if)Γu:𝔹Γv:AΓw:AΓifAuvw:A

Les entiers sont construits soit à partir de la constante 0, soit comme le successeur Su d'un autre entier u, qui représente u+1. Ainsi, si n est un entier naturel usuel, il sera représenté dans le système T par le terme Sn0=SSn0, qui consiste en napplications successives de S au terme 0.

Si u est un entier, v a pour type A et w est une fonction qui prend un entier et un élément de type A et renvoie un élément de type A, recAuvw est de type A. L'idée derrière rec est que le terme λu.recAuvw représente la fonction f définie par récurrence avec f(0)=u et f(n+1)=w(n,f(n)) : on considère donc les règles de réduction recA0vwv et recA(Su)vwwu(recAuvw).

(0)Γ0:
(S)Γu:ΓSu:
(rec)Γu:Γv:AΓw:AAΓrecAuvw:A

On peut de montrer que les termes clos Modèle:Incise de type sont tous de la forme Sn0 pour un certain entier naturel n, et les termes clos de type 𝔹 sont True et False[3]. De plus, on peut noter que la réduction est confluente, préserve les types et est fortement normalisante[4], ce dernier résultat a été démontré en premier par Tait[5].

Combinateurs typés

L'article originel de Gödel[1] présente un formalisme basé sur des combinateurs typés plutôt que sur le lambda-calcul simplement typé. Tait considère que c'est parce qu'il est plus facile de raisonner avec des combinateurs plutôt qu'avec le lambda-calcul, qui évitent de devoir gérer la substitution et les variables libres et liées[5], mais Troelstra[6] et lui définissent les lambda-termes à partir des combinateurs. Girard quant à lui présente le système T uniquement avec le lambda-calcul dans sa thèse[7] et dans son livre[2], en ajoutant un type des booléens et un type produit.

Exemples

Le prédécesseur

La fonction prédécesseur vérifie les équations suivantes[8] :

  • 𝖯𝗋𝖾𝖽0=0 ;
  • 𝖯𝗋𝖾𝖽(Sn)=n.

On peut donc l'écrire sous forme de terme comme :

𝖯𝗋𝖾𝖽=λn.recn0(λn'.λr.n).

Un minimum efficace

En récursion primitive, on ne peut pas faire une fonction qui retourne le minimum de deux entiers en temps de calcul minimum de ces deux entiers, pour la stratégie d'évaluation d'appel par nom[9]. C'est très contraignant si on calcule, par exemple, le minimum de 2 et Modèle:Formatnum. Comme le système T permet les récursions sur plusieurs paramètres, on peut trouver un algorithme plus efficace.

Intuitivement, la fonction minimum vérifie les équations suivantes :

  • 𝖬𝗂𝗇00=0 ;
  • 𝖬𝗂𝗇(S0)0=0 ;
  • 𝖬𝗂𝗇(Sm)(Sn)=S(𝖬𝗂𝗇mn).

En transformant un peu on obtient des équations utilisant le schéma souhaité :

  • 𝖬𝗂𝗇0=λm.0 ;
  • 𝖬𝗂𝗇(Sm)=λn.𝖬𝗂𝗇(𝖬𝗂𝗇m)n ;
  • 𝖬𝗂𝗇f0=0 ;
  • 𝖬𝗂𝗇f(Sn)=S(fn).

Le terme voulu est :

𝖬𝗂𝗇=λm.recm(λn.0)(λm'.λf.λn.recn0(λn'.λr.S(fn))).

De la même manière, on peut obtenir facilement un programme optimisé pour l'addition et la soustraction.

La fonction d'Ackermann

La fonction d'Ackermann est définie ainsi :

  • 𝖠𝖼𝗄(m,n)={n+1si m=0𝖠𝖼𝗄(m1,1)si m>0 et n=0𝖠𝖼𝗄(m1,𝖠𝖼𝗄(m,n1))si m>0 et n>0.

On remarque que cette définition n'est pas une instance valide du schéma de récurrence primitive récursive : en effet, la récurrence primitive n'autorise pas à définir par récurrence une fonction qui renvoie autre chose qu'un entier (en l'occurence, il faudrait pouvoir renvoyer une fonction), mais ce n'est pas une limitation de système T. En fait, la fonction d'Ackermann n'est pas une fonction primitive récursive[10].

Ainsi, en modifiant un peu la définition, on obtient la forme désirée :

  • 𝖠𝖼𝗄0=λn.Sn ;
  • 𝖠𝖼𝗄(Sm)=λn.𝖠𝖼𝗄(𝖠𝖼𝗄m)n ;
  • 𝖠𝖼𝗄f0=f(S0) ;
  • 𝖠𝖼𝗄f(Sn)=f(𝖠𝖼𝗄fn).

Dans la fonction auxiliaire, la variable f contient la fonction 𝖠𝖼𝗄m. Il n'y a plus qu'à écrire cela sous forme de terme :

𝖠𝖼𝗄=λm.recm(λn.Sn)(λm'.λf.λn.recn(f(S0))(λn'.λr.fr)).

Formules

On peut introduire une théorie 𝐇𝐀ω dont les termes sont décrits par ceux de système T. Gödel[5] a introduit la première version intensionnelle de cette théorie[1], qui a été étudiée de façon plus extensive par Tait, qui en prouve la cohérence. Dans sa thèse, Girard[11] présente également 𝐇𝐀ω avec plusieurs extensions, notamment un passage à l'ordre supérieur (ce qui correpspond au système F. Enfin, Troelstra[12] présente de façon extensives toutes les variantes connues de 𝐇𝐀ω dans son livre, ainsi que différents résultats de cohérence relative et la compatibilité de chacune de ces variantes avec l'Modèle:Lien. Ces variantes sont résumées par van den Berg[13], qui commente l'importance du fait l'égalité est observationnelle dans chacune de ces théories, sauf dans le système neutre.

Les formules sont formées par quantification universelle et existentielle, conjonction, disjonction, négation et implication, à partir des formules atomiques (la formule toujours vraie), (la formule toujours fausse) et s=TtT est un type et s et t deux termes de types T, qui désigne la formule vraie si s et t sont égaux et fausse s'ils sont différents. Les règles de démonstration sont celles de la déduction naturelle dans sa variante intuitionniste, c'est-à-dire sans la règle de démonstration par l'absurde. Les règles de démonstration comprennent également la récurrence sur les entiers, qui énonce que si une formule A est vraie pour 0 et que si pour tout n, si A est vraie pour n elle est vraie pour n+1, alors elle est vraie pour tout entier :

A[x:=0](n,A[x:=n]A[x:=Sn])n,A[x:=n],

et la règle d'élimination des booléens, qui énonce que l'on peut prouver une formule en faisant une disjonction de cas sur un booléen :

A[x:=True]A[x:=False]b𝔹,A[x:=b].

Égalité

Dans cette théorie[14], l'égalité est une relation d'équivalence. De plus, deux termes égaux sont substituables : si t=u et A[x:=t] alors A[x:=u].

En plus de cela, l'égalité des entiers utilise les mêmes axiomes que l'arithmétique de Peano, c'est-à-dire que Sx0 et x=ySx=Sy, que les deux constantes booléennes sont différentes : TrueFalse.

Enfin, on considère que la réduction est incluse dans l'égalité, c'est-à-dire que si MN alors M=N. On suppose également que l'égalité est préservée par les diverses constructions du système :

  • M=NOM=ON ;
  • M=NMO=NO ;
  • M=NλxT.M=λxT.N;
  • M=λxS.Mx si M est de type ST est que x n'est pas libre dans M.
  • De plus, l'égalité est préservée par les constructions S, if et rec, c'est-à-dire que si x=y alors Sx=Sy, etc.

Néanmoins toutes ces règles ne suffisent pas à décrire l'égalité entre fonctions. En effet, dans un système intuitionniste, il n'est pas clair que l'on puisse décider de l'égalité de deux fonctions. Ceci amène donc plusieurs variantes au système présenté jusqu'alors, qu'on appellera le système neutre. Tous les systèmes suivants sont des extensions de l'arithmétique de Heyting, et dans tous les systèmes sauf le système extensionnel, chaque formule sans quantificateurs est équivalente à une formule de la forme b=𝔹True[15].

Égalité intensionnelle

Dans le système utilisé par Gödel à l'origine[1], l'égalité est supposée intensionnelle[16], c'est-à-dire que deux termes de fonctions sont égaux si c'est le même algorithme qu'ils décrivent. Formellement, il y a dans le système une règle de déduction qui dit que si fg, alors f=g, où est clôture réflexive, symétrique et transitive de la relation de réduction décrite précédemment. Comme est confluente et fortement normalisante, correspond à la relation « a la même forme normale que ».

De plus, dans ce système, on ajoute, pour chaque type T, un terme ET:TT𝔹 qui représente une fonction qui teste l'égalité entre deux termes : on a ajoute l'axiome ETfg=𝔹Truef=Tg. En particulier, l'égalité est décidable, c'est-à-dire que 𝐇𝐀ωf=Tg¬(f=Tg) pour tous termes f et g de type T, et si f et g sont deux termes de type T qui ont la même forme normale, alors ils sont égaux.

Égalité extensionnelle et faiblement extensionnelle

On peut également considérer une variante extensionnelle[17] où deux fonctions sont égales si elles sont égales en tout point :

fSTgST,f=STg(xS,fx=Tgx)

Dans ce système, on peut en fait supposer que l'égalité pour les types de fonctions n'est pas une notion primitive, mais seulement une définition, c'est-à-dire que la formule f=STg est définie comme étant une notation pour la formule xS,fx=Tgx.

Néanmoins dans ce système, l'égalité n'est plus décidable, et l'Modèle:Lien ne fonctionne pas[18]. Pour remédier à cela, on peut limiter la règle usuelle d'élimination de l'égalité, disant que si u=t et A[x:=u] sont prouvables sans hypothèses, alors A[x:=t] aussi, en ne l'autorisant que pour les formules A sans quantificateurs. Ce système est alors dit « faiblement extensionnel ».

Égalité observationnelle

Enfin, on peut considérer un système où il n'y a pas de symbole pour l'égalité des types de fonctions[19]. Dans ce système, on ne garde les axiomes concernant l'égalité du système neutre que ceux qui concernent les entiers et les booléens (notamment, f=TgA[x:=f]A[x:=g] n'est pas un axiome si T est un type de fonction), ainsi que les règles de pour S, if et rec, le fait que si MN alors M=N, et le fait que l'application d'une fonction préserve l'égalité entre deux termes de type entier ou booléen : x=Tyfx=Sfy si T et S ne sont pas des types de fonctions.

L'égalité entre deux fonctions f et g de type ST est définie par la formule C(ST)𝔹,Cf=𝔹Cg. En fait, puisque l'égalité des entiers naturels et des booléens est décidable dans le système T, cela vaut pour tous les types, et l'égalité est dite observationnelle : deux éléments d'un même type sont égaux si et seulement si aucun algorithme ne peut les discerner. Mathématiquement, cela donne :

t=SuCS𝔹,Ct=𝔹Cu.

Interprétation Dialectica

Chacun de ces systèmes (sauf le système extensionnel) permettent de faire de système T une théorie logique à part entière 𝐇𝐀ω, qui étend l'arithmétique de Heyting, et dans laquelle l'Modèle:Lien est valide. Cette interprétation consiste à traduire chaque formule A par une formule sans quantificateur AD à deux variables libres x et y de types A et B, de sorte que si 𝐇𝐀ωA alors qf𝐇𝐀ωxAyBAD(x,y)[20], où qf𝐇𝐀ω est la variante de 𝐇𝐀ω sans les quantificateurs. De plus, ce système étant intuitionniste, on en déduit qu'il existe un terme t de type A tel que qf𝐇𝐀ωyBAD(t,x). Vu la remarque précédente, on en déduit que dans le système avec l'égalité intensionnelle, l'interprétation Dialectica revient à trouver pour chaque formule A un terme uA:𝔹 de système T Modèle:Incise à une variable libre xU que si 𝐇𝐀ωA alors il existe un terme M de type U tel que uA[x:=M]True[21].

Le but de cette traduction, inventée par Gödel en 1958[1], était de faire reposer la preuve de cohérence de l'arithmétique sur des fondations plus simples que celles connues jusqu'à présent, qui se basaient sur une preuve de Gerhard Gentzen utilisant de l'analyse ordinale et de la récurrence transfinie jusqu'à l'ordinal ε0[22]. Une preuve de cohérence de système T utilisant un modèle de termes (l'univers est l'ensembles des termes, quotientés par la relation ) a été produite par William Tait en 1967[5], dans laquelle il introduit les bases de la méthode des candidats de réductibilité développée plus tard par Jean-Yves Girard pour prouver la cohérence de système F, et en particulier sa terminaison[23].

Cette interprétaton permet par exemple de montrer que toutes les fonctions calculables de dans que l'arithmétique de Peano prouve être des fonctions totales sont données par des termes de système T[24].

Enfin, si xAyBAD(x,y) est vraie dans un modèle de système T, on dit que la formule A est Dialectica-interprétable. Cela permet de montrer la cohérence relative de plusieurs systèmes logiques, par exemple :

  • l'axiome du choix (dans sa forme xAyBP(x,y)fABxAP(x,f(x)), souvent accepté dans les mathématiques constructives), et l'axiome de Spector xA¬¬P(x)¬¬xAP(x), sont interprétables dans le système T muni de la bar-récursion, et définit les mêmes fonctions que ce système-ci[25].
  • la thèse de Church, qui dit que toutes les fonctions sont calculables, est compatible avec le système T étendu avec un codage de Gödel des fonctions et une arithmétisation de la réduction, et définit les mêmes fonctions ce que celui-ci[26];
  • le principe de Markov, qui dit que si A(n) est un prédicat décidable (c'est-à-dire que nA(n)¬A(n)), et qu'il y a un algorithme dont on sait qu'il termine qui cherche un n tel que A(n), alors on peut trouver un tel n. Il s'énonce ainsi : (nA(n)¬A(n))¬¬nA(n)nA(n). L'interprétation Dialectica de ce principe est valide dans l'arithmétique de Heyting[27].

Articles connexes

Bibliographie

  • Modèle:Ouvrage : présentation du lambda-calcul simplement typé, de l'arithmétique de Peano, du système T et de l'interprétation Dialectica.
  • Modèle:Ouvrage : présentation de système T et du lambda-calcul simplement typé.
  • Modèle:Ouvrage : thèse de Girard dans laquelle il revisite système T et développe système F, et présente l'interprétation Dialectica y compris pour ces deux systèmes.
  • Modèle:Ouvrage : ouvrage de théorie de la démonstration très complet qui présente les différentes systèmes arithmétiques dans la logique intuitionniste et différents résultats à leur sujet, notamment au moyen de la réalisabilité (notamment par l'interprétation Dialectica), de la théorie des modèles et de la norminalisation.

Références

Modèle:RéférencesModèle:Portail