Cours n°7 1 - Le calcul des séquents classique 1.1. Le calcul des

publicité
Cours n°7
AFFINER LA LOGIQUE :
DE LA LOGIQUE INTUITIONNISTE A LA LOGIQUE LINEAIRE
1 - Le calcul des séquents classique
1.1. Le calcul des séquents comme méthode de décision
Bien que la méthode des tables de vérité ne puisse pas s’y appliquer, on peut démontrer que la
logique propositionnelle intuitionniste est décidable. La méthode de décision repose alors sur
une nouvelle présentation de la logique (nouvelle par rapport aux deux que nous avons vues
jusqu’à présent : une axiomatisation « à la Hilbert » et une présentation de type « déduction
naturelle »), due à Gerhart Gentzen dans les années trente, que l’on appelle le « calcul des
séquents ». Ce calcul fut en réalité inventé par Gentzen dans le cadre de la démonstration de
la complétude de la logique des prédicats du premier ordre. Intuitivement, pour prouver la
complétude d’un système, il faut prouver que toute thèse est démontrable, donc montrer que
connaissant une thèse, on peut construire sa démonstration. La bonne méthode pour y arriver
consiste à se munir d’un système général de recherche de preuves. Gentzen travaille sur des
relations de déduction entre séries de formules.
Prenons l’exemple suivant. On sait qu’il est possible de déduire B de la suite de formules C, C
⇒ A, ¬A ∨ B. On peut écrire cette relation déductive entre une suite de formules et une
formule sous la forme :
C, C ⇒ A, ¬A ∨ B → B
où la flèche (→) sépare la suite de prémisses de la conclusion.
Si on nous demande de prouver, en logique classique, cette relation de déduction, nous
pouvons utiliser une méthode à base de valeurs de vérité en raisonnant de la manière
suivante : supposons que ce ne soit pas le cas, c’est-à-dire que C, C ⇒ A, ¬A ∨ B ne permette
pas de déduire B, alors cela signifierait qu’il existe au moins une assignation de valeurs de
vérité aux propositions atomiques A, B, C telle que :
• C, C ⇒ A, ¬A ∨ B soient vraies (= 1)
• B soit fausse (= 0)
Alors cela entraînerait que, en ce qui concerne la formule C ⇒ A :
• ou bien C est fausse (0)
• ou bien A est vraie (1)
Mais étant donné que C est vraie, la première éventualité nous conduit à une contradiction :
nous stoppons la recherche de démonstration sur cette voie.
Il reste l’éventualité que A soit vraie. En ce cas, pour ce qui concerne la formule ¬A ∨ B,
puisqu’elle est vraie, cela ne peut être que parce que :
• ou bien ¬A est vraie, donc A est fausse,
• ou bien B est vraie
Dans la première éventualité, nous stoppons la recherche de preuve également puisqu’on
obtient une contradiction entre A vraie et A fausse.
Reste la dernière éventualité : B vraie, mais au début de notre raisonnement, nous avons
supposé que B était fausse, donc là encore, nous stoppons la recherche de démonstration. Il
n’y a plus alors d’autre voie à explorer. Toutes les voies nous ayant ainsi conduit à une
contradiction, c’est que l’hypothèse d’où nous sommes partis conduit à une absurdité, et nous
devons conclure que la suite de formules C, C ⇒ A, ¬A ∨ B permet bien de déduire B.
Nous pouvons représenter l’ensemble de ce raisonnement par un tableau, ou plutôt une suite
de lignes, que nous lisons en remontant de la dernière ligne (racine d’un arbre) vers les
premières (feuilles en même temps qu’axiomes). Dans cette représentation, la flèche « → »
n’a pas d’autre rôle que de séparer les formules vraies (à gauche) des formules fausses (à
droite).
Ax.
A, C, C ⇒ A, ¬A ∨ B → A, B
Ax.
¬A, A, C, C ⇒ A, ¬A ∨ B → B B, A, C, C ⇒ A, ¬A ∨ B → B
Ax.
C, C ⇒ A, ¬A ∨ B → B, C
A, C, C ⇒ A, ¬A ∨ B → B
C, C ⇒ A, ¬A ∨ B → B
Dans ce tableau, nous avons mis en gras à chaque ligne: une formule (par exemple C ⇒ A à la
dernière ligne, ¬A ∨ B à l’avant-dernière à droite et ¬A à l’avant-avant-dernière à gauche)
ainsi que des formules émanant de la ligne antérieure (en partant du bas). D’autre part, nous
avons surligné les séquents au moyen d’une ligne marquée « Ax » chaque fois qu’une même
formule (atomique) figure à la fois à gauche et à droite. Ceci a un sens puisque nous avons vu
que cela signifie qu’on a une contradiction. Autre remarque : à l’avant-dernière ligne, à
gauche, nous avons un séquent qui possède deux formules à droite séparées par une virgule.
Cela signifie que notre « calcul des séquents » admet des séquents avec plus d’une formule en
partie droite, donc des séquents de la forme générale :
(1)
A1, …, Ak → B1, …, Bm
Quelle est alors l’interprétation de cette virgule en partie droite ? si la virgule en partie gauche
s’interprète de manière évidente comme une conjonction, par quoi s’interprète-t-elle en partie
droite ? Noter que dire que B et C sont faux est équivalent à dire que B ou C est faux. La
virgule en partie droite s’interprète donc comme une disjonction. Un séquent tel que (1) peut
donc se lire comme une relation de déduction : « de A1 ∧ …∧ Ak on peut déduire B1∨ …∨
Bm ». Nous verrons plus loin que la spécificité de la logique intuitionniste sera justement
d’interdire qu’il y ait en partie droite d’un séquent plus d’une formule.
1.2 Le calcul des séquents classique
Cet exemple nous montre encore que chaque passage d’une ligne inférieure à une ligne
immédiatement supérieure obéit à une règle définie strictement, qui dépend de la formule
qu’on a sélectionnée dans la ligne inférieure. Si cette formule (dite « formule active ») est une
implication ϕ ⇒ ψ, alors on a deux lignes immédiatement au-dessus (nous les appellerons
prémisses), l’une pour laquelle ϕ est faux et l’autre pour laquelle ψ est vrai.
Schématiquement, cela conduit à :
∆ → Λ, A
B, Γ → Θ
A ⇒ B, ∆, Γ → Λ, Θ
On remarquera ici que ce schéma n’est pas exactement conforme aux pas mentionnés dans
l’exemple : on a supprimé l’occurrence de A ⇒ B dans les prémisses afin d’éviter de refaire
plusieurs fois le même pas dans la preuve (ce qui serait très improductif et conduirait pour
rien à des déductions infiniment longues !) et d’autre part, on a scindé le contexte de la
formule en quatre parties ∆, Γ, Λ, Θ. On fait alors l’hypothèse que seules les formules de ∆
sont utilisées pour prouver A ainsi que celles de Λ et que seules les formules de Γ sont
utilisées pour faire la preuve de Θ. On peut démontrer qu’une telle partition est toujours
possible et qu’elle ne restreint en rien la généralité. Elle va nous permettre de donner une
formulation plus simple du système.
Le schéma précédent sera appelé « règle d’introduction à gauche du symbole ⇒ ». On peut le
lire : pour que la suite de formules A ⇒ B, ∆, Γ permette de déduire la suite Λ, Θ, il suffit que
∆ permette de déduire Λ, A et que B, Γ permette de déduire Θ.
Noter que si on ne veut pas procéder à cette séparation des contextes, on peut tout aussi bien
prendre comme règle :
Γ → Θ, A
B, Γ → Θ
A ⇒ B, Γ → Θ
(la formulation des feuilles en sera simplement changée)
L’exemple précédent nous a également montré que, dans le cas d’une disjonction sur le côté
gauche d’un séquent, nous avions :
A,∆→Λ
B, Γ → Θ
A∨B, ∆, Γ → Λ, Θ
ou : (règle d’introduction à gauche du “ou”)
A, Γ → Θ
B, Γ → Θ
A∨B, Γ → Θ
A la suite de ces exemples, on peut facilement deviner ce que seront les autres règles.
Règle d’introduction à gauche du « et » :
A, B, Γ → Θ
A∧B, Γ → Θ
Passons maintenant aux règles d’introduction à droite.
Règle d’introduction à droite de l’implication :
A, Γ → Θ, B
Γ → Θ, A⇒ B
Règle d’introduction à droite du « ou » :
Γ → A, B, Θ
Γ → A∨B, Θ
Règle d’introduction à droite du « et » :
∆→A,Λ
Γ → B, Θ
∆, Γ → A∧B, Λ, Θ
ou, tout aussi bien :
Γ → A, Θ
Γ → B, Θ
Γ → A∧B, Θ
Nous avons aussi des règles évidentes pour la négation :
Introduction à droite :
A, Γ → Θ
Γ → Θ, ¬A
Introduction à gauche :
Γ → Θ, A
¬A, Γ → Θ
Ces règles donnent tous les pas possibles à l’intérieur d’une déduction dans le cadre du calcul
des séquents, mais elles ne suffisent pas : il faut indiquer quand on s’arrête, autrement dit
définir les feuilles de nos arbres de preuves.
Si nous retenons la version qui ne sépare pas les contextes, comme dans le cas de l’exemple
ci-dessus, nous devons considérons comme instance de l’axiome tout séquent de la forme :
A, Γ → Θ, A
Autrement dit tout séquent où figure une même formule à gauche et à droite. Si nous adoptons
la version qui sépare les contextes, nous pouvons nous contenter de l’axiome dit
« d’identité » :
A→A
1.3 Les règles structurelles
Il est important de noter aussi que le calcul des séquents manipule des suites de formules et
qu’en logique classique, on admet que les formules sont des entités « idéales », qu’on peut
aussi bien réutiliser à volonté que mettre à l’écart : la monotonie est en effet une propriété
importante de la logique classique. Si nous pouvons prouver une formule B à partir d’une
suite de formules Γ, a fortiori nous pourrons encore prouver B si nous ajoutons d’autres
hypothèses à Γ, même si nous ne les utilisons pas dans la démonstration ! On appelle cela une
règle « d’affaiblissement ». Le fait quant à lui qu’une formule puisse être utilisée plusieurs
fois ressortira d’une règle dite « de contraction ». Enfin, il n’y a bien sûr aucune contrainte sur
l’ordre des formules dans notre calcul : on peut les permuter à volonté sans qu’il en résulte
quelque inconvénient que ce soit. D’où les règles dites « structurelles » à gauche et à droite :
Affaiblissement :
Γ→Θ
Γ, A → Θ
Γ→Θ
Γ → A, Θ
Contraction :
Γ, A, A → Θ
Γ, A → Θ
Γ → A, A, Θ
Γ → A, Θ
Permutation :
Γ, A, B → Θ
Γ, B, A → Θ
Γ → A, B, Θ
Γ → B, A, Θ
1.4 La règle de coupure
Enfin, Gentzen introduit une règle fondamentale qui permet de composer les preuves et qui
intuitivement est assez évidente :
Γ → Λ, A
A, ∆ → Θ
Γ, ∆ → Λ, Θ
Ou, sans la séparation des contextes :
Γ→A
A, Γ → Θ
Γ→Θ
C’est ce qu’on appelle la règle de coupure (cut en anglais). Intuitivement, si on peut prouver
A à partir de Γ et si, en utilisant A on peut prouver Θ, alors on peut prouver Θ directement à
partir de Γ.
On remarquera la parfaite symétrie de cet ensemble de règles. C’est cette symétrie qui est à
l’origine d’un des théorèmes les plus importants de la logique, dû à Gentzen (en 1934), qui est
le théorème d’élimination de la coupure.
Thèorème de Gentzen (Hauptsatz) : le système sans la règle de coupure possède également
les mêmes conséquences que le système avec la règle de coupure.
On remarquera également cette propriété étonnante, dite « propriété de la sous-formule », qui
réside en ceci que lorsqu’on prend toutes les règles, sauf celle de coupure, il se trouve que la
ligne supérieure ne contient que des sous-formules de la ligne inférieure. Plus précisément, à
chaque pas d’une déduction dans le calcul des séquents, une ligne supérieure contient toutes
les sous-formules (et rien que les sous-formules) de la ligne qui est juste inférieure sauf une :
celle qu’on a prise comme « formule active » et qui, par l’application d’une règles associée à
un connecteur, s’est retrouvée décomposée.
Ceci conduit à un autre algorithme que la méthode des tables de vérité pour décider de la
validité d’une formule de la logique propositionnelle : on part du séquent
→ϕ
à démontrer et on essaie toutes les règles logiques applicables (si ϕ est une formule, le choix
de la règle à appliquer est déterminé par son connecteur principal). A chaque application de
règle, on tombe sur un ou deux nouveaux séquents à démontrer, qui n’ont pas plus
d’ingrédients que n’en avait le premier séquent (et même moins), alors on recommence sur
chaque séquent et ainsi de suite jusqu’à ce qu’on trouve (ou qu’on ne puisse pas trouver) une
instance d’axiome d’identité. Etant donné que les formules se déstructurent à chaque pas, il
arrive nécessairement un moment où il n’y a plus que des formules atomiques et où on est
obligé de s’arrêter. En ce cas, on voit si on a stoppé toutes les branches de la démonstration
par des axiomes ou si ce n’est pas le cas.
La théorème d’élimination de la coupure nous permet d’être sûr que tous les séquents
démontrables sont bien obtenus de cette manière : la règle de coupure n’en ajouterait pas
d’autres.
L’intérêt du calcul de séquents va être que, grâce à lui, la logique intuitionniste va posséder
elle aussi une procédure de décision.
2- La logique intuitionniste revisitée
2.1. Le calcul des séquents intuitionniste
Le calcul des séquents intuitionniste s’obtient simplement à partir du calcul classique en
restreignant les séquents à la forme :
A1, …, Ak → B ou A1, …, Ak →
Comme on le voit immédiatement, le premier schéma appelle une interprétation
fonctionnelle : les Ai (A1, …, Ak) sont des « inputs » et B est un « output » : nous y
reviendrons plus loin. Quant au deuxième schéma, la place vide à droite de la flèche signifie
une disjonction vide de formules, or une telle disjonction vide est nécessairement équivalente
à l’élément neutre de la disjonction, lequel comme on le sait, n’est autre que la constante qui
signifie le faux, quelque chose que nous noterons « ⊥ » (on peut dire aussi : l’absurde). D’où
les deux formes de séquents intuitionnistes :
A1, …, Ak → B
A1, …, Ak → ⊥
A cause de cette restriction, certaines règles du calcul classique disparaissent. Evidemment la
contraction et la permutation à droite n’ont plus lieu d’être. La seule règle structurelle qui
demeure à droite est celle d’affaiblissement. Elle signifie alors que si, à partir d’une suite de
formules, on peut déduire l’absurde, alors on peut déduire n’importe quelle formule : quelque
chose que nous savions déjà dans la logique classique. La règle d’introduction de « ∨ » à
droite ne peut plus exister. Elle est remplacée par deux règles :
Introduction de ∨ à droite :
1)
Γ→A
Γ → A∨B
2)
Γ→B
Γ → A∨B
On perd alors la symétrie qui existait en logique classique, entre les règles du « et » et celles
du « ou ».
De même, les règles pour la négation deviennent :
Introduction à droite :
A, Γ → ⊥
Γ → ¬A
Introduction à gauche :
Γ→A
¬A, Γ → ⊥
La règle d’introduction à gauche de « ⇒ » devient :
∆→A
B, Γ → C
A ⇒ B, ∆, Γ → C
Pour la droite, bien entendu :
A, Γ → B
Γ → A⇒ B
On remarquera bien que dans ce système, il est impossible de démontrer le tiers-exclu, c’està-dire le séquent → A∨¬A. En effet, si on essaie de prouver ce séquent, on va essayer de lui
appliquer les règles logiques ci-dessus. Comme la seule règle utilisable est l’une des deux
« demi »-règles pour l’introduction de ∨ à droite, on a le choix de faire provenir ce séquent du
séquent → A ou bien du séquent → ¬A, mais évidemment aucun de ces deux séquents n’est
prouvable. Il n’est pas davantage possible de prouver le séquent → ¬¬A ⇒ A, car il ne
pourrait provenir que du séquent ¬¬A → A, auquel ne s’applique pas la règle d’introduction
de ¬ à gauche (puisque celle-ci ne peut s’appliquer qu’à un séquent ayant ⊥ en partie droite).
D’autres théorèmes de la logique classique propositionnelle ne sont plus démontrables en
logique intuitionniste. On vérifiera ainsi que si, en logique propositionnelle, on peut prouver
le théorème selon lequel quelles que soient les propositions P et Q, on a toujours (P ⇒ Q) ∨
(Q ⇒ P) (ce qui est assez étrange, avouons-le !), on ne peut plus le faire en logique
intuitionniste.
[Remarque : en logique propositionnelle, on a |= (P ⇒ Q) ∨ (Q ⇒ P) simplement à partir de
|= ¬(¬(P ⇒ Q)∧¬(Q ⇒ P)) c’est-à-dire : |= ¬((P∧¬Q) ∧ (Q∧¬P)). En logique intuitionniste,
on ne peut pas le démontrer parce qu’on ne dispose pas de la partie des lois de De Morgan
selon laquelle de ¬(A ∧ B), on peut déduire ¬A∨¬B. En effet, là encore, pour avoir ce
dernier théorème, il faudrait pouvoir utiliser une des règles d’introduction du ∨ à droite, il
faudrait donc, soit que ¬(A ∧ B) permette de déduire ¬A, soit que ¬(A ∧ B) permette de
déduire ¬B. Or, aucun des deux n’est possible.]
Un exemple de preuve en logique intuitionniste :
[Axiome]
p→p
[Affaiblissement]
p, q → p
[⇒ D]
p → q ⇒ p [⇒ D]
→ p ⇒ (q ⇒ p)
2.2. Quelle sémantique pour un tel calcul ?
Nous avons déjà vu une sémantique de la logique intuitionniste : celle de Kripke. C’est une
sémantique des « formules ». Autrement dit, une formule de la logique intuitionniste est vraie
si et seulement si elle est vraie dans tous les modèles arborescents, c’est-à-dire tous les (e0, K,
≤), où e0 est l’état initial (« racine ») et où K est un ensemble d’états muni de la relation ≤ qui
structure K en arborescence. Nous avons aussi suggéré qu’un séquent intuitionniste
ressemblait beaucoup à une fonction à n variables. Nous allons maintenant développer ce
second aspect en nous centrant sur les preuves, davantage que sur les formules. Les deux
points de vue ne sont toutefois pas contradictoires : l’interprétation dite « BHK »
(interprétation de Brouwer – Heyting – Kolmogorov) considère en effet que le sens d’une
formule, c’est l’ensemble de ses preuves. A condition bien entendu qu’on ait de ces preuves
un calcul effectif.
Un tel calcul doit nous indiquer comment obtenir une preuve d’une certaine formule à partir
des preuves de ses composantes, d’où finalement : comment combiner des preuves
élémentaires pour obtenir des preuves plus complexes ?
• Qu’est-ce qu’une preuve de A ∧ B ? C’est, « naturellement », un couple formé d’une
preuve de A et d’une preuve de B.
• Qu’est-ce qu’une preuve de A ∨ B ? en logique intuitionniste, si on veut prouver une
telle formule (une disjonction) il faut qu’on puisse prouver soit A soit B (nous avons
vu plus haut que nous n’avons pas la règle de De Morgan qui fait que, parfois, en
logique classique, on prouve A ∨ B en montrant que ¬A et ¬B sont impossibles),
autrement dit : une preuve de A ∨ B est une construction particulière qui consiste soit
en une preuve de A ∨ B sous l’hypothèse A si A est prouvable soit en une preuve de
A ∨ B sous l’hypothèse B si c’est B qui est prouvable (ce qu’on appelle une définition
par cas en informatique).
• Qu’est-ce qu’une preuve de A ⇒ B ? C’est un moyen systématique d’associer, à une
preuve de A, une preuve de B, autrement dit : c’est une fonction !
• Il n’y a pas de preuve de l’absurde (⊥).
• Evidemment s’il y a une preuve de A, il ne peut pas y avoir de preuve de ¬A (sans
quoi, étant donné que ¬A est équivalent à A ⇒ ⊥, il y aurait une preuve de l’absurde :
il suffirait en effet d’appliquer la fonction associée à la preuve de l’implication à la
preuve de A).
On peut maintenant aller plus loin et donner une signification aux règles elles-mêmes par
lesquelles sont construites les preuves. Etant données les associations qu’on vient de faire, on
voit qu’utiliser la règle d’élimination de l’implication ([e ⇒]), c’est-à-dire le modus ponens,
revient à appliquer la fonction associée à la preuve de A ⇒ B, à une preuve de A : on obtient
alors une preuve de B. On peut ainsi « décorer » la règle :
a:A
f:A⇒B
f(a) : B
Utiliser la règle d’introduction de l’implication revient au contraire à « fabriquer » la fonction
associée à la preuve de A ⇒ B. Comment la fabrique-t-on ? On suppose obtenue une preuve
de B, cette preuve utilise quelque part (ou n’utilise pas, dans certains cas particuliers) une
variable, qui renvoie à une hypothétique preuve de A : elle est telle en effet que si nous avions
une preuve de A en bonne et due forme, alors nous pourrions utiliser cette preuve dans la
preuve de B et ainsi obtenir une preuve de B sans l’hypothèse A, mais lorsqu’on démontre A
⇒ B, on fait l’hypothèse A pour pouvoir démontrer B, on n’a donc pas de preuve tangible de
A, on a seulement l’hypothèse d’une telle preuve, représentée par une variable. La fonction
associée à la preuve de A ⇒ B est donc le processus abstrait par lequel en remplaçant la
variable représentant une preuve de A dans la preuve de B, on obtient une authentique preuve
de B Soit donc f la preuve de B, obtenue avec l’hypothèse représentée par x, on note ce
processus abstrait : λx. f. C’est l’abstraction de x dans ϕ. La règle décorée est :
[x : A]i
f:B
λx. f : A ⇒ B
- Pour la conjonction, nous aurons :
Elimination :
(a, b) : A ∧ B |-- a : A
(a, b) : A ∧ B |-- b : B
Il s’agit des projections d’un couple
Introduction :
a : A, b : B |-- (a, b) : A ∧ B
Il s’agit de la formation d’un couple
- Pour la disjonction :
Elimination :
de Γ, x : A |-- c(x) : C et Γ, y : B |-- c(y) : C on peut déduire :
Γ, z : A ∨ B |-- cas(z, [x].x, [y].y) : C
Introduction :
x: A |-- ι1(x) : A ∨ B
x : B |-- ι2(x) : A ∨ B
où ι1 et ι2 sont les « injections » de respectivement A et B dans « l’union » de A et de B.
Si on se restreint aux seules règles concernant l’implication, on retrouve le λ-calcul, inventé
par A. Church dans les années trente afin de régler rigoureusement le problème de la
substitution des variables dans des expressions fonctionnelles, un calcul suffisamment
puissant pour donner un modèle général équivalent aux machines de Turing, autrement dit un
modèle grâce auquel on peut effectivement calculer tout ce qui est calculable par une
machine.
2.3 La correspondance de Curry-Howard
En chemin, nous avons découvert une correspondance fondamentale entre la logique et le
calcul, que l’on appelle « correspondance de Curry-Howard », et qu’on peut résumer par le
tableau suivant :
Logique (intuitionniste)
preuve
hypothèse
élimination de ⇒
introduction de ⇒
hypothèse déchargée
formule
(lambda) calcul
λ-terme
variable (libre)
application
abstraction
variable liée
type
Regardons un exemple de preuve en logique intuitionniste, faite dans le système de la
déduction naturelle.
[x : A]1
[y : A ⇒ B]3 [z : B ⇒ C]2
y(x) : B
z(y(x)) : C 1
λx. z(y(x)) : A ⇒ C 2
3
λz.λx. z(y(x)) : (B ⇒ C) ⇒ (A ⇒ C)
λy. λz.λx. z(y(x)) : (A ⇒ B) ⇒ ((B ⇒ C) ⇒ (A ⇒ C))
La preuve est représentée par le λ-terme λy. λz.λx. z(y(x)). Que fait ce λ-terme ? si on
l’applique à deux fonctions f et g, on obtient :
[[λy. λz.λx. z(y(x))](f)](g) → [λz.λx. z(f(x))](g) → λx. g(f(x))
soit la fonction qui, à toute valeur de x, associe la valeur correspondante de g(f(x)), autrement
dit la fonction composée g o f. Or, comme on sait, une telle composition de fonctions n’a de
sens que si l’ensemble d’arrivée de f est inclus dans l’ensemble de définition de g, mais cela
est justement ce qu’exprime la formule, qu’on peut interpréter comme : à toute fonction de A
dans B et à toute fonction de B dans C, on peut associer une fonction de A dans C. Ainsi la
formule exprime-t-elle une contrainte de typage. Si on appelle « type » d’un objet son
ensemble de référence, alors la formule représente le type du λ-terme λy. λz.λx. z(y(x)), d’où
l’idée que dans la correspondance ci-dessus, la notion de formule corresponde à celle de
type. On notera d’autre part que le λ-terme obtenu est bien aussi une sorte de « programme » :
le programme qui accomplit la composition de deux fonctions.
Une autre présentation de cette correspondance repose sur le calcul des séquents. On y
retrouve évidemment les mêmes idées, mais avec en plus une interprétation pour la fameuse
élimination des coupures. Limitons-nous à la logique implicationnelle intuitionniste. Elle
consiste dans les règles suivantes, que nous allons décorer, elles aussi, avec des λ-termes :
Règles logiques :
∆→x:A
y : B, Γ → γ: C
f : A ⇒ B, ∆, Γ → γ[f(x)/y] : C
x : A, Γ → α : B
Γ → λx. α : A⇒ B
Axiome d’identité :
x:A→x:A
Règle de coupure :
∆→x:A
y : A, Γ → γ: C
∆, Γ → γ[x/y] : C
L’élimination de la règle de coupure dans une déduction a pour corollaire la réduction du λterme associé. Ainsi non seulement cette correspondance est-elle une sorte de dictionnaire
entre le langage des preuves (langage de la logique) et celui des calculs (langage du λ-calcul),
mais encore les structures se transportent et les procédures se correspondent également, c’est
la raison pour laquelle on parle d’un isomorphisme : l’isomorphisme de Curry-Howard. Celuici a été beaucoup utilisé en informatique dans la conception communément appelée « preuves
comme programmes » (proofs as programs). L’enjeu est de pouvoir écrire en même temps un
programme informatique et la preuve de sa correction : on commence par spécifier le
problème dans un langage basé sur la logique intuitionniste (en fait un langage bien plus
vaste, comme dans la théorie des types de Martin-Löf ou la théorie des constructions de T.
Coquand), on fait la preuve dans ce système que la spécification est correcte (par exemple que
la somme ainsi spécifiée de deux entiers est bien un entier) et on extrait un programme
correspondant à la spécification. Cette conception est la réalisation concrète de l’idée que les
preuves en logique peuvent avoir un contenu constructif, ou encore algorithmique.
Désormais, on ne s’intéresse plus aux preuves que pour leur contenu algorithmique. La
rencontre avec l’informatique est ainsi un second choc pour la logique, dans son histoire,
après le choc de la rencontre avec les mathématiques. Le premier avait entraîné une
mathématisation de la logique et la mise en avant de grands métathéorèmes concernant les
possibilités et les limites des systèmes logiques, en tant que représentant (plus ou moins
fidèlement) l’activité mathématique. Le second introduit une dynamisation de la logique par
le fait qu’on se centre désormais sur les preuves en tant que programmes.
Une telle évolution entraîne avec elle de nombreuses conséquences, mais aussi des questions.
1- peut-on étendre l’isomorphisme de Curry-Howard à d’autres logiques que la logique
intuitionniste ? à la logique classique en particulier ?
2- pouvons-nous en déduire des logiques qui, de même que la logique intuitionniste
recèle en elle-même implicitement une interprétation en termes de processus
d’évolution des connaissances, recèleraient une interprétation d’un autre type ? en
termes d’actions par exemple, voire en termes d’interactions ?
La recherche de réponse à ces questions va d’abord permettre de mettre le doigt sur de
nouvelles logiques pouvant avoir elles aussi des interprétations intéressantes d’un point de
vue informatique, il s’agit d’abord de la logique linéaire de J. Y. Girard.
3. La logique linéaire
3.1 Qu’est-ce que la logique linéaire ?
Reprenons le calcul des séquents, dans sa conception classique cette fois, et non intuitionniste.
Nous avons, au début de ce chapitre, que l’on pouvait donner des formulations diverses de la
même règle. Par exemple, pour le « ou » à gauche :
A,∆→Λ
B, Γ → Θ
A∨B, ∆, Γ → Λ, Θ
admet la variante :
A, Γ → Θ
A∨B, Γ → Θ
B, Γ → Θ
De même que la règle d’introduction à droite du « et » :
∆→A,Λ
Γ → B, Θ
∆, Γ → A∧B, Λ, Θ
admet la variante :
Γ → A, Θ
Γ → A∧B, Θ
Γ → B, Θ
Or la preuve de l’équivalence de ces règles, à l’intérieur de chaque couple, repose, comme on
pourra le vérifier, sur l’utilisation des règles d’affaiblissement et de contraction. Supposons
donc une logique privée de ces deux règles structurelles : les formulations données ne seraient
plus équivalentes ! Ce qui signifie que, pour le « ou », on aurait deux variantes différentes,
l’une ayant pour règle d’introduction à gauche :
A,∆→Λ
B, Γ → Θ
A∨B, ∆, Γ → Λ, Θ
et l’autre ayant pour règle :
A, Γ → Θ
A∨B, Γ → Θ
B, Γ → Θ
Idem pour le « et ». Il y aurait un « et » dont la règle d’introduction à droite serait :
∆→A,Λ
Γ → B, Θ
∆, Γ → A∧B, Λ, Θ
Et un autre dont la règle correspondante serait :
Γ → A, Θ
Γ → A∧B, Θ
Γ → B, Θ
Appelons opérateurs multiplicatifs ceux qui sont introduits avec des règles qui séparent les
contextes, et opérateurs additifs ceux qui sont introduits par des règles qui identifient les
contextes. Le « ∨ » classique se scinde en deux instances, une multiplicative : ℘, et une
additive : ⊕. Le « ∧ » classique se scinde également en deux instances, une multiplicative : ⊗,
et une additive : &. D’où les règles :
[℘ G] :
A,∆→Λ
B, Γ → Θ
A℘B, ∆, Γ → Λ, Θ
[⊕ G] :
A, Γ → Θ
B, Γ → Θ
A ⊕ B, Γ → Θ
[⊗ D] :
∆→A,Λ
Γ → B, Θ
∆, Γ → A ⊗ B, Λ, Θ
[& D] :
Γ → A, Θ
Γ → B, Θ
Γ → A & B, Θ
[℘D] :
Γ → A, B, Θ
Γ → A℘B, Θ
[⊗ G] :
A, B, Γ → Θ
A ⊗ B, Γ → Θ
[& G] :
A, Γ → Θ
A & B, Γ → Θ
[⊕ D] :
Γ → A, Θ
Γ → A ⊕ B, Θ
B, Γ → Θ
A & B, Γ → Θ
Γ → B, Θ
Γ → A ⊕ B, Θ
Négation :
A, Γ → Θ
Γ → Θ, A⊥
Γ → Θ, A
A⊥, Γ → Θ
En définissant un nouveau connecteur (“implication linéaire”), au moyen de :
A –o B ≡ A⊥ ℘ B
on trouve les règles suivantes :
[--o G] :
∆ → Θ, A
B, Γ → Λ
A –o B, ∆, Γ → Θ, Λ
[ --o D] :
A, Γ → Θ, B
Γ → Θ, A –o B
On peut commenter [--o G] en disant : si la partie des formules ∆ permet de fournir un A,
conjointement avec les formules de Θ, et si B, conjointement avec les formules de Γ, permet
d’obtenir la suite de formules Λ, alors A –o B, mis avec ∆ et Γ, donnera la suite de formules
Θ, Λ. Comme les règles d’affaiblissement et de contraction sont absentes du système, chaque
occurrence de formule dans les listes indiquées par des capitales grecques compte. Lorsque
les occurrences de formules dans ∆ ont été utilisées pour prouver A, elles ne sont plus
disponibles pour prouver Λ en compagnie de B, puisqu’en effet ∆ et Γ contiennent par
définition des suites différentes d’occurrences de formules. On dit alors que la suite ∆ a été
“consommée” par A –o B. On voit alors que les éléments des suites en question peuvent être
interprétées comme des ressources plutôt que comme d’ordinaires formules. Une formule
implicative, comme A –o B, ne représente ainsi plus seulement une fonction (comme en
logique intuitionniste) mais un processus consommateur de ressources, et bien entendu, une
formule ne peut plus être interprétée en termes de valeurs de vérité.
On peut poursuivre l’interprétation des connecteurs introduits et on va voir émerger une
nouvelle conception de la logique, sensible cette fois au contexte, c’est-à-dire aux ressources
disponibles : d’abord à leur quantité (interdiction de compter une ressource pour deux, à cause
de l’absence de la règle de contraction, interdiction aussi de « négliger » une ressource, à
cause de l’absence de la règle d’affaiblissement), puis même à leur ordre, si on supprime
aussi la règle de permutation, ce qui s’avèrera crucial dans des applications linguistiques.
Des processus consommateurs de ressources sont justement à la base de l’action. Ainsi
pourra-t-on interpréter la logique linéaire comme une logique de l’action, de la même façon
que nous avons interprété la logique intuitionniste comme une logique de la connaissance.
Qui plus est, on peut même interpréter la logique linaire en termes d’interactions.
3.2. Les exponentielles de la logique linéaire
La logique linéaire limitée aux règles du paragraphe précédent appartient à la famille des
logiques dites « sous-structurelles » (obtenues en restreignant l’emploi des règles structurelles
du calcul des séquents). Cette famille contient aussi la logique dite « pertinente » (Relevance
Logic) de Belnap et Anderson et les « display logics » (R. Goré). La logique pertinente, en
particulier, a été spécialement conçue pour répondre aux questions sur l’implication posées au
début du chapitre sur les modalités : elle a pour but d’empêcher qu’une formule n’entrant pas
de manière active dans la construction d’une preuve puisse apparaître comme prémisse d’un
raisonnement. Typiquement, en logique pertinente, on ne peut pas prouver une loi logique
comme : p ⇒ (q ⇒ p) . Cela s’explique de la manière suivante. Supposons que nous voulions
démontrer cette loi en logique propositionnelle dans le formalisme de la déduction naturelle.
Nous procéderions comme suit :
hypothèse : p
hypothèse : q
p
q⇒p
p ⇒ (q ⇒ p)
1
2
3
4
5
- par simple réitération de la ligne 1 –
- par introduction de ⇒ à partir de la sous-déduction 2-3- par introduction de ⇒ à partir de la sous-déduction 1-4-
mais au pas 3, p provient simplement de l’hypothèse posée au pas 1, q n’est pas utilisée pour
prouver p. C’est cela qu’interdit la logique pertinente.
En logique linéaire, on a la même chose, qui peut s’exprimer par la déduction suivante en
calcul des séquents :
p, q → p
p → (q ⇒ p)
→ p ⇒ (q ⇒ p)
mais p, q → p n’est pas prouvable : il ne correspond à aucune règle logique, aucune règle
structurelle (puisqu’on a supprimé la règle d’affaiblissement) et aucun axiome.
Ceci dit, les pouvoirs d’une logique sous-structurelle sont limités. Il y a des cas notamment où
l’on a besoin d’utiliser des « ressources » plus d’une fois, voire de manière quasi infinie. Dans
un problème de planification d’actions par exemple, on peut évidemment recourir à des
ressources vite épuisables (l’argent dont on dispose, le carburant etc.) mais aussi, pourquoi
pas, à d’autres qui peuvent être admises comme inépuisables (l’air qu’on respire…). D’autre
part, il est utile de pouvoir retrouver la logique intuitionniste, voire classique, à partir d’une
logique sous-structurelle. On pourrait dire évidemment qu’il suffit de réintroduire les règles
structurelles éliminées, mais alors les gains obtenus par leur suppression seraient annulés. Il
est plus intéressant de les réintroduire seulement localement. Qu’est-ce qui indiquera la
possibilité d’une telle ré-introduction ? Un connecteur unaire affectant une formule. De tels
connecteurs sont, en logique linéaire, appelés des exponentielles. Ils ressemblent aux
modalités S4. Comme elles, ils forment une paire : ! et ?. Si certaines de leurs lois sont
communes avec celles des modalités S4, d’autres expriment simplement leur sensibilité aux
règles structurelles. On peut donc aussi les appeler des « modalités structurelles »1.
1
C’est le terme utilisé dans les grammaires catégorielles multimodales, qui sont une variante de ce genre de
logique élaborée à des fins de représentation de phénomènes linguistiques, en particulier par M. Moortgat et son
école.
Téléchargement