Previous Up Next

3  Arithmétique de Peano-Heyting

Si l’on peut noter les preuves de la logique propositionnelle par des λ-termes typés, éventuellement légèrement étendus, on peut faire de même pour des logiques plus expressives, incluant notamment des quantifications (∀, ∃) et des principes de récurrence.

3.1  Logique du premier ordre

Nos formules, ou types, seront dans cette section non plus des formules propositionnelles mais des formules du premier ordre. Les types de base, ou formules atomiques, ne seront plus nécessairement de simples lettres b, mais de la forme P (t1, …, tn), où P est un symbole de prédicat, et où t1, …, tn sont n termes. Si n=0, on retrouve le cas de la logique propositionnelle, et nous noterons P au lieu de P (). Les termes servent à dénoter des valeurs sur lesquelles nous voulons raisonner. En arithmétique par exemple, les termes dénoteront des entiers naturels, et notre seul symbole de prédicat sera l’égalité ≈ (que nous notons ainsi pour ne pas confondre ce symbole avec la relation d’égalité =). Nous écrirons d’ailleurs par confort t1t2 plutôt que ≈ (t1, t2). Si les formules atomiques sont décrites à l’aide de symboles de prédicats, les termes sont décrits à l’aide de variables i, j, k, …, sur lesquelles on pourra quantifier, et de symboles de fonctions f, g, h, … En arithmétique par exemple, + sera un symbole de fonction binaire, et on notera t1 + t2 au lieu de + (t1, t2); 0 sera un symbole de fonction nullaire (sans argument), c’est-à-dire une constante.

En général, un langage L du premier ordre est la donnée d’une famille d’ensembles Fn dits de symboles de fonctions d’arité n, et d’une famille d’ensembles Pn dits de symboles de prédicats d’arité n, tous ces ensembles étant disjoints deux à deux. Étant donné un ensemble X dit de variables, l’ensemble T ( L, X) des termes de L à variables dans X est le plus petit tel que:

En d’autres termes, T ( L, X) est le langage T défini par la grammaire:

  T ::=  X ∣  F0 () ∣  F1 (T) ∣  F2 (TT) ∣ …

Les formules atomiques sont les P (t1, …, tn), où P Pn et t1, …, tn T ( L, X) (ceci représentant encore un (n+1)-uplet (P, t1, …, tn)).

Les formules F sont définies par la grammaire suivante, où A désigne n’importe quelle formule atomique:

  F ::= A ∣ ⊥ ∣ F ⇒ F ∣ ∀  X · F

Comme avant, on définit ¬ F par F ⇒ ⊥. La variable i dans ∀ i · F est liée par ∀, et nous supposons que ∀ i · F et ∀ j · (F [i:=j]) dénotent la même formule, lorsque j n’est pas libre dans F. On a ici exactement les mêmes difficultés pour définir les variables libres dans une formule ou un terme, l’α-renommage entre formules, et la notion de substitution de termes à des variables dans des termes ou formules, que dans le λ-calcul pur. Nous supposerons donc le problème réglé.

De même que nous avons étendu le langage des types, nous étendons le langage NJf des preuves par les règles suivantes, où t est un terme quelconque dans (∀ E):

On obtient ainsi le système NJf1 de logique minimale du premier ordre.

La condition sur i dans la règle (∀ I) est indispensable. Si on ne l’imposait pas, on pourrait, à partir de P (i) ⊢ P (i), déduire P (i) ⊢ ∀ i · P (i) par (∀ I), c’est-à-dire pour plus de clarté P (i) ⊢ ∀ j · P (j), et à partir de là:

par exemple, ce qui est absurde: ceci signifie que si P est vraie de 0, alors P est vraie de toute valeur, et ceci pour n’importe quelle propriété P.

On veut trouver des constructions étendant le λ-calcul permettant de donner des termes de preuves pour les nouvelles règles. Une façon simple de faire est de considérer qu’une preuve de ∀ i · P (i) est une fonction qui à une valeur de i associe une preuve de P (i). Il n’y a donc quasiment pas à étendre le langage: si u est une preuve de P (i), nous prendrons λ i · u comme preuve de ∀ i · P (i): (∀ I) introduira donc un λ, comme (⇒ I), et de même (∀ E) appliquera un λ-terme à un terme du premier ordre.

Pour ceci, on enrichit le λ-calcul par des termes du premier ordre:

  Λ1 ::=  V ∣ Λ1 Λ1 ∣ λ  V · Λ1 ∣ ∇ Λ1 ∣ Λ1 T ∣ λ  X · Λ1

Pour qu’il n’y ait aucune ambiguïté, on supposera qu’aucun terme du premier ordre ne peut être confondu avec un λ-terme ordinaire, en particulier que X ne contient aucune des variables du λ-calcul ordinaire, dans V. Et les règles supplémentaires de NJf1 par rapport à NJf sont les suivantes, où t est un terme et i X:

Les règles de calcul sont celles de NJf, soit celles du λ∇-calcul:

  
    (β)(λ x · uvu [x:=v
    (β1)(λ i · utu [i:=t
    (∇)∇ u v∇ u

où dans (β1) i X et t T ( L, X).

Lemme 10 (Auto-réduction)   Si Γ ⊢ u : F est dérivable en NJf1 et uβη* v, alors Γ ⊢ v : F est dérivable en NJf1 aussi.

Preuve : Comme au lemme 1. Le cas suivant que nous devons traiter est celui d’un (β1)-redex:

et nous devons montrer que l’on peut transformer la preuve π1 en une dérivation de Γ ⊢ u [i:=t] : F [i:=t], sachant que i n’est libre dans aucune des formules de Γ. Pour ceci, il suffit de montrer le lemme auxiliaire suivant:

Lemme 11   Si x1 : F1, …, xn : Fnu : F est dérivable en NJf1, alors x1 : F1 [i:=t], …, xn : Fn [i:=t] ⊢ u [i:=t] : F [i:=t] aussi.

Preuve : On montre le résultat par récurrence sur la preuve donnée π de x1 : F1, …, xn : Fnu : F. Plus généralement, montrons que l’on peut produire une preuve de x1 : F1 [i:=t], …, xn : Fn [i:=t] ⊢ u [i:=t] : F [i:=t] de même taille que π. Il n’y a aucune difficulté, sauf éventuellement lorsque la preuve se termine par une règle (∀ I). Alors u est de la forme λ j · v et F est de la forme ∀ j · G, et on a dérivé x1 : F1, …, xn : Fnu : F à partir d’une preuve π1 de x1 : F1, …, xn : Fnv : G plus courte que π, où j n’est pas libre dans F1, …, Fn. Notons que j peut être libre dans t. Soit k une variable qui n’est ni libre dans F1, …, Fn, ni dans t, ni dans v. Par hypothèse de récurrence, on produit une preuve π′1 de x1 : F1 [j:=k], …, xn : Fn [j:=k] ⊢ v [j:=k] : G [j:=k], c’est-à-dire de x1 : F1, …, xn : Fnv [j:=k] : G [j:=k]. Comme π′1 est de même taille que π1, on peut encore appliquer l’hypothèse de récurrence et produire une preuve π″1 de x1 : F1 [i:=t], …, xn : Fn [i:=t] ⊢ v [j:=k] [i:=t] : G [j:=k] [i:=t]. Comme k n’est pas libre dans F1 [i:=t], …, Fn [i:=t] par construction (au contraire de j qui pourrait être libre dans t), on en déduit une preuve π′ de x1 : F1 [i:=t], …, xn : Fn [i:=t] ⊢ λ k · (v [j:=k] [i:=t]) : ∀ k · (G [j:=k] [i:=t]) par (∀ I), qui est de même taille que π. Il ne reste qu’à observer que, à α-renommage près, λ k · (v [j:=k] [i:=t]) est (λ j · v) [i:=t] et que ∀ k · (G [j:=k] [i:=t]) est (∀ j · G) [i:=t], c’est-à-dire F [i:=t].     ♦

    ♦

Théorème 4   Tout λ∇-terme typable en NJf1 est fortement normalisant.

Preuve : C’est la même preuve qu’au théorème 2. Il suffit de modifier la définition des termes réductibles au type F du théorème 1. Pour ceci, on définit REDι comme étant l’ensemble des termes fortement normalisants du premier ordre—c’est-à-dire de tous les termes du premier ordre. D’autre part, REDi · F est défini comme l’ensemble des λ-termes u tels que pour tout tREDι, utREDF [i:=t]. Cette définition de REDF est toujours une définition valide, cette fois-ci non pas sur la structure de F, mais sur la structure du squelette Sk (F) de F. On définit ce squelette par: Sk (A) =def * pour toute formule atomique A, où * est un symbole fixé, Sk (FG) =def Sk (F) ⇒ Sk (G), Sk (∀ i · F) =defi · Sk (F). Il est nécessaire de passer par le squelette: dans la définition de REDi · F en fonction de REDF [i:=t], F [i:=t] n’est pas en général une sous-expression de ∀ i· F; par contre, Sk (F [i:=t]) = Sk (F) est une sous-expression stricte de Sk (∀ i · F) = ∀ i · Sk (F), ce qui justifie la récurrence utilisée dans la définition.

La preuve du théorème se déroule ensuite comme au théorème 1, modifié comme au théorème 2, sans différence essentielle.

Mais il y a une façon plus simple d’établir le même résultat, qui consiste à effacer toute information du premier ordre dans les types et les λ-termes. Le slogan ici est que, du point de vue de la réduction des preuves, tout ce qui est terme et quantification du premier ordre ne sert à rien.

La fonction d’effacement sur les formules est définie par:

    
      E (P (t1, …, tn)) =def PE (F1 ⇒ F2) =def E (F1) ⇒ E (F2)E (∀ i · F) =def E (F)E (⊥) =def ⊥

et fournit donc des types simples à partir de formules, où les types de base sont simplement les symboles de prédicats. Sur les termes, on définit:

    
      E (x) =def xE (uv) =def E (uE (v)E (λ x · u) =def λ x · E (u
 E (ut) =def E (u)E (λ i · u) =def E (u)

t est un terme du premier ordre. Il est facile de voir que si Γ ⊢ u : F est dérivable en NJf1, alors E (Γ) ⊢ E (u) : E (F) est dérivable en NJf, où E (Γ) est défini par E (x1:F1, …, xn:Fn) =def x1 : E (F1), …, xn : E (Fn). D’autre part, si uv par (β) ou (∇), alors E (u) → E (v) par (β) ou (∇) respectivement; et si uv par (β1), alors E (u) = E (v). Donc s’il existe une réécriture infinie partant d’un terme u typé en NJf1, alors comme toute réduction partant de E (u) est finie par le théorème 2, c’est qu’il existe un réduit v de u à partir duquel on peut mener une réduction infinie en n’utilisant que la règle (β1). Mais cette règle fait diminuer de 1 le nombre d’applications de λ-termes à des termes du premier ordre, et ne peut donc être appliquée qu’un nombre fini de fois à la suite. (Les termes du premier ordre ne contiennent aucun rédex susceptible d’être dupliqué par β1-réduction, contrairement à ce qui se passe avec la β-réduction.) D’où le théorème. Formellement, un argument rigoureux consiste à ordonner les termes u en comparant les couples (E (u), #1 (u)), où #1 (u) est le nombre d’applications de λ-termes à des termes du premier ordre dans u, dans le produit lexicographique de →+ et >.     ♦

Corollaire 4   Le système NJf1 est cohérent.

Preuve : Exactement comme au Corollaire 3.     ♦

Il n’y a donc pas de contradiction en logique intuitionniste du premier ordre.

Exercice 23   La logique intuitionniste du premier ordre inclut en fait des constructions pour le , le et le quantificateur . Les deux premiers sont traités comme en section 1.2. Le quantificateur existentiel a les règles de déduction suivantes:

Les notations ι et case sont censées rappeler les constructions de preuves pour les règles du , mais observer que ι t u est essentiellement un couple formé d’un terme t et d’une preuve u de F [i:=t], et que case wi xv} prend un w qui doit être un tel couple, récupère le terme t dans i, la preuve u dans x et ensuite évalue v. La règle de réduction correspondante est:

    (∃case)    case ι t u 

ι i x ↦ v

→ v [i:=t] [x:=u]

Soit NJf1 le système obtenu à partir de NJf1 en ajoutant les règles de déduction (∃ E) et (∃ I). Les règles de réduction de NJf1 sont (β), 1), (∇) et (∃case). Montrer que cette notion de réduction est fortement normalisante sur les termes bien typés. (Étendre la technique d’effacement du théorème 4. Pourquoi la technique par réductbilité est-elle plus difficile à adapter ?) En déduire que NJf1 est cohérente.

Exercice 24   On définit le système de déduction ND1 à partir de ND comme on a défini NJf1 à partir de NJf: les règles de typage sont (Ax), (⇒ E), (⇒ I), (¬¬ E) ainsi que (∀ I) et (∀ E). Le λ-calcul que nous utilisons est défini par la grammaire:
    Λ1c ::=  V ∣ Λ1c Λ1c ∣ λ  V · Λ1c ∣  C Λ1c ∣ Λ1c T ∣ λ  X · Λ1c
T est T ( L, X). Les règles de réduction sont (β), ( CL), C) et 1). Montrer, en s’inspirant des résultats déjà démontrés, l’auto-réduction et la normalisation forte de ce calcul. En déduire que la logique classique (implicationnelle) du premier ordre est cohérente.

Un point qui se dégage ici est que le quantificateur universel se comporte presque exactement comme l’implication. Ceci peut être formalisé en utilisant des types dépendants. Ceci a aussi le mérite de rendre plus esthétique le système de types de ND1. On aboutit ainsi à une logique qui s’appelle LF, dans laquelle le constructeur fondamental de types n’est plus l’implication ⇒ mais le produit dépendant Π x : F1 · F2. Les termes du premier ordre sont codés comme des λ-termes d’un type spécial que l’on notera ι. Lorsque F1 = ι, Π x : ι · F représente ∀ x· F, et lorsque F1 est une formule et x n’est pas libre dans F2, Π x : F1 · F2 représente F1F2. Consulter [HHP87] pour plus de renseignements sur LF.

3.2  Arithmétique de Heyting

L’arithmétique de Peano est la façon usuelle de formaliser l’ensemble des entiers naturels N et ses propriétés. Il s’agit d’une théorie du premier ordre, dont les symboles de fonction sont 0 (constante, représentant 0), S (fonction unaire, dénotant la fonction qui à n associe n+1), + et * (fonctions binaires dénotant l’addition et la multiplication respectivement), et dont le seul symbole de prédicat est ≈, qui est binaire. Le type ι dénote l’ensemble des entiers naturels, et les axiomes de Peano sont:

  1. i · ii (réflexivité de l’égalité);
  2. i · ∀ j · ijFF [i:=j] (remplacement des équivalents: on peut toujours remplacer i par un j égal à i dans toute formule F);
  3. i · ¬ 0S (i);
  4. i · ∀ j · S (i) ≈ S (j) ⇒ ij;
  5. i · i + 0i (définition de l’addition, 1);
  6. i · ∀ j · i + S (j) ≈ S (i + j) (définition de l’addition, 2);
  7. i · i * 00 (définition de la multiplication, 1);
  8. i · i * S (j) ≈ i * j + i (définition de la multiplication, 2);

plus le schéma de récurrence:

  F [i:=0] ⇒ (∀ j · F [i:=j] ⇒ F [i:=S (j)]) ⇒ ∀ i · F

qui exprime qu’une propriété F (i) est vraie pour tout i dès qu’elle est vraie en i=0 et que F (i) implique F (i+1).

La version intuitionniste de cette théorie s’appelle l’arithmétique de Heyting, et a les mêmes axiomes qui ci-dessus, mais est codée comme une extension de NJf1 plutôt que ND1. Nous étudions l’arithmétique de Heyting parce que les transformations de preuve seront un peu plus simples que dans l’arithmétique de Peano.

La principale difficulté ici est de trouver une nouvelle construction de λ-termes interprétant le schéma de récurrence. Intuitivement, il s’agit d’un terme R de type le schéma de récurrence lui-même. Si u est un terme de type F [i:=0], si v est un terme de type ∀ j · F [i:=j] ⇒ F [i:=S (j)], c’est-à-dire une fonction qui prend un entier j en argument, un autre argument de type F [i:=j] et retourne un terme de type F [i:=S (j)], alors les règles de réduction suivantes semblent raisonnables, parce qu’elles satisfont la propriété d’auto-réduction, autrement ce sont des transformations de preuves correctes. D’abord, R u v 0u; ensuite, R u v (S (j)) → v (S (j)) (R u v j).

Ce qui est intéressant, d’un point de vue calculatoire, c’est que R u v définit une fonction de type ∀ i · F, des entiers i vers des preuves de F, cette fonction g étant définie par les règles: g (0) → u, g (S (j)) → v (S (j)) (g (j)). La fonction g est définie par cas: son argument est soit 0 soit un successeur. De plus, la définition de g est récursive, mais il n’y a qu’un appel récursif à g, et g (j+1) est définie en fonction de g (j) uniquement. Une telle définition s’appelle une définition par récurrence primitive, et g est une fonction primitive récursive.

Nous allons aussi ajouter un terme r0 de type 00, pour modéliser en partie l’axiome 1, mais il est beaucoup plus naturel de ne pas ajouter de termes pour représenter les autres axiomes de Peano. À la place, on va définir une relation de simplification des formules de l’arithmétique par:

  
    (0S)0 ≈ S (t)N⊥ 
    (SS)S (s) ≈ S (t)Ns ≈ t 
    (+0)s + 0Ns 
    (+S)s + S (t)NS (s + t
    (*0)s * 0N0 
    (*S)s * S (t)Ns * t  + s

Ceci est l’approche naturelle en Coq [BBC+99], et est aussi une instance de déduction modulo [DHK98].

Notons ↔N* la plus petite relation réflexive symétrique et transitive contenant →N: ceci va nous permettre de considérer deux formules en relation par la relation d’équivalence ↔N* comme interchangeables.

Les termes de preuves de l’arithmétique de Heyting du premier ordre sont les λ∇ R-termes, définis par la grammaire suivante, où T est T ( L, X) et L est le langage contenant les symboles ≈, 0, S, + et * comme décrit plus haut:

  ΛN, 1 ::=  V ∣ ΛN, 1 ΛN, 1 ∣ λ  V · ΛN, 1 ∣ ∇ ΛN, 1 ∣ ΛN, 1 T ∣ λ  X · ΛN, 1 ∣ r0 ∣ R ΛN, 1 ΛN, 1 T

Les règles de HA1, l’arithmétique de Heyting du premier ordre, sont alors les suivantes:

L’originalité de ce système est la règle (↔N*), qui permet de remplacer une formule par une formule équivalente; pas n’importe quelle formule équivalente, d’ailleurs, juste une qui est calculatoirement équivalente, où l’équivalence calculatoire est définie par les règles de calcul →N. On a ici deux niveaux de calculs: un dans les formules, par →N, et un dans les preuves, par les règles de réduction de notre λ∇ R-calcul. Ces règles sont les suivantes (noter que les quatre dernières sont aussi des règles de →N):

  
    (β)(λ x · uvu [x:=v
    (β1)(λ i · utu [i:=t
    (∇)∇ u v∇ u 
    (R0)R u v 0u 
    (RS)R u v (S (t))v t (R u v t
    (+0)s + 0s 
    (+S)s + S (t)S (s + t
    (*0)s * 00 
    (*S)s * S (t)s * t  + s

L’axiome 1 se démontre à l’aide de la règle (00) et du schéma de récurrence (Rec). Intuitivement, la preuve est la suivante. Montrons ss par récurrence sur s. Le cas de base est 00, ce qui est démontré par la règle (Refl0). Le cas récurrent demande à établir S (s) ≈ S (s) sous l’hypothèse ss. Mais la conclusion S (s) ≈ S (s) est équivalente à l’hypothèse, à cause de la règle de calcul (SS). Formellement:

Le schéma d’axiomes de remplacement des équivalents 2 peut lui aussi entièrement se démontrer dans HA1, ou plutôt chacune de ses instances peut se démontrer en HA1 (cf. exercice 27). On dit que ce schéma est admissible en HA1.

Exercice 25   En supposant qu’il existe un terme de type i · ∀ j · ijFF [i:=j] pour toute formule F de HA1 (voir l’exercice 27 pour une preuve de cette affirmation), montrer que le système HA1 permet de démontrer tous les axiomes de Peano 1–8 ainsi que toutes les instances du schéma de récurrence.
Exercice 26   Montrer, réciproquement, que si Γ ⊢ u : F est dérivable en HA1, alors il existe une preuve en logique du premier ordre de F à partir des hypothèses de Γ plus des axiomes de Peano 1–8 et du schéma de récurrence. Si vous souhaitez être formels, montrer qu’il existe une preuve de Γ, Δ ⊢ v : F pour un λ∇-terme v à trouver en fonction de la preuve de HA1 donnée, et où Δ est une liste d’hypothèses comprenant les axiomes de Peano et un nombre fini d’instances du schéma de récurrence.
Exercice 27 ()  
  1. Montrer que le terme λ x · x est un terme de preuve de stS (s) ≈ S (t).
  2. Montrer qu’on peut démontrer s1t1s2t2s1 + s2t1 + t2, par récurrence sur l’entier s2 puis sur l’entier t2. (Les courageux montreront que R uj · λ z · v) s2 en est un terme de preuve, où u =def Rx · λ y · x) (λ t2 · λ z1 · λ x · λ y · ∇ y) t2 : s1t10t2s1t1 + t2 et v =def Rx · λ y · ∇ y) (λ t2 · λ z2 · z) t2 : s1t1S (j) ≈ t2S (s1 + j)≈ t1 + t2 dans le contexte z : s1t1s2t2s1 + s2t1 + t2.)
  3. Montrer qu’on peut démontrer s1t1s2t2s1 * t1s2 * t2, par récurrence sur s2 puis sur t2, en utilisant le point précédent.
  4. En déduire que pour tout terme t, on peut montrer s1s2t [i:=s1] ≈ t [i:=s2]. (Appliquer une récurrence structurelle sur t — pas une récurrence (Rec) sur la valeur entière de t, notez bien.)
  5. Montrer qu’on peut démontrer la symétrie de l’égalité en HA1: i · ∀ j · ijji. (Appliquer une récurrence sur i, et dans chaque cas appliquer une récurrence sur j et simplifier par N. Bonus si vous arrivez à montrer qu’un terme de preuve possible est λ i · Rj · R  id0i · λ x · id) j) (λ i · λ y · R  idk · λ z · yk) j) i, où id0 est le terme λ x0 · x0 de type 0000 et id est le terme λ x1 · x1 de type ⊥ ⇒ ⊥.)
  6. Montrer qu’on peut démontrer la transitivité de l’égalité en HA1: i · ∀ j · ∀ j · ijjkik. (Indication: effectuer des récurrences sur i, j, k imbriquées dans cet ordre. Bonus si vous arrivez à fournir un terme de preuve explicite !)
  7. Déduire des points 4, 5 et 6 que l’on peut montrer s1t1F [i:=s1] ⇒ F [i:=t1] pour toute formule F qui est une égalité st.
  8. En déduire que l’on peut montrer s1t1F [i:=s1] ⇒ F [i:=t1] pour toute formule F, par récurrence structurelle sur F. En conséquence, toute instance du principe de remplacement des équivalents est démontrable en HA1.

À cause de la règle (↔N*), la propriété d’auto-réduction est plus compliquée à démontrer qu’avant. Le lemme d’affaiblissement (cf. lemme 2) est toujours aussi facile. Par contre, le lemme suivant est plus difficile:

Lemme 12   Si Γ, x : F1u : F2 et Γ ⊢ v : F1 sont dérivables en HA1, alors Γ ⊢ u [x:=v] : F2 aussi.

Preuve : Plus généralement, soit π2 une preuve de Γ, x : F1, Δ ⊢ u : F2 et π1 une de Γ ⊢ v : F1. On construit une preuve π de Γ, Δ ⊢ u [x:=v] : F2 par récurrence structurelle sur π2.

Si π2 se termine par la règle (Ax), alors soit u est x, donc F1 = F2, et on prend pour π un affaiblissement idoine de π1, soit u est une autre variable y et π est la preuve qui produit Γ, Δ ⊢ y : F2 par (Ax). Si π2 se termine par (⇒ E) ou (⇒ I), c’est comme au lemme 1, cas (App) et (Abs). Les cas où π2 se terminent par (⊥ E), (∀ E), (∀ I) sont faciles. Si π2 se termine par (Refl0), alors u = r0 et u [x:=v] est encore r0: on définit π comme la preuve qui déduit Γ, Δ ⊢ r0 : 00 par (Refl0).

Si π2 se termine par (↔N*), alors on a dérivé Γ, x : F1, Δ ⊢ u : F2 à partir d’une preuve plus courte de Γ, x : F1, Δ ⊢ u : F2, avec F2N*F2. Par hypothèse de récurrence, on a une preuve de Γ, Δ ⊢ u [x:=v] : F2, d’où l’on déduit une de Γ, Δ ⊢ u [x:=v] : F2 par (↔N*).

Si π2 se termine par (Rec), alors on a dérivé Γ, x : F1, Δ ⊢ u : G [i:=t], avec F2 = G [i:=t] et u = R uvt, à partir de preuves plus courtes de Γ, x : F1, Δ ⊢ u′ : G [i:=0] et de Γ, x : F1, Δ ⊢ v′ : ∀ j · G [i:=j] ⇒ G [i:=S (j)]. Par hypothèse de récurrence, on peut déduire Γ, Δ ⊢ u′ [x:=v] : G [i:=0] et Γ, Δ ⊢ v′ [x:=v] : ∀ j · G [i:=j] ⇒ G [i:=S (j)], donc Γ, Δ ⊢ u : G [i:=t].     ♦

L’auto-réduction exprime alors que les règles de réduction de HA1 sont bien des règles de transformations de preuves de séquents en des preuves des mêmes séquents:

Théorème 5 (Auto-réduction)   Si Γ ⊢ u : F est dérivable en HA1 et uv, alors Γ ⊢ v : F est dérivable en HA1.

Preuve : Le cas de la règle (β) est par le lemme 12. Celui de la règle (β1) est comme au lemme 11. Le cas de (∇) est évident. La règle (R0) correspond à réécrire la preuve:

en π, et (RS) correspond à réécrire la preuve:

en:

    ♦

Théorème 6   Tout λ∇ R-terme typé en HA1 est fortement normalisant.

Preuve : Montrons d’abord que tout terme t du premier ordre termine. Interprétons les termes t dans les entiers par: [0] =def 1, [S (t)] =def [t]+1, [s + t] =def [s] + 2 [t], [s * t] =def [s] (3[t]+1). Nous montrons que: (*) si t1t2, alors [t1] > [t2]; ceci impliquera qu’il ne peut exister aucun réduction infinie à partir de t1. On montre (*) par récurrence sur la profondeur du rédex contracté dans t1. Si t1 est lui-même le rédex, remarquons que [s + 0] = [s] + 2 > [s], [s + S (t)] = [s] + 2[t] + 2 > [s] + 2[t] + 1 = [S (s + t)], [s * 0] = 4 [s] > 1 = [0] (car [s]≥ 1 pour tout s, comme une récurrence facile sur s le montre), et [s * S (t)] = [s] (3[t]+4) > [s] (3 [t] + 3) = [s] (3 [t] + 1) + 2 [s] = [s * t + s]. Si t1 n’est pas lui-même le rédex, alors c’est par l’hypothèse de récurrence. Par exemple, si t1 est de la forme S (t1), avec t1t2 et t2 = S (t2), alors [t1] = [t1]+1 > [t2]+1 = [t2].

Un λ∇ R-terme est dit neutre s’il ne commence pas par λ ou ∇. Soit SN l’ensemble des λ∇ R-termes fortement normalisants, RED et REDst sont définis comme étant SN, REDFG est l’ensemble des λ∇ R-termes u tels que pour tout vREDF, uvREDG, et REDi · F est l’ensemble des λ∇ R-termes u tels que pour tous termes t du premier ordre (qui terminent), utREDF [i:=t]. Ceci est une définition de REDF par récurrence structurelle sur le squelette Sk (F) de F. Comme d’habitude, montrons:

Ceci est par récurrence structurelle sur Sk (F). Si F est de la forme ⊥ ou st, ces propriétés sont évidentes. Si F est de la forme GH, alors si uREDF, pour tout vREDG, uvREDH, donc par hypothèse de récurrence (CR1), uvSN; par hypothèse de récurrence (CR3), la variable x de type G est dans REDG, donc uxSN; donc uSN: (CR1) est vraie. Si uREDF et uu′, par définition pour tout vREDG, uvREDH et de plus uvuv, donc par hypothèse de récurrence (CR2) uvREDH; comme v est arbitraire, u′ ∈ REDH, établissant (CR2). Si u est neutre et pour tout u′ tel que uu′, u′ ∈ REDF, montrons que pour tout vREDG, uv ne se réduit qu’à des termes de REDH. C’est par récurrence sur ν (v). Comme u est neutre, uv ne se réduit qu’à des termes de la forme uv avec uu′ (donc uvREDH car par hypothèse u′ ∈ REDF) ou de la forme uv′ avec vv′ (donc uv′ ∈ REDH par hypothèse de récurrence). Comme uv est lui-même neutre, par hypothèse de récurrence (CR3), uREDF, ce qui établit (CR3).

On montre maintenant que:

Si x1:F1, …, xn:Fnu : F alors pour tous v1REDF1, …, vnREDFn, u [x1:=v1, …, xn:=vn] ∈ REDF

par récurrence structurelle sur u. Ceci impliquera le théorème. Si u est une variable, une application ou une abstraction, c’est comme au théorème 1. Si u est de la forme ∇ v, alors c’est comme au théorème 2.

Le cas intéressant est celui où u est de la forme R v w t, et découle du résultat auxiliaire: (∘) si vREDF [i:=0] et wREDj · F[i:=j] ⇒ F[i:=S (j)], alors R v w tREDF [i:=t]. Nous montrons (∘) par récurrence sur ν (v) + ν (w) + [t]. Notons que R v w t est neutre, donc par (CR3) il suffit de montrer que tous les réduits immédiats de R v w t sont dans REDF [i:=t]. Mais R v w t ne peut se réduire qu’en R vw t avec vv′ (qui est dans REDF [i:=t] par hypothèse de récurrence), ou en R v wt avec ww′ (idem), en R v w t′ avec tt′ (donc tNt′, en particulier [t] > [t′] et l’hypothèse de récurrence s’applique), ou en v si t = 0 (auquel cas vREDF [i:=0] = REDF [i:=t]), ou en w t′ (R v w t′) avec t = S (t′): dans ce dernier cas, [t] = [t′]+1, donc [t′] < [t], donc l’hypothèse de récurrence s’applique et R v w t′ ∈ REDF [i:=t′]; par définition de la réductibilité, w t′ (R v w t′) est dans REDF [i:=S (t′)] = REDF [i:=t].     ♦

Corollaire 5   L’arithmétique de Heyting du premier ordre HA1 est cohérente.

Preuve : Supposons que u soit un terme normal tel que ⊢ u : ⊥ soit dérivable. On peut supposer sans perte de généralité que u ne contient aucune variable libre du premier ordre, car si i1, …, ik sont ces variables, alors ⊢ u [i1:=0, …, ik:=0] : ⊥ est dérivable, et on peut remplacer u par toute forme normale de u [i1:=0, …, ik:=0], qui n’a aucune variable variable libre du premier ordre.

Supposons donc que u est un terme normal sans variable libre du premier ordre tel que ⊢ u : ⊥ soit dérivable, de taille minimale. Alors u est nécessairement de la forme h u1un, où h est une variable ou le symbole ∇ (auquel cas n=1), ou de la forme R u1 u2 t. Le premier cas est impossible car le côté gauche du jugement est vide. Le second cas implique que ⊢ u1 : ⊥, ce qui contredit la minimalité de u. Dans le dernier cas, t étant normal et sans variable libre, t est de la forme S (… (S (0))); c’est par récurrence structurelle sur t: si t = 0, c’est clair; si t est de la forme S (t1), c’est par hypothèse de récurrence; et t ne peut pas être ni de la forme t1 + t2 ni de la forme t1 * t2, car par hypothèse de récurrence t2 commencerait par 0 ou par S, ce qui contredirait l’hypothèse de normalité de t. Mais comme t = S (… (S (0))), R u1 u2 t n’est pas normal, ce qui montre que le dernier cas est impossible lui aussi.     ♦

Ceci est le premier résultat de cohérence non complètement trivial que nous avons démontré. Il peut apparaître trivial, cependant, et en voici une démonstration élémentaire. Pour toute fonction ρ de X vers N (une valuation du premier ordre), pour tout terme t, définissons [t] ρ par: [0] ρ =def 0, [S (t)] ρ =def [t] ρ + 1, [s + t] ρ =def [s] ρ + [t] ρ, [s * t] ρ =def [s] ρ × [t] ρ. Définissons la relation ρ ⊨ F (“F est vraie dans la valuation ρ”) par: ρ ⊨ ⊥ est faux, ρ ⊨ st si et seulement si [s] ρ = [t] ρ, ρ ⊨ FG si et seulement si ρ ⊨ F implique ρ ⊨ G, et ρ ⊨ ∀ i · F si et seulement si ρ [i:=n] ⊨ F pour tout nN, où ρ [i:=n] envoie i vers n et toute autre variable j vers ρ (j). Il est facile de voir que pour toute preuve de x1:F1, …, xn:Fnu:F, pour toute valuation ρ, ρ ⊨ F1 et … et ρ ⊨ Fn impliquent ρ ⊨ F. HA1 est alors cohérent parce que par exemple ⊢ u : ⊥ n’est prouvable pour aucun λ∇ R-terme u, sinon ρ ⊨ ⊥ serait vrai.

Cette démonstration sémantique est beaucoup plus simple que la démonstration syntaxique par normalisation des λ∇ R-termes typés, mais en fait elle ne dit pas grand-chose: pour démontrer que pour toute preuve de x1:F1, …, xn:Fnu:F, pour toute valuation ρ, ρ ⊨ F1 et … et ρ ⊨ Fn impliquent ρ ⊨ F, nous utilisons les règles usuelles de l’arithmétique. Autrement dit, on utilise essentiellement les mêmes règles que celles de HA1 pour montrer que les règles de HA1 sont correctes: c’est un cercle vicieux.

En général, on peut démontrer la cohérence de n’importe quelle théorie par ce moyen, même de théories incohérentes. Par exemple, considérons un langage de termes dans lequel on peut écrire {xF(x)} pour toute formule F(x), dont la sémantique est l’ensemble de toutes les valeurs pour x qui rendent F(x) vraie. On adopte une règle de déduction qui exprime que t ∈ {xF(x)} si et seulement F (t) est vraie. Cette règle est valide, et par le même argument sémantique que ci-dessus, ce système est cohérent. Mais on verra au lemme 17 que cette théorie — la théorie naïve des ensembles — est en réalité incohérente. La raison pour laquelle la démonstration sémantique est incorrecte ici, c’est qu’elle suppose que l’on peut toujours définir l’ensemble de toutes les valeurs vérifiant une formule donnée (voir la définition de la sémantique de {xF (x)}). Le fait que la théorie naïve des ensembles soit incohérente montre que, justement, ceci n’a pas de sens.

C’est pour éviter ce cercle vicieux, dans lequel finalement on ramène la cohérence d’une théorie à elle-même, que David Hilbert a proposé au début du vingtième siècle d’établir la cohérence des systèmes logiques utilisés en mathématiques par des moyens finitistes, c’est-à-dire n’utilisant des moyens de raisonnement qui ne portent que sur des objets finis: entiers, arbres finis (donc aussi formules, preuves), mais pas les ensembles quelconques d’entiers ou les arbres infinis, par exemple; et des principes de récurrence structurelle ou sur les entiers, mais pas de quantification sur l’ensemble (infini) de tous les entiers ou de tous les arbres finis par exemple. (Le système logique correspondant s’appelle l’arithmétique primitive récursive PRA et est beaucoup moins expressif, donc aussi beaucoup moins suspect d’incohérence, que PA1.)

La preuve de cohérence de HA1 que nous avons donnée est alors presque finitiste: les notions de formules et de preuves sont finitistes, de même que les transformations de preuves définies par les règles de réduction du λ∇ R-calcul et que l’argument du corollaire 5 montrant qu’il n’y a pas de λ∇ R-calcul clos de type ⊥. Le seul argument non finitiste dans la preuve est l’argument de normalisation du théorème 6, où la définition par récurrence structurelle sur F du prédicat uREDF repose sur des quantifications universelles sur des domaines infinis: uREDFG si et seulement si, pour tout vREDF, uvREDG. (Le fait que l’on raisonne sur des ensembles REDF n’est pas non plus finitiste, mais comme la démonstration n’utilise REDF que comme un prédicat uREDF, ceci n’est pas une entorse grave au finitisme.)

En un sens, on ne peut pas faire mieux, et donc on ne peut pas échapper au cercle vicieux mentionné plus haut: le second théorème d’incomplétude de Gödel peut en effet être invoqué pour prouver qu’on ne peut montrer la cohérence de HA1 que dans un système logique au moins aussi fort que HA1 lui-même. (Nous ne décrirons pas formellement ce théorème; informellement, il énonce qu’on ne peut pas montrer la cohérence d’une théorie mathématique T dans T elle-même dès que T est cohérente, récursivement axiomatisable et contient l’arithmétique de Peano du premier ordre — ou de Heyting, ce qui ne change rien.)

Toutefois, la démonstration du corollaire 5 montre que que la seule partie non finitiste, et ce donc d’une façon essentielle, est l’argument de normalisation du λ∇ R-calcul typé. En résumé, on a réduit la question de la cohérence de HA1 à la question de la seule terminaison d’une classe de programmes informatiques.

Exercice 28 ()   L’arithmétique de Heyting du premier ordre inclut en fait aussi le , le et le quantificateur . Considérons le système HA1, obtenu à partir de HA1 en ajoutant les constructions de l’exercice 23. Montrer que le λ∇ R-calcul enrichi par les constructions ι t u et case ui xv} avec les règles de typage correspondantes est fortement normalisant. (Adapter la technique de réductibilité. Pourquoi la technique d’effacement ne fonctionne-t-elle pas ? Montrer cependant que la technique d’effacement permet de montrer que HA1 normalise faiblement: toute stratégie qui normalise d’abord par (β), 1), (∇), (R0), (RS), (∃case), puis normalise le terme obtenu par N aboutit à une forme normale pour les règles de HA1. Voir aussi l’exercice 30 et l’exercice 37.) En conclure que HA1 est cohérent.
Exercice 29   L’arithmétique de Peano du premier ordre PA1 est à HA1 ce que ND1 est à NJf1, à savoir sa version classique. (Voir exercice 24.) Plus précisément, les règles de typage de PA1 sont (Ax), (⇒ E), (⇒ I), (¬¬ E) ainsi que (∀ I) et (∀ E), (Refl0), (↔N*) et (Rec). Le λ C R-calcul qui est le λ-calcul correspondant est défini par la grammaire:
    ΛN, 1c ::=  V ∣ ΛN, 1c ΛN, 1c ∣ λ  V · ΛN, 1c ∣  C ΛN, 1c ∣ ΛN, 1c T ∣ λ  X · ΛN, 1c ∣ r0 ∣ R ΛN, 1c ΛN, 1c T
T est le langage des termes du premier ordre de HA1. Les règles de réduction sont celles de HA1 moins (∇), plus ( CL) et C). Montrer, en s’inspirant des résultats déjà démontrés, l’auto-réduction et la normalisation forte de ce calcul. En déduire que PA1 est cohérente.
Exercice 30   Montrer qu’on peut définir i · F en PA1 comme ¬ ∀ i · ¬ F. Autrement dit, cette construction obéit aux règles de typage (∃ E) et (∃ I) de l’exercice 23, pour une définition à trouver de ι t u et de case ui xv}. Montrer que case ι t ui xv} →+ v [i:=t] [x:=u]. En déduire que la notion de réduction de HA1 de l’exercice 28 normalise fortement.

Previous Up Next