Logique et informatique

publicité
PATRICK B ELLOT
É COLE N ATIONALE S UPÉRIEURE DES T ÉLÉCOMMUNICATIONS
relu et corrigé par
A KIM D EMAILLE
É COLE POUR L’I NFORMATIQUE ET LES T ECHNIQUES AVANCÉES
2
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
3
L ICENCE DES DROITS D ’ USAGE DE CE DOCUMENT
Par le téléchargement ou la consultation de ce document, l’utilisateur
accepte la licence d’utilisation qui y est attachée, telle que détaillée dans
les dispositions suivantes, et s’engage à la respecter intégralement.
La licence confère à l’utilisateur un droit d’usage sur le document
consulté ou téléchargé, totalement ou en partie, dans les conditions définies ci-après, et à l’exclusion de toute utilisation commerciale.
Le droit d’usage défini par la licence autorise un usage dans un cadre
académique, par un utilisateur donnant des cours dans un établissement
d’enseignement secondaire ou supérieur et à l’exclusion expresse des
formations commerciales et notamment de formation continue. Ce droit
comprend :
– le droit de reproduire tout ou partie du document sur support informatique ou papier,
– le droit de diffuser tout ou partie du document à destination des
élèves ou étudiants.
Aucune modification du document dans son contenu, sa forme ou sa
présentation n’est autorisé.
Les mentions relatives à la source du document et/ou à son auteur
doivent être conservées dans leur intégralité.
Le droit d’usage défini par la licence est personnel, non exclusif et non
transmissible.
Tout autre usage que ceux prévus par la licence est soumis à autorisation préalable et expresse de l’auteur : [email protected].
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
4
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
5
Liste des chapitres
Chapitre I
I NTRODUCTION À LA LOGIQUE . . . . . . . . . . . .
Chapitre II
F ORMALISMES LOGIQUES . . . . . . . . . . . . . . . 25
Chapitre III
É LIMINATION DES COUPURES . . . . . . . . . . . . . 57
Chapitre IV
T HÉORIE DES TYPES . . . . . . . . . . . . . . . . . . 67
Chapitre V
L’ ISOMORPHISME DE C URRY-H OWARD . . . . . . . 87
Chapitre VI
R ÉALISABILITÉ . . . . . . . . . . . . . . . . . . . . . 101
Chapitre VII
L E SYSTÈME AF2 . . . . . . . . . . . . . . . . . . . . 117
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
7
6
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
7
I
I NTRODUCTION À LA LOGIQUE
Citons
LOGIQUE ET INFORMATIQUE, UNE INTRODUCTION
B. Courcelle ed.
INRIA, Collection Didactique
1991
et
LOGIC : FORM AND FUNCTIONS
J.A. Robinson
Edinburgh University Press, Edinburgh, Écosse
1979
La logique est la théorie qui tente de mathématiser le raisonnement,
c’est-à-dire d’en faire un objet mathématique comme un autre sur lequel
on puisse démontrer des théorèmes.
Elle s’occupe principalement du raisonnement mathématique, beaucoup plus que du raisonnement courant qui est plus difficilement appréhendable.
En ce sens, la logique fait partie des méta-mathématiques, i.e. des mathématiques à propos des mathématiques.
Jusqu’à l’apparition des ordinateurs et de l’informatique, elle était fort
peu utile car les mathématiciens non-logiciens font peu de cas de l’étude
du raisonnement.
Lorsqu’au début du siècle, Bertrand Russel commença à découvrir le
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
8
CHAPITRE I. INTRODUCTION À LA LOGIQUE
paradoxe qui porte son nom, Henri Poincaré déclara en 1906 :
... La logique n’est plus stérile ! Elle engendre des contradictions ...
Cela en dit long sur certaines mentalités. Pourtant, mathématiser le
raisonnement permet d’en discuter et de se convaincre sur des bases
posées par la logique. Encore faut-il que ces bases soient admises par tous !
1
La logique est déclarative
Comme nous venons de le dire, la logique étudie les raisonnements
qui sont composés de déductions faites sur des propositions. Comme le
remarque le professeur André Chauvin, logicien français spécialisé dans
l’étude du calculable, on distingue trois usages des propositions :
– l’usage déclaratif : la proposition est appelée déclaration ou assertion ;
– l’usage interrogatif : la proposition est appelée question ;
– l’usage impératif : la proposition est appelée instruction ou commandement.
Même si l’informatique nous a appris la nécessité de ces trois usages, la
logique classique s’est attachée à l’usage déclaratif des propositions. Les
raisons sur lesquelles nous reviendrons peuvent être explicitées comme
suit.
Tout d’abord, les mathématiques assimilent implicitement les objets de
leur discours à des êtres matériels tous présents. Nous n’avons pas à les
créer mais seulement à les découvrir. André Chauvin cite l’exemple des
nombres réels et du sous-ensemble des nombres transcendants 1 . Les mathématiques les considèrent comme présents. De sorte qu’une question
telle que La constante C d’Euler 2 est-elle un nombre transcendant ? possède une réponse même si nous le la connaissons pas aujourd’hui. Toute
question possède une réponse, à nous de la découvrir. On peut se passer
des questions au bénéfice des déclarations dont on démontre la vérité ou
la fausseté. De même, on peut se passer des commandements puisque les
mathématiques travaillent dans un univers pré-existant.
1. Un nombre est transcendant si et seulement si il n’est racine d’aucun polynôme à
coefficients rationnels.
2. C = lim 1 + 21 + 13 + · · · + n1 − ln n
n→∞
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
2 Les schémas hilbertiens des propositions
9
Le point de vue qui vient d’être expliqué régnera sans partage sur
la logique théorique : toute proposition se ramène à une déclaration. Si
questions et commandements figurent dans les traités de logique, ils sont
exprimés dans la langue naturelle et non dans le langage de la logique.
Cette logique déclarative est appelée logique de Hilbert qui en a donné
une définition axiomatique rigoureuse et élégante.
2
Les schémas hilbertiens des propositions
Les propositions logiques sont des déclarations à propos d’objets.
Quand ces objets ne sont pas spécifiés, on peut les représenter par des
variables libres. Une variable libres est une lettre représentant un objet
non spécifié dans un contexte et il s’agit du même objet quelle que soit
l’occurrence de la variable libre.
Lorsque nous ne voulons pas spécifier la proposition, nous utilisons des
symboles tels que P (x) ou Q(x, y). P (x) désigne une proposition parlant
d’un objet x tandis que Q(x, y) désigne une proposition parlant de deux
objets x et y. Ce type d’écriture est appelé un schéma de proposition. Les
lettres P ou Q sont appelés des lettres de proposition ou des propositionlettre. H.B. Curry les appelle des prédicateurs.
Hilbert propose de continuer en prenant une proposition précise
R0 (x, y). R0 (x, y) peut être par exemple l’égalité x = y. Pour deux objets
x0 et y0 spécifiés, R0 (x0 , y0 ) est vraie ou fausse (principe du tiers-exclu).
On peut choisir de lui associer un symbole v si la proposition est vraie
et un symbole f si la proposition est fausse. On peut donc considérer R0
comme une fonction à deux arguments et à valeur dans {v, f }.
On voit immédiatement l’analogie entre le prédicat vu par Hilbert et
la fonction caractéristique d’une ensemble, celui des couples (x0 , y0 ) tel
que R0 (x0 , y0 ) est vrai. Mais..., et c’est très important, la logique est antérieure à la théorie des ensembles qui la suppose connue pour formaliser
ses axiomes. Aussi les prédicats sont des fonctions «plus générales» que
les fonctions ensemblistes définie par des graphes, elles ont le même caractères que les fonctions processus définies par exemple avec les combinateurs.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
10
3
CHAPITRE I. INTRODUCTION À LA LOGIQUE
Naissance de la logique mathématique
On peut faire remonter les premiers pas de la logique à Aristote puisqu’on lui doit le syllogisme « Tous les hommes sont mortels, les Athéniens
sont des hommes, donc ils sont mortels ». C’est peut-être la première mise
en évidence d’une règle de déduction formelle : « tous les B sont des C, les
A sont des B, donc tous les A sont des C ».
Au 17ème siècle, Gottfried Leibniz, alors plus philosophe que mathématicien, proposait la recherche d’une Characteristica Universalis, i.e. une
langue à vocation universelle qui permettrait une vision particulièrement
claire de la vérité des propositions, et celle d’un Calculus Ratiocinator, méthode de manipulation des propositions qui permettrait de déterminer
leurs vérités.
Le logicien J.A. Robinson ne fait-il pas remarquer que ce qui a rendu
célèbre Isaac Newton n’est pas tant les faits qu’il découvre concernant la
gravitation ou l’optique mais bien plus le formalisme qu’il a créé pour les
étudier avec principalement les calculs différentiel et intégral ? Ce que recherche Leibniz n’est rien moins que la même chose pour le raisonnement.
La création d’un formalisme logique du raisonnement était selon le philosophe Thomas Hobbes l’objet même de la logique. Il publie en 1655 un
traité, De Corpore, où il avance que la raisonnement n’est rien d’autre qu’un
calcul comme un autre. L’histoire raconte que Hobbes fut séduit par la logique du raisonnement de la démonstration du théorème de Pythagore
dans les Éléments d’Euclide, démonstration qu’il lut à rebours découvrant
les propositions utilisées par celle-ci, puis les propositions utilisées pour
démontrer les premières propositions et ainsi de suite... jusqu’à atteindre
les axiomes. Il fut tellement séduit par la rigueur et l’infaillibilité du discours mathématiques qu’il passa le reste de sa vie à rechercher une sorte
d’alchimie du raisonnement permettant de combiner des concepts vrais
en nouveaux concepts vrais. Dans Computatio Sive Logica, il écrivait qu’il
ne fallait pas penser que le calcul se faisait uniquement avec des nombres.
G. Leibniz qui n’avait que 8 ans quand Hobbes formula ses idées
commença à travailler les concepts de Hobbes en 1666 à l’âge de 19 ans.
Dans son De Arte Combinatoria, il rend grâce à Hobbes de lui avoir insufflé
l’idée d’un système de calcul pour le raisonnement. Il tenta de développer
ce type de calcul en représentant les concepts par des nombres.
La période moderne, i.e. non plus seulement philosophique, de la loPatrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
4 Naissance de la logique formelle
11
gique commence probablement avec Gottlob Frege quand il publia en 1879
le Begriffsschrift, i.e. Écriture de concepts. Il y définit une syntaxe graphique
pour représenter les notions logiques d’implication, de négation,... clamant que la représentation textuelle, que nous connaissons bien, n’était
pas la plus confortable. On lui doit les quantificateurs universel (∀) et existentiel (∃) et le symbole d’assertion (`).
4
Naissance de la logique formelle
C’est à Bertrand Russel et Alfred Whitehead que l’on doit la forme moderne de la logique mathématique. Dans les Principia Mathemtica en 1910,
ils donnent le cadre formalisé de développement dont la logique mathématique n’est pratiquement pas sortie : un langage rigoureux définissant
des expressions appelées formules et des règles formelles de manipulations
des expressions de ce langage. Dans ces règles, on trouve des axiomes disant que certaines formules sont vraies et l’on trouve des règles de déduction affirmant la véracité d’une certaine formule, la conclusion, pourvu que
certaines autres formules, les hypothèses, soient vraies.
Ces règles sont formelles, ce qui signifie qu’elles sont basées sur la
forme des formules concernées et non sur leur sens. D’un point de vue
informatique cela est intéressant puisque les ordinateurs sont eux-aussi
des machines formelles. On répertorie plusieurs façons de présenter un
système logique : déduction naturelle, systèmes hilbertien et calcul des
séquents. Celles-ci seront abordées plus loin.
5
La fin d’un rêve
Le rêve de ce début de 20ème siècle était de faire de la logique un
calcul et donc de mécaniser le raisonnement, puis par suite toutes les
mathématiques et puisque toutes les sciences sont plus ou moins basées sur
les mathématiques, on aurait fini par mécaniser toutes les sciences...
C’était le rêve de David Hilbert et l’objectif du trop fameux Programme
de Hilbert, témoin d’une époque scientifiquement conquérante et positiviste. D. Hilbert ne déclarait-il pas lors d’un colloque à l’université de Königsberg en 1930 :
... Nous devons savoir, nous saurons ...
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
12
CHAPITRE I. INTRODUCTION À LA LOGIQUE
Las, deux jours auparavant, dans le même lieu mais dans le cadre
d’un autre colloque scientifique, Kurt Gödel avait présenté son résultat
d’incomplétude selon lequel il n’était pas possible d’axiomatiser formellement, et surtout récursivement, les vérités de l’arithmétique.
Le rêve de la mécanisation des mathématiques avait pris l’eau abîmé
par deux icebergs :
– celui de la complétude : on ne peut pas axiomatiser convenablement
toutes les vérités d’un système mathématique dès lors que celui-ci
intègre la simple arithmétique des entiers naturels ;
– celui de la décidabilité : il n’existe par de procédure automatisable
permettant de savoir dans le cas général si un énoncé est vrai ou pas.
6
L’hérésie intuitionniste
Toujours en ce début de siècle, et peut-être par réaction au courant positiviste des sciences, est née une école mathématique et logique entraînée
par Luitzen Brouwer et connue sous le nom d’école intuitionniste. Les intuitionnistes ont créé une logique, la logique intuitionniste, qui est celle qui
intéresse les informaticiens.
Les intuitionnistes remarquent tout d’abord que la logique classique,
classique par opposition à la logique intuitionniste, ne construit pas les vérités qu’elle démontre, elle les découvre. Elle pré-suppose que les choses
sont soit vraies, soit fausses. Les mathématiques se placent dans un univers platonicien. Cela se traduit par l’axiome du tiers-exclu :
A ∨ ¬A
(tertium non datur)
Cet axiome dont le sens littéral est qu’étant donnée une proposition, celleci est vraie ou bien sa négation est vraie. Il justifie de nombreux raisonnements comme le raisonnement par l’absurde, reductio ad absurdum : pour
prouver A, je suppose ¬A, j’en déduis une contradiction et donc A est
vraie. Mais présupposer que toute chose est soit vraie soit fausse est une
croyance philosophique, voire théologique comme le soutient le grand logicien Haskell Curry. Peut-on raisonnablement construire les mathématiques sur une base théologique ?
Un autre aspect de la logique classique inconvenant pour le logicien
intuitionniste est le fait que l’on peut montrer classiquement l’existence de
quelque chose vérifiant une propriété, une formule du type ∃x · A(x), sans
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
6 L’hérésie intuitionniste
13
être pour autant capable d’exhiber le x en question. Clairement, la logique
classique n’est pas constructive car elle ne construit pas ce dont elle prétend
l’existence. Les livres mathématiques sont pleins de démonstrations de la
rationalité de certains nombres sans pour autant être capable d’exhiber les
deux membres de la fraction.
Exemple. Démontrons qu’il existe des nombres réels
irrationnels et posi√ √2
√
b
tifs a et b tels que a soit rationnel. On considère 2 sachant que 2 est
irrationnel√:
√ 2
√
– si 2√ est rationnel, on choisit a = b = √2 ;
√ 2
√ 2
√
– si 2 est irrationnel, on choisit a = 2 et b = 2 car ab = 2.
La rédaction formelle et rigoureuse de la démonstration oblige à écrire
à un √
moment ou à un autre que l’on a A ∨ ¬A avec A étant la proposition
√ 2
« 2 est rationnel ».
Exemple. Soit le nombre σ construit comme suit : j’écris le développement
du nombre π en base 10. En dessous de chaque chiffre du développement
de π, j’écris le chiffre 3 et je ne m’arrête que si je trouve la séquence de
chiffres 0 1 2 3 4 5 6 7 8 9 dans le développement décimal de π. Deux cas
peuvent se présenter :
– il existe une séquence 0 1 2 3 4 5 6 7 8 9 dans le développement décimal de π, le nombre σ sera donc 0.33....3 où k, le nombre de chiffres
3, est égal au rang du chiffre 9 de la séquence dans le développement
k −1
décimal de π ; alors σ = 10
;
3.10k
– soit une telle séquence n’existe pas et σ est égal à 0.33333.... soit 13 .
Dans les deux cas, on peut démontrer que σ est rationnel mais on n’en
possède pas de paire numérateur-dénominateur.
Le type de raisonnement précédent est basé sur le tiers-exclu puisque l’on
suppose formellement que soit la séquence 0 1 2 3 4 5 6 7 8 9 existe dans le
développement décimal de π, soit elle n’y existe pas.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
14
CHAPITRE I. INTRODUCTION À LA LOGIQUE
Un autre aspect des mathématiques classiques, qui ne concerne pas véritablement la logique, celui de l’infini actuel est aussi rejeté par les intuitionnistes. Ce principe accepte l’idée de pouvoir considérer comme actuellement présents tous les éléments d’un ensemble infini comme celui
des nombres réels. On parle d’infini-actuel de Platon-Cantor. Avec par
exemple l’axiome du choix qui stipule grossièrement que si l’on possède
une infinité d’ensembles (Ei )i≥0 , il est possible de sélectionner instantanément un élément dans chacun des ensembles : il existe une fonction f
telle que f (i) ∈ Ei pour tout i ≥ 0. Effectivement, si je prends une infinité de paires de chaussures, je peux choisir par exemple toutes les chaussures gauches et mon choix est instantané. Je peux aussi choisir la chaussure gauche quand i est pair, la chaussure droite quand i est impair. Mais
prenons un autre exemple : celui d’une infinité de paires de chaussettes.
Dans une paire de chaussettes, les deux chaussettes sont entièrement semblables mais cependant distinctes. Comment décrire instantanément un
choix d’une chaussette dans chacune des paires ?
Les intuitionnistes refusent cet état de fait et se proposent de reconstruire les mathématiques sur de nouvelles bases. Ils rejettent le caractère
non constructif de la logique classique qui est matérialisé par l’axiome du
tiers-exclu. Ils refusent aussi la notion d’infini actuel, c’est-à-dire le fait que
l’on puisse considérer les nombres réels (où tout autre ensemble ayant le
même caractère) comme étant tous présents. En fait, ils rejettent la vision
platonicienne des mathématiques où une preuve est un moyen de découvrir une vérité pré-existante. Luitzen Brouwer en 1923 a même comparé
les mathématiques classiques à une activité criminelle : « Une théorie incorrecte qui n’est pas arrêtée par une contradiction n’en est pas moins incorrecte, exactement comme une politique criminelle qui n’est pas réprimée par une cour de justice n’en est pas moins criminelle ».
7
Les fondements intuitionnistes
Quels sont les fondements proposés par les intuitionnistes ? D’un point
de vue mathématiques, on rejette ce qui pourrait être qualifié de croyance
et l’on se base sur ce qui est intuitivement accepté par tous les individus
pensants : la suite des nombres naturels 0, 1, 2, 3,. . . Le reste n’existe pas !
D’un point de vue logique, on ne place plus la vérité au centre de la
logique mais plutôt la preuve. La vérité ne se trouve plus dans un univers
extérieur mais dans les preuves et la combinaison des preuves entre elles.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
7 Les fondements intuitionnistes
15
La vérité n’est pas découverte grâce à la preuve mais construite avec la
preuve. Sans preuve, il n’est pas de vérité. Ainsi dire qu’une formule A
est soit vraie soit fausse n’a de sens que si l’on a prouvé qu’elle était vraie
ou bien si l’on a prouvé qu’elle était fausse. D’où le rejet de l’axiome du
tiers-exclu.
Par ailleurs, les intuitionnistes font la supposition fondamentale suivante : le fait qu’une preuve p prouve une proposition A doit être décidable. D’un point de vue solipsiste 3 , cela apparaît clairement : si l’on n’est
pas capable de décider si p est une preuve de A alors p ne peut pas être
considérée comme une preuve de A.
De plus, les preuves intuitionnistes ne sont pas des preuves ordinaires,
elles doivent être constructives. En fait, ce sont toutes les mathématiques
intuitionnistes qui sont constructives. Pour pouvoir parler d’un objet mathématique, il faut être capable de le construire intuitivement. C’est-à-dire
qu’il doit exister un processus mental de construction de cet objet. Ce processus n’a pas besoin d’être réaliste en terme de temps d’exécution ou de
ressources nécessaires à sa réalisation. Il lui suffit d’exister et d’être communicable à quelqu’un d’autre qui pourrait le reproduire. On peut ainsi
construire mentalement la suite des entiers naturels et tout le monde est
capable de le faire. En revanche, une définition comme :
L=
le plus grand nombre premier tel que L − 2 est aussi premier
1 si un tel nombre premier n’existe pas
n’a de sens qui si l’on peut trancher entre les deux alternatives, c’est-àdire si l’on dispose d’une preuve qu’un tel nombre premier existe ou bien
si l’on dispose d’une preuve qu’il n’existe pas. En l’absence de l’une de ces
deux preuves, la définition ci-dessus n’a pas de sens.
Le côté constructif des preuves se retrouve dans les deux propriétés
suivantes :
Propriété d’existence. Si une formule ∃x·A(x) est prouvable, la preuve de
cette formule doit permettre de retrouver le témoin x0 tel que A(x0 )
est aussi prouvable.
Propriété de disjonction. Si une formule A ∨ B est prouvable alors soit A
est prouvable soit B est prouvable et l’examen de la preuve de A ∨ B
doit permettre de savoir lequel des deux est prouvable.
3. Rien n’existe hors de la pensée individuelle.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
16
CHAPITRE I. INTRODUCTION À LA LOGIQUE
Ces deux propriétés sont obtenues d’une part en refusant l’axiome du
tiers-exclu et d’autre part par des artifices syntaxiques, le mot est peut-être
un peu fort, dans la présentation de la logique.
7.1
Une démonstration classique troublante
En logique classique, i.e. non intuitionniste, on peut démontrer le théorème suivant :
((F ∧ G) ⇒ H) =⇒ ((F ⇒ H) ∨ (G ⇒ H))
On peut montrer ce résultat en se servant des équivalences logiques,
dites lois de Morgan. Le symbole ≡ se lit ici « · · · est logiquement équivalent à · · · » :
– ¬(A ∧ B) ≡ (¬A) ∨ (¬B) ;
– ¬(A ∨ B) ≡ (¬A) ∧ (¬B).
On se sert également de :
– A ⇒ B ≡ (¬A) ∨ B ;
– ¬¬A ≡ A.
Notons que cette dernière équivalence n’est pas vraie en logique intuitionniste. Nous nous servons également des propriétés d’associativité, de
commutativité et d’idempotence de la disjonction ∨. On a :
(F ∧ G) ⇒ H ≡
≡
≡
≡
≡
≡
(¬(F ∧ G)) ∨ H
((¬F ) ∨ (¬G)) ∨ H
(¬F ) ∨ (¬G) ∨ H
(¬F ) ∨ (¬G) ∨ H ∨ H
((¬F ) ∨ H) ∨ ((¬G) ∨ H)
(F ⇒ H) ∨ (G ⇒ H)
Donc, de (F ∧ G) ⇒ H, on peut déduire (F ⇒ H) ∨ (G ⇒ H). Prenons
pour F , G, et H les propositions suivantes :
– x = 0 pour F ,
– y = 0 pour G et
– (x, y) = (0, 0) pour H.
On a bien :
(x = 0) ∧ (y = 0) ⇒ (x, y) = (0, 0)
D’après le théorème, on a aussi :
(x = 0 ⇒ (x, y) = (0, 0)) ∨ (y = 0 ⇒ (x, y) = (0, 0))
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
8 La sémantique des preuves
17
et cela semble pour le moins bizarre...
N.B. Notons qu’aucune astuce n’a été utilisée et que ce théorème peut
être rigoureusement démontré en logique classique (cf. section~10). La
solution de l’énigme réside, comme nous le verrons, dans l’interprétation
classiques des symboles de la logique.
8
La sémantique des preuves
Les intuitionnistes vont plus loin encore dans l’expression de leurs
concepts puisqu’ils définissent également ce qu’est une preuve. Cette définition des preuves est appelée la sémantique des preuves intuitionnistes de
Heyting-Kolmogorov. Les preuves sont définies en termes de processus effectivement calculables, notion qui recouvre toutes les notions de processus automatisables d’une manière ou d’une autre : Logique Combinatoire,
λ-calcul, machines de Turing, algorithmes, etc. et dont la thèse de Church affirme qu’elle est une notion identifiable à celle de fonction λ-définissable,
i.e. de fonction définissable dans le λ-calcul. C’est cet aspect des preuves
qui reliera fortement, nous le verrons, logique et informatique. La sémantique des preuves intuitionnistes se définit comme suit.
– La preuve d’une formule atomique est une méthode automatisable permettant de vérifier que la formule atomique est vraie. Par
exemple, une preuve de 99 + 102 = 201 peut être un algorithme qui
calcule la somme de 99 et 102 et vérifie que le résultat est bien 201.
– La preuve d’une conjonction A ∧ B, i.e. A et B, est formée d’une
preuve de A et d’une preuve de B.
– La preuve d’un disjonction A∨B, i.e. A ou B, est formée d’une preuve
de A ou bien d’une preuve de B plus une indication permettant de
savoir lequel a été prouvé.
– La preuve d’une négation ¬A, i.e. non A, est la donnée d’un processus
effectivement calculable qui transforme toute preuve de A en une
preuve d’une contradiction, 0 = 1 par exemple.
– La preuve d’une implication, A ⇒ B, i.e. A implique B, est un
processus effectivement calculable transformant toute preuve de A
en une preuve de B.
– La preuve d’une quantification existentielle, ∃x·A(x), est formée d’un
élément t du domaine de quantification et d’une preuve de A(t).
– La preuve d’une quantification existentielle, ∀x · A(x), est la donnée
d’un processus effectivement calculable qui transforme tout élément
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
18
CHAPITRE I. INTRODUCTION À LA LOGIQUE
t du domaine de quantification en une preuve de A(t).
Quelques remarques s’imposent.
8.1
Implication et quantification universelle
Dans la définition des preuves de formules A ⇒ B et ∀x · A(x),
nous avons fait intervenir un « processus effectivement calculable qui
transforme · · · en · · · ». Il manque un élément dans cette description :
il faut prouver que le processus effectivement calculable fait bien ce qui
est annoncé. Ainsi, dans le cas de l’implication, il faudrait prouver que la
preuve transforme bien toute preuve de A en une preuve de B. C’est un
élément pas très clair de cette sémantique des preuves qui fut utilisé par
les opposants à l’intuitionnisme.
8.2
La négation intuitionniste
Il ne faut pas confondre la définition de la négation avec le raisonnement par l’absurde. En logique intuitionniste, pour montrer ¬A, il faut
montrer A ⇒⊥ où ⊥ est une contradiction, 0 = 1 par exemple. La logique intuitionniste dit donc « de A ⇒⊥, déduire ¬A ». Le raisonnement
par l’absurde dit « de (¬A) ⇒⊥, déduire A » et il est une conséquence de
l’axiome du tiers-exclu qui rend logiquement équivalent ¬¬A et A.
8.3
Jusqu’au dogmatisme...
La dogmatisme de certains logiciens intuitionnistes alla très loin. Ainsi,
G.F. Griss, rejetait-il même la négation intuitionniste avec le raisonnement
suivant. Si je veux démontrer qu’il n’existe pas de cercle carré, je vais supposer qu’il en existe un, aboutir à une contradiction et déduire mon résultat. Mais puisqu’un carré circulaire est une absurdité, comment puis-je
raisonnablement supposer qu’il en existe un ? Comment puis-je avoir une
vision claire de ce qu’est un carré circulaire pour pouvoir en déduire une
contradiction ? Cela est contradictoire avec l’idée que tout objet manipulé
par les mathématiciens intuitionnistes doit pouvoir être construit mentalement. Griss propose donc de faire reposer les mathématiques sur des
raisonnements exclusivement positifs. Ainsi pour montrer qu’il n’existe
pas de carré circulaire, on peut démontrer qu’un carré n’est pas un cercle
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
9 Que reste-t-il de l’intuitionnisme ?
19
en ce sens qu’on ne peut lui trouver un centre : quelque soit le point P du
plan que je choisisse, je peux toujours trouver deux points Q et R du carré
tels que la distance |P Q| soit différente de la distance |P R|.
9
Que reste-t-il de l’intuitionnisme ?
Il va de soi qu’en prenant comme base les seules constructions mentales intuitives et communicables et en rejetant des raisonnements comme
celui par l’absurde, on se limite vraiment. David Hilbert en 1928 déclarait : «. . . Ôter la loi du tiers-exclu au mathématicien reviendrait à priver
l’astronome de son télescope et le boxeur de son poing . . .».
Si, en plus, on décide de rejeter la négation comme le fait Griss, on a encore moins de puissance d’expression. Néanmoins, l’école a reconstruit inutilement mais avec des méthodes très différentes la plupart des résultats
mathématiques connus. Ce fut un travail long, extrêmement fastidieux,
difficile et réalisé en marge de la communauté mathématique internationale. Ainsi, l’école intuitionniste n’a pratiquement pas eu droit de citer en
France où le pragmatisme l’a emporté.
9.1
Le raisonnement intuitionniste
Il reste alors la logique intuitionniste. Celle-ci est certes moins puissante
que la logique classique. Les résultats intuitionnistes peuvent être obtenus
par la logique classique mais la réciproque n’est pas vraie. En revanche,
les démonstrations intuitionnistes sont constructives : pour savoir si un
résultat classique est aussi intuitionniste, on peut et on doit bien sûr
le redémontrer avec l’axiomatisation intuitionniste mais on peut aussi
préalablement vérifier que ce résultat est intuitivement valable vis-à-vis
de la sémantique des preuves de Heyting.
Par exemple, on peut déduire classiquement (A ∧ B ⇒ C) de
(A ⇒ B ⇒ C). Ce résultat a-t-il un sens en terme de sémantique de Heyting ? Si p est un processus effectivement calculable prenant un argument
x, on note p(x) l’application du processus p à l’argument x et son résultat. Une preuve de (A ⇒ B ⇒ C) est un processus p qui transforme une
preuve a en une preuve p(a) de (B ⇒ C). Et p(a) est un processus qui
transforme une preuve b de B en une preuve p(a)(b) de C. Supposons
à présent que j’aie une preuve x de A ∧ B, alors x est une paire formée
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
20
CHAPITRE I. INTRODUCTION À LA LOGIQUE
de π1 (x), preuve de A, et π2 (x), preuve de B. Je définis le processus q(x)
par « calculer a = π1 (x), calculer y = p(a), calculer b = π2 (x), calculer
y(b) ». Clairement puisque p et les deux projections π1 , π2 sont calculables
alors q est aussi calculable. Par ailleurs, puisque a est une preuve de A, y
est une preuve de (B ⇒ C). Puisque b est une preuve de B, y(b) est une
preuve de C. On a donc q, processus effectivement calculable défini par
q(x) = p(π1 (x))(π2 (x)), qui transforme toute preuve de A ∧ B en preuve
de C. On peut donc raisonnablement penser que le résultat de départ est
aussi un résultat intuitionniste.
Un exemple de théorème classique mais non intuitionniste cité par
J-Y. Girard est la formule suivante ∃x · (∀y · A(x) ⇒ A(y)). Cette formule
peut sembler paradoxale, elle dit qu’il existe un x tel que si cet objet x
possède une propriété A alors tous les autres objets la possèdent. Par
exemple, il existe un homme sur la terre tel que s’il porte un chapeau tous
les autres hommes portent aussi un chapeau. La justification classique est
la suivante : si tous les hommes portent un chapeau, prenons-en un au
hasard et il sera cet x pour qui le résultat est évidemment vrai puisque
tous les hommes y portent un chapeau. Si au moins un homme ne porte
pas de chapeau, prenons cet homme pour x et de nouveau tout se passe
bien puisque l’on peut toujours écrire A(x) ⇒ A(y) puisque A(x) n’est
pas vrai. On peut bien sûr démontrer rigoureusement ce résultat avec les
axiomes de la logique classique. Un examen de cette formule en terme
de sémantique des preuves de Heyting permet de constater qu’il ne peut
exister de preuve intuitionniste de cette formule.
Il reste, et nous le verrons plus loin, que l’on peut transformer toute
preuve intuitionniste d’existence d’un objet vérifiant certaines propriétés
en un programme calculant un objet ayant ces propriétés. Bien évidemment, les preuves intuitionnistes sont plus difficiles à construire que les
preuves classiques.
10
Différents ordres de logique
On distingue différents ordres dans les logiques. Seuls les trois premiers semblent présenter un intérêt. Nous verrons des systèmes de chacun
d’eux.
– La logique d’ordre 0, ou Logique des propositions, est la logique s’occupant uniquement de la combinaison des propositions indépendamPatrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
11 La logique linéaire
21
ment de leurs sens. La combinaison se fait à l’aide des connecteurs
classiques ∧ (conjonction), ∨ (disjonction), ⇒ (implication), etc.
– La logique d’ordre 1, ou Logique des prédicats, suppose un domaine
formé d’objets constants, des fonctions sur les objets de ce domaine
et des prédicats concernant les objets du domaine. Elle introduit
des variables d’individus qui parcourent le domaine et les deux
quantifications universelle ∀x · A(x) et existentielle ∃x · A(x).
– La logique d’ordre 2 introduit des variables de prédicats ou variable
de relations parcourant l’ensemble des relations entre objets. Il est
bien entendu possible de quantifier sur les relations. Sa puissance
d’expression est bien supérieure à celle de la logique des prédicats.
Elle permet par exemple d’exprimer l’axiome de récursivité :
∀P · [P (0) ∧ (∀x · P (x) ⇒ P (x + 1)) ⇒ ∀x · P (x)]
– La logique d’ordre 3 permet de quantifier sur les relations entre
relations, celle d’ordre 4 sur les relations entre relations de relations,
et ainsi de suite. Elles n’ont pas d’utilité évidente.
11
La logique linéaire
La Logique Linéaire est le résultat des travaux au long cours du logicien français Jean-Yves Girard. Celui-ci poursuit des buts divers qui sont
exposés dans les sections introductives de ses différents articles et livres.
Ses études très profondes des mécanismes de la logique et de la démonstration valent indépendamment de la Logique Linéaire.
11.1
Intensionalité et extensionalité
Un objet mathématique est défini en intention s’il est défini par un
processus de type algorithmique dans chacun de ses détails.
Un objet mathématique est défini en extension s’il est défini globalement par des considérations extérieures, c’est-à-dire que la définition ne
permet pas d’exhiber directement l’objet.
Exemple. L’exemple le plus simple de ces deux notions apparaît avec
les fonctions. On peut écrire différents algorithmes qui calculeront, de
manières différentes, une même fonction. Ainsi :
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
22
CHAPITRE I. INTRODUCTION À LA LOGIQUE
– (λ+ n·(/(× n (s n))2) calcule la somme des n premiers entiers naturels
lorsque n est un entier de Church ;
– mais on peut également se baser sur la définition récursive :
f (n) ≡ si n = 0 alors 0 sinon n + f (n − 1) finSi
pour obtenir le terme Y (λ+ f · (λ+ n · (z n 0 (+ n (f (p n)))))).
Ces deux définitions sont des définitions en intention de la fonction qui
calcule la somme des n premiers entiers naturels car, en plus de désigner
cette fonction, chacune de ces définitions donne un moyen déterminé de
la calculer.
Lorsque l’on dit «la fonction qui calcule la somme de n premiers
entiers», on désigne la même fonction mais on ne donne aucun moyen
de la calculer. C’est une définition en extension mais qui reste informelle.
La définition mathématique en extension de la même fonction est la
définition de son graphe, c’est-à-dire de l’ensemble des couples (x, y) où x
est un argument possible de la fonction et y le résultat pour cet argument.
11.2
Logique et intentionnalité
Pour J-Y. Girard, la logique en général, par ses aspects syntaxiques
et formels, est intentionnelle. Ainsi prouver (A ∨ B) ∨ C et prouver
A ∨ (B ∨ C), c’est prouver deux formules logiquement équivalentes mais
qui conservent dans leur syntaxe des traces de leurs preuves : les parenthèses.
J-Y. Girard remarque que «la syntaxe représente un objet et une manière
de le décomposer». Dans le cas de logique, la syntaxe d’une formule,
cf. l’exemple ci-dessus, garde la trace de la manière dont on a prouvé
cette formule. Mais une fois réussie la démonstration de cette formule,
on devrait pouvoir «oublier sa preuve» et considérer de manière simple
A ∨ B ∨ C car cette formule est bien celle que l’on a prouvée. Mais même
ainsi, la syntaxe conserve un ordre dans la formule : A puis B puis C.
Là aussi se dissimule une trace de la preuve. La logique lie donc de
manière très forte l’histoire de la formule, c’est-à-dire la manière dont on
l’a prouvée, et sa syntaxe.
La même remarque s’applique aussi bien à la logique intuitionniste.
Nous verrons lors de l’étude du calcul des séquents intuitionnistes que
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
11 La logique linéaire
23
le caractère intuitionniste de la logique est obtenu par des artifices syntaxiques.
L’un des buts de J-Y. Girard est d’essayer de faire disparaître ces informations redondantes au caractère évidemment intentionnel «en recherchant des régularités derrière l’arbitraire apparent de la syntaxe». Pour
cela, il développera sa Géométrie de l’interaction permettant de donner
une sémantique nouvelle aux preuves des systèmes logiques et plus précisément à la Logique Linéaire.
Citons pour le plaisir cette phrase de J-Y. Girard : «. . . Les intuitionnistes ont conservé la distinction intentionnel/extensionel avec le manque
d’imagination d’un copiste du moyen-âge . . .» 4 . Nous en citerons d’autres
tant la manière d’argumenter de J-Y. Girard est empreinte d’originalité.
11.3
Actions et situations
J-Y. Girard remarque que la logique mathématique, aussi bien classique qu’intuitionniste, raisonne dans un monde de vérités éternelles et
immuables. Ainsi, si l’on a A ⇒ B et A qui sont prouvés, on peut en déduire B mais... A est toujours vraie.
Cela est parfait en mathématiques où une vérité telle que «2 est pair» est
vraie et restera vraie. Cela ne l’est pas dans la vie courante où l’implication
est causale. En logique mathématique, A ⇒ B est une proposition vraie
si B est vraie lorsque A est vraie. Il n’y a aucune relation de causalité.
Mais pour tout un chacun, l’implication doit être causale et son utilisation
modifie généralement l’hypothèse A dans un processus appelé réaction.
11.4
En résumé...
En résumé, la logique linéaire prend en compte la notion d’hypothèse
consommable. Cela s’obtient en supprimant des règles de la logique classique. Cependant, le but ultime de J-Y. Girard est d’ordre plus théorique :
il veut une logique débarrassée de ses tares héréditaires. Nous avons exposé une de ces tares : l’intentionnalité. L’exposé complet du point de vue
de J-Y. Girard prendrait des dizaines de pages.
4. L’une de mes amies, historienne, m’a fait la remarque que, pour bien tournée que
soit cette phrase, les copistes du moyen-âge avaient beaucoup trop d’imagination quand
ils recopiaient les manuscrits . . .
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
24
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
25
II
F ORMALISMES LOGIQUES
Citons
INTRODUCTION TO METAMATHEMATICS
S.C. Kleene
Biblioteca Mathematica, North Holland
1952
et
PROOFS AND TYPES
J.Y. Girard & Y. Lafont & P. Taylor
Cambridge Tracts in T.C.S., Cambridge, Angleterre
1989
et
LOGIQUE, RÉDUCTION, RÉSOLUTION
R. Lalement
Études et recherches en Informatique, Masson, Paris
1990
La logique étant ce qu’elle est avec ses connecteurs et ses quantificateurs, on la présente en tant que système formel. Mais il existe différents
types de systèmes formels, l’important étant que les règles soient de nature
purement syntaxique. Nous allons passer en revue différentes manières de
présenter une théorie logique.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
26
1
CHAPITRE II. FORMALISMES LOGIQUES
Formules et syntaxe
Le langage de la logique des prédicats comprend et étend celui de
la logique des propositions. C’est un langage du premier ordre qui fut
introduit par Frege en 1879. Un langage du premier ordre permet de
décrire un domaine dans lequel des objets atomiques sont représentés par
des constantes et où l’on peut exprimer d’autres objets par des termes
fonctionnels. Des prédicats permettent de décrire des propriétés de ces
objets.
1.1
Vocabulaire
Le langage de la logique du premier ordre utilise :
– un ensemble dénombrable de constantes notées avec les lettres
a, b, c, . . . éventuellement indicées par des entiers ;
– un ensemble dénombrable de fonctions ayant une arité, nombre d’arguments, et notées avec les lettres f, g, h, . . . éventuellement indicées
par des entiers ;
– un ensemble dénombrable de variables d’individus notées avec les
lettres x, y, z, . . . éventuellement indicées par des entiers ;
– un ensemble dénombrable de prédicats ayant une arité, nombre d’arguments, et notés p, q, r, . . . éventuellement indicées par des entiers ;
– un ensemble dénombrable de variables propositionnelles notées avec
les lettres A, B, C, . . . éventuellement indicées par des entiers ;
– le connecteur unaire de négation noté ¬ ;
– les connecteurs binaires de conjonction noté ∧, de disjonction noté ∨,
d’implication noté ⇒ ;
– le quantificateur universel noté ∀, le quantificateur existentiel noté ∃ ;
– les parenthèses ( et ) ou bien [ et ], le point · ;
– éventuellement d’autres connecteurs.
1.2
Les termes
Les termes désignent les objets du langage :
– toute variable d’individu est un terme ;
– toute constante est un terme ;
– si f est une fonction d’arité n ≥ 0 et si t1 , . . . , tn sont des termes alors
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
1 Formules et syntaxe
27
l’application f (t1 , . . . , tn ) est un terme ;
– (règle de fermeture).
1.3
Les formules propositionnelles
Les formules de la logique des propositions ou logique d’ordre zéro
sont définies par induction :
– toute variable propositionnelle est une formule ;
– si A est une formule, (¬A) est une formule ;
– si A et B sont des formules, (A ∧ B), (A ∨ B) et (A ⇒ B) sont des
formules.
La logique des propositions étudie simplement les relations entre les
propositions indépendamment du sens des propositions. On ne considère
pas de domaine particulier.
1.4
Les formules du premier ordre
Les formules de la logique des prédicats sont définies par induction :
– toute variable propositionnelle est une formule ;
– si p est un prédicat d’arité n ≥ 0 et si t1 , . . . , tn sont des termes alors
l’application p(t1 , . . . , tn ) est une formule ;
– si A est une formule, (¬A) est une formule ;
– si A et B sont des formules, (A ∧ B), (A ∨ B) et (A ⇒ B) sont des
formules ;
– si x est une variable d’individu et si A est une formule, (∀x · A) et
(∃x · A) sont des formules ;
– (règle de fermeture).
1.5
Conventions syntaxiques
Afin de supprimer certaines paires de parenthèses dans l’écriture des
formules, on admet les conventions syntaxiques suivantes :
– les connecteurs ∧ et ∨ ont associatifs à gauche. Donc :
A ∧ B ∧ C ≡ ((A ∧ B) ∧ C) ;
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
28
CHAPITRE II. FORMALISMES LOGIQUES
– le connecteur ⇒ est associatif à droite. Donc :
A ⇒ B ⇒ C ≡ (A ⇒ (B ⇒ C)) ;
– le connecteur de négation ¬ est syntaxiquement plus prioritaire que
les connecteurs binaires ∧ et ∨ qui sont eux-mêmes plus prioritaires
que ⇒, lui-même plus prioritaire que les quantificateurs. Donc :
¬A ∧ B ≡ ((¬A) ∧ B) ;
A ∧ B ⇒ ¬C ∨ D ≡ ((A ∧ B) ⇒ ((¬C) ∨ D)).
Par ailleurs on autorisera d’utiliser les crochets [ et ] en lieu et place des
parenthèses pour rendre une formule plus lisible.
1.6
Variables libres et liées
Les variables libres et liées dans une formule sont définies comme en λcalcul pour les termes. Les opérateurs liants sont les quantificateurs ∀ et ∃.
On notera F V (A) l’ensemble des variables libres d’une formule A.
F V (A) est défini par induction :
– F V (X) = ∅ si X est une variable propositionnelle ;
– F V (p(t1 , . . . , tn )) = {x1 , · · · , xm } où x1 , · · · , xm sont les variables
ayant au moins une occurrence dans t1 , · · · , tn ;
– F V (¬A) = F V (A) ;
– F V (A ∧ B) = F V (A ∨ B) = F V (A ⇒ B) = F V (A) ∪ F V (B) ;
– F V (∀x · A) = F V (∃x · A) = F V (A) − {x}.
Une variable qui possède une occurrence dans une formule et n’est pas
libre dans cette formule est dite liée.
Dans une même formule, une même variable peut avoir des occurrences libres et des occurrences liées. Par exemple, dans la formule
(x = 0) ∧ (∀x · x + 0 = 0), la première occurrence de x est libre et la
deuxième occurrence est liée.
Une occurrence libre de x dans A devient liée dans ∀x · A, on dit qu’elle
est liée par le quantificateur ∀. La même remarque s’applique avec le
quantificateur ∃.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
1 Formules et syntaxe
1.7
29
Renommage des variables liées
La principale caractéristique des variables liées est que l’on peut les
renommer sans changer le sens de la formule à condition de prendre
comme nouveau nom une nouvelle variable.
Exemple II.1 Les formules ∀x · x + 0 = x et ∀y · y + 0 = y ont le même sens.
Pour obtenir la deuxième, il faut renommer x en y.
Contre exemple II.2 Prenons la formule vraie suivante :
∀x · ∃y · (y + y = x) ∨ (y + y + 1 = x).
Si nous renommons x en y, nous obtenons la formule fausse :
∀y · ∃y · (y + y = y) ∨ (y + y + 1 = y).
Cela montre qu’on ne peut pas renommer une variable aussi simplement qu’on le
souhaite.
Terminologie II.3 Le renommage de variable est appelé α-conversion dans la
terminologie du λ-calcul.
1.8
Substitution
La substitution d’un terme t aux occurrences libres d’une variable
d’individu x dans une formule A est définie à la manière du λ-calcul. Elle
est notée [t/x]A, à lire t à la place de x dans A. La substitution, étendue
aux termes, est définie par les règles suivantes :
– [t/x]x ≡def t ;
– [t/x]a ≡def a si a est un atome, variable ou constante, différent de x ;
– [t/x]f (t1 , . . . , tn ) ≡def f ([t/x]t1 , . . . , [t/x]tn ) si f est une fonction
d’arité n et t1 , . . . , tn sont des termes ;
– [t/x]p(t1 , . . . , tn ) ≡def p([t/x]t1 , . . . , [t/x]tn ) si p est un prédicat
d’arité n et t1 , . . . , tn sont des termes ;
– [t/x]X ≡def X si X est une variable propositionnelle ;
– [t/x](¬A) ≡def ¬([t/x]A) si A est une formule ;
– [t/x](A ∧ B) ≡def ([t/x]A) ∧ ([t/x]B) si A et B sont des formules ;
– [t/x](A ∨ B) ≡def ([t/x]A) ∨ ([t/x]B) si A et B sont des formules ;
– [t/x](A ⇒ B) ≡def ([t/x]A) ⇒ ([t/x]B) si A et B sont des formules ;
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
30
CHAPITRE II. FORMALISMES LOGIQUES
– [t/x](∀y · A) ≡def ∀y · [t/x]A si y est une variable et A une formule et
si x ∈
/ F V (∀y · A) ou si y ∈
/ F V (t) ;
– [t/x](∀y · A) ≡def ∀z · ([t/x][z/y]A) si y est une variable et A une
formule et où z est une nouvelle variable introduite pour renommer y (α-conversion) ;
– [t/x](∃y · A) ≡def ∃y · [t/x]A si y est une variable et A une formule et
si x ∈
/ F V (∃y · A) ou si y ∈
/ F V (t) ;
– [t/x](∃y · A) ≡def ∃z · ([t/x][z/y]A) si y est une variable et A une
formule et où z est une nouvelle variable introduite pour renommer y (α-conversion).
La substitution, dans le cas général, est une opération complexe comme
le montrent les quatre dernières règles que l’on retrouve également dans
la substitution du λ-calcul :
– [t/x](λy · A) ≡def λy · [t/x]A si y est une variable et A une formule et
si x ∈
/ F V (∃y · A) ou si y ∈
/ F V (t) ;
– [t/x](λy · A) ≡def λz · ([t/x][z/y]A) si y est une variable et A une
formule et où z est une nouvelle variable introduite pour renommer y (α-conversion).
Sans les gardes-fous introduits par ces deux règles, la substitution ne
fonctionne pas. Il est utile de rappeler que des logiciens, et parmi les
meilleurs se sont cassés les dents sur la substitution.
Notation II.4 La substitution de t à x dans une formule ou un terme A que
nous avons notée [t/x]A, en suivant les notations de J.R. H INDLEY, est parfois
notée A[t/x] ou [x/t]A.
2
Systèmes de preuves
Une fois le langage défini, il existe plusieurs manières de présenter les
axiomes et les preuves d’un système logique et ceci, indépendamment de
la nature de la logique : classique, intuitionniste, linéaire, etc. Nous allons
examiner les systèmes suivants :
–
–
–
–
les systèmes hilbertiens ;
les systèmes de déduction naturelle ;
les calculs des séquents ;
les systèmes de déduction naturelle en calcul des séquents.
qui sont énumérés dans l’ordre chronologique de leurs apparitions.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
2 Systèmes de preuves
31
Dans un système de preuve, on prouve certaines formules. Elles sont
appelées des jugements. Un jugement prouvé est un théorème. Ces formules
peuvent être les formules de la logique ou d’autres formules. Ainsi le
calcul des séquents ne prouve pas directement des formules de la logique
mais des séquents qui sont des objets légèrement plus complexes. Pour
prouver ces formules, le système propose un ensemble d’axiomes ou de
schémas d’axiomes et des règles d’inférence. Les preuves ont la forme
d’arbres.
2.1
Axiomes
Les axiomes sont des formules considérées comme vraies a priori.
Exemple II.5 La formule :
∀x · x + 0 = x
peut être un axiome de l’arithmétique.
2.2
Schémas d’axiomes
Dans un schéma d’axiomes, on utilise des méta-variables qui sont définies par leurs noms et leurs domaines qui doivent être dénombrables.
On donne alors une formule utilisant ces méta-variables. Cette formule
désigne en fait la famille des formules obtenues en donnant aux métavariables toutes les valeurs de leurs domaines. Toutes ces formules sont
alors considérées comme des axiomes.
Exemple II.6 Ainsi le schéma d’axiomes :
X +Y =Y +X
où X et Y sont des méta-variables parcourant l’ensemble des entiers naturels
pourrait être un schéma d’axiomes de l’arithmétique. Ce schéma d’axiomes désigne comme axiomes l’ensemble des formules obtenues en donnant à X et Y
toutes les valeurs qu’elles peuvent prendre. Ce schéma d’axiomes désigne donc
l’infinité d’axiomes :
0+0=0+0
1+0=0+1
2+0=0+2
..
.
0+1=1+0
1+1=1+1
2+1=1+2
..
.
0+2=2+0
1+2=2+1
2+2=2+2
..
.
0+3=3+0
1+3=3+1
2+3=3+2
..
.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
0 + 4 = 4 + 0 ···
1 + 4 = 4 + 1 ···
2 + 4 = 4 + 2 ···
..
.
32
CHAPITRE II. FORMALISMES LOGIQUES
Les méta-variables sont usuellement notées avec des lettres majuscules
pour les distinguer des variables. Les variables font partie du langage de
la théorie tandis que les méta-variables font partie du méta-langage de
la théorie, c’est-à-dire du langage qui permet de parler de la théorie. De
fait, le schéma d’axiomes n’est pas un élément de la théorie mais il permet
de désigner un certain nombre d’axiomes, une infinité dans l’exemple cidessus, qui eux font partie de la théorie.
On introduit des schémas d’axiomes plutôt que des axiomes lorsqu’on
ne veut pas introduire d’opérateurs liants comme les quantificateurs. C’est
le cas avec la Logique Combinatoire où l’on se donne les deux schémas
d’axiomes (S) et (K) où := est le symbole de réduction :
(S)
(K)
S X Y Z := X Z (Y Z)
K X Y := X
On peut également rajouter I avec l’axiome :
(I)
I X := X
mais ce n’est pas absolument nécessaire puisque l’on peut définir I par
I ≡def S K K.
On introduit aussi des schémas d’axiomes plutôt que des axiomes
lorsqu’il se créerait des interférences entre différents opérateurs liants.
C’est le cas en λ-calcul entre un éventuel quantificateur sur les termes et
l’opérateur λ.
Enfin, on introduit des schémas d’axiomes lorsqu’on ne peut pas quantifier sur le domaine des méta-variables. C’est le cas en logique classique
où l’on introduira le schéma d’axiomes :
A ∨ ¬A
(tiers − exclu)
où A est une méta-variable parcourant l’ensemble des formules sur lequel
on ne peut pas quantifier en logique du premier ordre.
2.3
Règles d’inférence
Une règle d’inférence s’écrit sous la forme :
H1
···
H2
Hn
C
(r)
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
2 Systèmes de preuves
33
où (r) est le nom de la règle, H1 , H2 , . . . , Hn sont des hypothèses ou prémisses et C est la conclusion. Une telle règle signifie que si H1 , H2 , . . . , Hn
sont toutes prouvées alors la conclusion C est aussi prouvée.
Exemple II.7 Dans une axiomatisation de l’arithmétique avec un prédicat d’égalité, on pourra avoir les règles d’inférence suivantes exprimant la symétrie et la
transitivité de l’égalité :
X=Y
Y =X
2.4
(sym)
X=Y
Y =Z
X=Z
(tr)
Démontrer un théorème
Dans un système ayant des axiomes et des règles d’inférence, une
preuve se présente normalement sous la forme d’un arbre. L’arbre est
présenté racine en bas et feuilles en haut.
La racine de l’arbre est le théorème démontré.
Les feuilles de l’arbre sont des axiomes.
On passe des fils d’un nœud au nœud père par l’utilisation de l’une des
règles d’inférence.
Exemple. Pour démontrer que S S (K I) f x
Combinatoire, on écrit l’arbre suivant :
:=
f x x en Logique
(K) K I f := I
(al)
(S) S S (K I) f := S f (K I f ) S f (K I f ) := S f I
(I) I x := x
(tr)
S S (K I) f := S f I
(al)
(S) S f I x := f x (I x) f x (I x) := f x x
(ar)
S S (K I) f x := S f I x
(tr)
S f I x := f x x
(tr)
S S (K I) f x := f x x
Ceci est une preuve rigoureuse et formelle de S S (K I) f x := f x x.
Une autre preuve rigoureuse mais non formelle est obtenue en écrivant :
S S (K I) f x := S f (K I f ) x := S f I x := f x (I x) := f x x
mais cette preuve n’est pas réalisée dans le système formel.
N.B. L’intérêt de cette formalisation des preuves sous forme d’arbre est en
partie qu’elle permet des raisonnements sur les preuves : raisonnement
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
34
CHAPITRE II. FORMALISMES LOGIQUES
par récurrence sur la hauteur de l’arbre, raisonnement par induction sur
la structure de l’arbre, raisonnement sur la dernière règle utilisée (la règle
utilisée pour obtenir la racine de l’arbre).
2.5
Extensions d’une théorie
Le système formel est constitué d’un certain nombre d’axiomes et
de règles d’inférences. On peut vouloir considérer d’autres règles. Étant
donnée une autre règle, plusieurs cas peuvent se produire.
a)
Extensions inconsistantes
La nouvelle règle peut être incompatible avec les règles existantes.
C’est-à-dire que l’ajout de cette nouvelle règle rend toutes les formules
vraies.
Exemple. Si l’on rajoute à la théorie un axiome S = K, la théorie devient
inconsistante. En effet :
X =
=
=
=
=
=
=
IX
KIIX
K I I (K X I)
S (K I) (K X) I
K (K I) (K X) I car S = K
KII
I
Ce qui montre qu’alors tout terme X est égal à I. Donc tous les termes sont
deux à deux égaux et toutes les formules X = Y sont des théorèmes.
b)
Extensions dérivables
La nouvelle règle n’apporte pas de nouveaux théorèmes. Les formules
qui étaient vraies le restent. Les formules qui étaient fausses le restent
aussi. Cela signifie que toute utilisation de la nouvelle règle peut être
remplacée par un bout d’arbre utilisant les anciennes règles. On parle alors
d’extension dérivables.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
2 Systèmes de preuves
35
Exemple. Si on rajoute à la Logique Combinatoire une règle :
M = N
N := L
M = L
(eq − red − tr)
alors on n’apporte aucun nouveau théorème.
Pour se rendre compte que l’extension est dérivable, il suffit de montrer
que toute utilisation de la nouvelle règle peut être remplacée par des
utilisations des anciennes règles. On dit que la nouvelle règle est dérivable
à partir des anciennes.
Exemple. La règle donnée ci-dessus peut être dérivée :
N := L
M = N
N =L
M =L
c)
(eq − red)
(eq − tr)
Extensions consistantes
Si l’ajout de la règle amène de nouveaux théorèmes sans introduire
d’inconsistance alors la nouvelle théorie est dite consistante.
Exemple. Si on rajoute à la Logique Combinatoire la règle :
Mx = Nx
M = N
(ext) x ∈
/ F V (M ) ∪ F V (N )
on obtient une nouvelle théorie, la Logique Combinatoire extensionnelle,
dans laquelle les anciens théorèmes restent vrais mais qui possède de nouveaux théorèmes. Ainsi dans cette nouvelle théorie on aura le théorème
S (K I) I = S K K obtenu par (ext) puisque S (K I) I x = S K K x.
Mais ce théorème n’est pas vrai sans la règle (ext) puisque S (K I) I et
S K K sont deux formes normales syntaxiquement différentes.
d)
Extensions conservatives
On peut étendre la théorie en en augmentant également le langage.
Exemple. Ainsi, on peut considérer la Logique Combinatoire avec uniquement l’opération de réduction et donc uniquement les formules de la
forme M := N . C’est une théorie. On peut l’étendre avec le symbole
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
36
CHAPITRE II. FORMALISMES LOGIQUES
d’égalité et considérer les formules de la forme M = N . On ajoutera les
trois axiomes relatifs à l’égalité. On obtient alors une nouvelle théorie.
Une telle extension est dite conservative si toute formule de la théorie
non étendue démontrable dans la théorie étendue l’est aussi dans la
théorie non étendue.
Exemple. La Logique Combinatoire avec égalité est une extension conservative de la Logique Combinatoire avec uniquement la réduction car toute
formule M := N démontrable dans la Logique Combinatoire avec égalité
peut l’être dans la Logique Combinatoire avec uniquement la réduction.
N.B. Notons que toute extension conservative d’une théorie consistante
est elle-même consistante.
2.6
a)
Systèmes formels et logiques
Système formel
Ce dont nous avons parlé jusqu’à présent dépasse le cadre de la logique. Nous avons en fait décrit ce qu’est un système formel. Un système
formel est la donnée d’un alphabet, d’un procédé de construction de formules, ou jugements, et d’un ensemble d’axiomes et de règles d’inférence permettant de déterminer lesquelles parmi les formules sont des théorèmes.
Un aspect important est que ces axiomes et ces règles sont formels, c’està-dire que leurs contenus ne reposent que sur la forme des formules ou,
plus précisément, sur leur syntaxe.
b)
Vérification des preuves
Que les axiomes et règles soient formels ne rend pas plus simple ni
automatique la recherche de preuves, sauf quelques cas particuliers que
nous verrons plus loin. En revanche, cet aspect formel rend possible la
vérification automatique d’une preuve. Étant donné un arbre de preuve
et des axiomes et règles, il est possible de déterminer par des procédés
purement syntaxiques, donc automatisables, pour savoir si cet arbre de
preuve est bien construit en respectant les axiomes et les règles.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
3 Déduction naturelle
c)
37
Logiques
Les théories logiques sont, sauf exception, des systèmes formels particuliers. Selon J-Y. Girard, père de la Logique Linéaire, un système formel
peut être appelé une logique s’il possède la règle de coupure, cut rule, (ou
son équivalent) et la propriété d’élimination des coupures, connue sous le
nom savant de Hauptsatz, (ou son équivalent) que nous verrons plus loin.
3
Déduction naturelle
La présentation axiomatique de la logique par Hilbert tire des conséquences d’axiomes mais ce n’est pas ainsi que raisonne l’homme. Jan Lukasiewicz, dès 1929, fait remarquer que les hommes ignorent les axiomes
de la logique de Hilbert mais que cela ne les empêche pas de raisonner. Ils
procèdent par des déductions faites à partir d’hypothèses et leurs énoncés
sont de la forme :
La conclusion C se déduit des hypothèses H1 , . . . , Hn
Lukasiewicz suggéra de formaliser cette logique naturelle du discours
et cela fut fait par Stanislas Jaskowski (1934) et surtout Gerhard Gentzen (1933). Le résultat de cette formalisation mathématique s’appelle un
système de déduction naturelle.
Par la suite, il s’avéra que cette logique « naturelle » formalisée était
plus commode que la logique axiomatique de Hilbert même si elle n’apporte pas de théorèmes supplémentaires. De plus, elle permettait d’obtenir des résultats importants à propos de la logique tels que le Hauptzatz
de Gentzen que nous verrons au chapitre~III. Ce type de résultat est une
propriété des systèmes logiques et non un théorème démontré dans le système logique. Il s’agit d’une branche des mathématiques appelée théorie
de la preuve.
3.1
La preuve en déduction naturelle
Un système de déduction naturelle est un formalisme présentant les
preuves de manière plutôt naturelle en ce sens qu’il est relativement
intuitif de rédiger une preuve. Une preuve est une déduction composée
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
38
CHAPITRE II. FORMALISMES LOGIQUES
de formules positionnées en arbre, les unes en dessous des autres. Une
formule est une conséquence des formules qui sont au-dessus d’elles. On
les sépare par un trait horizontal. La forme générale d’une preuve d’une
formule A est donc :
..
.
A
La présence du trait horizontal n’est pas nécessaire lorsqu’il n’y a qu’une
seule formule au-dessus de A mais il peut cependant faciliter la relecture
de la preuve.
3.2
Axiomes dans une déduction
La ou les formules en haut des déductions sont des axiomes ou des
hypothèses. Si une formule est un axiome, cela signifie qu’une des règles
du système l’a donnée comme étant vraie a priori.
Exemple. Si l’on se place en logique classique, un axiome est celui du
tiers exclu, tertium non datur pour faire beau, qui dit qu’une formule est
soit vraie soit fausse, hypothèse de l’infini actuel de Platon-Cantor, soit :
A ∨ ¬A.
3.3
Hypothèses dans une déduction
La ou les formules en haut des déductions sont être des hypothèses.
Ainsi, on démontre qu’une formule est vraie à la condition que les hypothèses le soient. Une formule entre crochets est dite déchargée, elle
ne compte plus parmi les hypothèses actives. Une même hypothèse peut
avoir plusieurs occurrences dans la preuve. Par exemple, une démonstration de la formule A sous l’hypothèse A s’écrira :
A
A
voire tout simplement A (l’hypothèse A établit A). Par contre la démonstration de A ⇒ A ne compte plus d’hypothèse active :
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
3 Déduction naturelle
39
[A]
A
A⇒A
3.4
Les règles d’un système de déduction naturelle
En dehors des axiomes, chaque connecteur est pourvu de plusieurs
règles classées en règles d’introduction et règles d’élimination. Une règle
d’introduction est une règle dont la formule conclusion contient ce connecteur. Une règle d’élimination est une règle prenant en hypothèse au moins
une formule contenant ce connecteur et produisant en conclusion une formule où ce connecteur a disparu.
3.5
Règles de la logique des propositions
Voici les règles des connecteurs de la logique des propositions.
a)
Conjonction
..
.
A
..
.
B
A∧B
..
.
A∧B
A
b)
∧elim1
∧intro
..
.
A∧B
B
∧elim2
Disjonction
..
.
A
A∨B
∨intro1
..
.
B
A∨B
∨intro2
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
40
CHAPITRE II. FORMALISMES LOGIQUES
..
.
A∨B
[A]
..
.
[B]
..
.
C
C
∨elim
C
c)
Implication
[A]
..
.
..
.
A⇒B
B
A⇒B
⇒intro
..
.
A
B
⇒elim
N.B. Dans le règle ⇒intro , on dit que l’on décharge l’hypothèse A. En
fait, toutes les hypothèses A ayant servi à la démonstration de B sont
déchargées. Pour savoir par quelles règles les hypothèses sont déchargées,
on a souvent recours à un marqueur, exposant numérique que l’on ajoute
à l’hypothèse et au nom de l’occurrence de la règle qui décharge ces
hypothèses. On obtient alors quelque chose qui ressemble à ceci :
[A]k · · · [A]k
..
.
B
⇒kintro
A⇒B
d)
Négation classique
En logique classique, on peut utiliser au choix l’une des trois règles
suivantes qui sont deux à deux équivalentes :
A ∨ ¬A
tiers-exclu
..
.
¬¬A
A
¬¬
[¬A]
..
.
[¬A]
..
.
B
¬B
à laquelle on rajoute les règles suivantes :
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
A
(A)
3 Déduction naturelle
41
[A]
..
.
[A]
..
.
B
¬B
..
.
A
¬intro
¬A
..
.
¬A
B
¬elim
On remarquera que (A) est une forme du raisonnement par l’absurde :
en supposant que A est faux (¬A), on arrive à une contradiction car on a
prouvé B et ¬B, d’où on en conclut A.
Exemple. Montrons que l’on peut dériver la règle du tiers-exclu à partir
de la troisième règle (A) :
[¬A]
[¬(A ∨ ¬A)]
[¬A]
¬(A ∨ ¬A)
A ∨ ¬A
∨intro2
(A)
[¬(A ∨ ¬A)]
A
¬(A ∨ ¬A)
A ∨ ¬A
∨intro1
(A)
A ∨ ¬A
N.B. Relire cette démonstration n’est pas évident. La présence d’exposant
pour marquer les hypothèses déchargées et les règles qui les déchargent
améliorerait sûrement les choses. Nous verrons plus loin une autre présentation de ces déductions naturelles.
e)
Négation intuitionniste
On se rappelle que la négation intuitionniste est définie par
¬A ≡def A ⇒⊥ où ⊥ est un symbole représentant la contradiction. Il n’y
a pas de règle d’introduction de ⊥ mais une règle d’élimination appelée ex
falso quodlibet sequitur, soit «du faux on peut tout déduire» :
..
.
⊥
A
On peut également choisir alternativement d’introduire le connecteur
de négation ¬ avec une règle d’introduction et une règle d’élimination :
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
42
CHAPITRE II. FORMALISMES LOGIQUES
[A]
..
.
[A]
..
.
B
¬B
¬A
3.6
..
.
A
¬intro
..
.
¬A
B
¬elim
Règles de la logique des prédicats
Ces règles concernent les quantificateurs existentiel (∃) et universel (∀).
a)
Quantification universelle
..
.
A
∀x · A
∀intro
..
.
∀x · A
[t/x]A
∀elim
Dans la règle ∀intro , il faut que la variable x ne soit pas libre dans les
hypothèses servant à démontrer la formule A.
b)
Quantification existentielle
..
.
[t/x]A
∃x · A
∃intro
..
.
∃x · A
[A]
..
.
B
B
∃elim
Dans la règle ∃elim , la variable x ne doit pas être libre dans B.
3.7
Autre formulation des preuves
On peut présenter les preuves avec des dessins de la forme donnée par
la figure suivante. On peut réécrire les règles suivant ce format.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
3 Déduction naturelle
43
Hypothèse
Déductions où on
peut utiliser
l’hypothèse
Conclusion où l’hypothèse
est déchargée
La preuve donnée au sujet de la négation peut donc se réécrire de
manière plus lisible, voir figure suivante.
¬(A ∨ ¬A)
¬A
¬A
(hyp)
∨intro2
¬(A ∨ ¬A)
A ∨ ¬A
¬e
A
∨intro1
¬(A ∨ ¬A)
(hyp)
A ∨ ¬A
¬e
A ∨ ¬A
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
44
4
CHAPITRE II. FORMALISMES LOGIQUES
Les systèmes hilbertiens
On appelle système hilbertien un système dans lequel il n’y a que des
axiomes et une seule règle, la règle du modus ponens qui est en fait la règle
⇒elim :
A⇒B
B
A
(modus ponens)
Dans le cas de la logique des prédicats, on ajoutera deux nouvelles
règles nécessaires pour des raisons syntaxiques.
Un système hilbertien ressemble à un système de déduction naturelle
dans lequel on n’utiliserait pas la notion d’hypothèse.
4.1
a)
Axiomes pour la logique des propositions
Conjonction
A⇒B ⇒A∧B
b)
B ⇒A∨B
A ∨ B ⇒ (A ⇒ C) ⇒ (B ⇒ C) ⇒ C
Implication
A⇒B⇒A
d)
A∧B ⇒B
Disjonction
A⇒A∨B
c)
A∧B ⇒A
(A ⇒ (B ⇒ C)) ⇒ (A ⇒ B) ⇒ A ⇒ C
Négation classique
A ∨ ¬A
A ⇒ ¬A ⇒ B
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
4 Les systèmes hilbertiens
e)
45
Négation intuitionniste
Si l’on décide d’introduire un connecteur de négation ¬ :
(A ⇒ B) ⇒ (A ⇒ ¬B) ⇒ ¬A
A ⇒ ¬A ⇒ B
Si l’on décide d’introduire la contradiction ⊥ et de définir la négation
par ¬A ≡def A ⇒⊥ :
⊥⇒A
4.2
Exemple de preuve
L’exemple suivant, très classique, est là pour montrer que les démonstrations dans un système hilbertien peuvent devenir rapidement fastidieuses :
(A ⇒ (A ⇒ A) ⇒ A) ⇒ (A ⇒ A ⇒ A) ⇒ A ⇒ A
A ⇒ (A ⇒ A) ⇒ A
(A ⇒ A ⇒ A) ⇒ A ⇒ A
A⇒A⇒A
A⇒A
Pour comparaison, la même preuve en déduction naturelle :
[A]
A
A⇒A
⇒intro
On pourrait ajouter l’axiome A ⇒ A mais cela ne changerait rien. On
trouverait toujours des formules simples avec des preuves complexes.
4.3
Axiomes pour la logique des prédicats
Dans le cas des quantificateurs, nous sommes obligés de rajouter deux
nouvelles règles à cause des restrictions sur les variables libres.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
46
a)
CHAPITRE II. FORMALISMES LOGIQUES
Quantification universelle
A⇒B
A ⇒ ∀x · B
b)
x∈
/ F V (A)
∀x · A ⇒ [t/x]A
Quantification existentelle
[t/x]A ⇒ ∃x · A
A⇒B
∃x.A ⇒ B
5
x∈
/ F V (B)
Le calcul des séquents
Le calcul des séquents, dû à Gentzen dans les années 1930, est une manière de présenter la logique bien plus lourde que la déduction naturelle
mais elle permet en contre-partie de raisonner sur les preuves et possède
des qualités de symétrie que l’on ne retrouve pas ailleurs. Le résultat fondamental de la théorie de la preuve, le théorème d’élimination des coupures, a été obtenu à l’aide d’un calcul des séquents.
5.1
Les séquents
Les jugements démontrés en calcul des séquents ne sont plus de
simples formules de la logique mais des séquents. Un séquent est une expression de la forme :
A1 , . . . , An ` B1 , . . . , Bm
où A1 , . . . , An et B1 , . . . , Bm sont des formules. Intuitivement, un tel séquent signifie que si les formules A1 , . . . , An sont toutes vraies alors au
moins l’une des formules B1 , . . . , Bm est vraie. On pourrait signifier cela
par une formule :
A1 ∧ . . . ∧ An ⇒ B1 ∨ . . . ∨ Bm
disant que la conjonction des formules A1 , . . . , An implique la disjonction
des formules B1 , . . . , Bm mais cette analogie doit être prise avec précaution comme l’explique J-Y. Girard avec la Logique Linéaire.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
6 Le calcul des séquents classique
47
Notation. Dans la suite, Γ, ∆, Θ,. . . désignent des séquences éventuellement vides de formules du type A1 , . . . , An .
5.2
Les axiomes et les règles d’inférence
Les axiomes et règles d’inférence sont divisés en deux groupes :
– les règles structurelles qui ont pour fonction de déterminer le comportement des séquents ; c’est en jouant sur ces règles que l’on introduit
la Logique Linéaire ;
– les règles logiques qui déterminent les connecteurs et les quantificateurs de la logique.
J-Y. Girard prétend que c’est le groupe des règles structurelles qui détermine la presque-totalité du système. En particulier, c’est lui qui détermine certaines propriétés des connecteurs comme la commutativité ou la
distributivité.
5.3
La structure des règles
Alors que les systèmes de déduction naturelle utilise des règles d’introduction et d’élimination, les règles du calcul des séquents utilisent des
règles à gauche et des règles à droite.
Une règle à gauche est une règle qui permet d’introduire quelque
chose, connecteur ou quantificateur par exemple, dans la partie gauche
d’un séquent. Plus précisément on aura dans la partie gauche du séquent
conclusion de la règle quelque chose qui n’y était pas.
Une règle à droite est une règle qui permet d’introduire quelque chose,
connecteur ou quantificateur par exemple, dans la partie droite d’un séquent. Plus précisément on aura dans la partie droite du séquent conclusion de la règle quelque chose qui n’y était pas.
6
Le calcul des séquents classique
Les présentations en calcul des séquents des différentes logiques ont
des particularités importantes, c’est pourquoi il faut les présenter séparément.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
48
6.1
CHAPITRE II. FORMALISMES LOGIQUES
Les règles structurelles
La première des règles structurelles est la règle d’identité qui dit qu’on
peut déduire une formule d’elle-même :
A`A
La règle de coupure (cut) dont nous verrons qu’elle est redondante
(Hauptsatz de Gentzen, 1934) mais cependant bien pratique s’écrit :
Γ ` ∆, A Γ0 , A ` ∆0
Γ, Γ0 ` ∆, ∆0
Les deux règles suivantes sont les règles d’affaiblissement qui disent
que l’on peut rajouter une hypothèse inutile à gauche du séquent ou une
conclusion inutile à droite du séquent :
Γ`∆
Γ, A ` ∆
(af fg )
Γ`∆
Γ ` ∆, A
(af fd )
Les règles suivantes sont les règles de contraction qui disent que l’on
peut supprimer les formules dupliquées soit à gauche du séquent soit à
droite du séquent :
Γ, A, A ` ∆
Γ, A ` ∆
(cong )
Γ ` ∆, A, A
Γ ` ∆, A
(cond )
Enfin, les règles d’échange permettent de permuter deux formules soit à
gauche du séquent soit à droite du séquent :
Γ, A, B, ∆ ` Θ
Γ, B, A, ∆ ` Θ
(echg )
Γ ` ∆, A, B, Θ
Γ ` ∆, B, A, Θ
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
(echd )
6 Le calcul des séquents classique
6.2
49
Règles structurelles et linéarité
J-Y. Girard prétend que le comportement global d’un système logique
est entièrement contenu dans ses règles structurelles et ceci, presque indépendamment des règles définissant les connecteurs et les quantificateurs
de la logique.
Ainsi, par exemple, ce sont les règles d’échange qui définissent la
commutativité des connecteurs. Supprimer les règles d’échange revient
à supprimer cette commutativité. On se retrouve alors avec une logique
non-commutative.
Par ailleurs, la règle (af fg ) revient en quelque sorte à rajouter des hypothèses inutiles comme si elles n’avaient pas de valeurs. La règle (cong )
revient à pouvoir dupliquer librement une hypothèse. Tandis que les
règles (af fd ) et (cond ) reviennent à pouvoir traiter tout aussi librement
les conclusions des séquents en les dupliquant ou en en introduisant d’inutiles. En remarquant ceci après quelques autres, J-Y. Girard en a conclu
que la logique classique, et c’est aussi vrai pour la logique intuitionniste,
ne conçoit aucune valeur pour les formules. Cela est indubitablement vrai
pour les formules mathématiques comme « 2 est pair » qui, une fois qu’elle
a été démontrée, peut être dupliquée librement ou effacée puis retrouvée.
Mais dans la vie courante, dans les ordinateurs, les formules ont une valeur. « Je dispose d’un K-octets de mémoire » ne peut être dupliquée : si j’ai
un K-octets de mémoire, je n’en ai pas deux. Elle ne peut être effacée car
sinon je perds cette information. Et si je l’utilise pour prouver que je peux
ranger un tableau en mémoire par exemple, je dois la détruire puisqu’elle
a été utilisée pour ranger le tableau.
Donc la logique classique et la logique intuitionniste ne considèrent
pas les formules comme des ressources et sont donc inapplicables à des
problèmes informatiques par exemple. Si la logique intuitionniste est applicable aux programmes fonctionnels, c’est parce que ces programmes
se contentent de faire des calculs et ne réalisent aucune action. Les programmes fonctionnels peuvent eux être dupliqués à volonté. Ils possèdent
la propriété de transparence référentielle signifiant qu’on peut les exécuter quand on veut et autant de fois qu’on le veut sans que le résultat ne
change. Il n’ont pas d’effets de bord.
C’est en remarquant cette inadéquation des logiques classiques et intuitionnistes aux problèmes « réels » que J-Y. Girard a créé la Logique Linéaire
qui est obtenue principalement en « oubliant » les règles d’affaiblissement
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
50
CHAPITRE II. FORMALISMES LOGIQUES
et de contraction.
6.3
a)
Les règles logiques de la logique des propositions
Conjonction
Γ, A ` ∆
Γ, A ∧ B ` ∆
b)
Γ, B ` ∆
∧g1
Γ, A ∧ B ` ∆
Γ, Γ0 ` ∆, ∆0 , A ∧ B
∧d
Disjonction
Γ, A ` ∆
Γ0 , B ` ∆ 0
0
0
Γ, Γ , A ∨ B ` ∆, ∆
c)
Γ ` ∆, A
∨g
Γ ` ∆, A ∨ B
Γ, Γ0 , A ⇒ B ` ∆, ∆0
d)
Γ ` ∆, A ∨ B
⇒g
Γ, A ` ∆, B
Γ ` ∆, A ⇒ B
Négation
Γ ` ∆, A
Γ, ¬A ` ∆
6.4
Γ ` ∆, B
∨d1
Implication
Γ ` ∆, A Γ0 , B ` ∆0
a)
Γ ` ∆, A Γ0 ` ∆0 , B
∧g2
¬g
Γ, A ` ∆
Γ ` ∆, ¬A
¬d
Les règles logiques de la logique des prédicats
Quantification universelle
Γ, [t/x]A ` ∆
Γ, ∀x · A ` ∆
∀g
Γ ` ∆, A
Γ ` ∆, ∀x · A
∀d
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
⇒d
∨d2
7 Le calcul des séquents intuitionniste
b)
51
Quantification existentielle
Γ, A ` ∆
Γ, ∃x · A ` ∆
Γ ` ∆, [t/x]A
∃g
Γ ` ∆, ∃x · A
∃d
Dans les règles ∀d et ∃g , on suppose que x ∈
/ F V (Γ) ∪ F V (∆).
6.5
Exemple de démonstration
Démontrons formellement la règle du tiers-exclu :
A`A
[id]
` A, ¬A
(¬d )
` A , A ∨ ¬A
` A ∨ ¬A , A
(∨d2 )
(echd )
` A ∨ ¬A , A ∨ ¬A
` A ∨ ¬A
7
(∨d1 )
(cond )
Le calcul des séquents intuitionniste
Dans le calcul des séquents intuitionniste, on ne considère que des séquents ayant au plus une formule dans la partie droite. De fait certaines
règles du calcul des séquents classiques ne sont plus applicables et certaines doivent être modifiées pour des raisons de lisibilité.
N.B. La raison de cette restriction sur le nombre de formules dans la partie
droite d’un séquent sera explicitée plus loin dans la section~8, La logique
intuitionniste est constructive.
7.1
Les règles structurelles intuitionnistes
La règle identité est conservée :
A`A
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
52
CHAPITRE II. FORMALISMES LOGIQUES
La règle de coupure (cut) dont nous verrons qu’elle est redondante
(Hauptsatz de Gentzen, 1934) mais cependant bien pratique s’écrit :
Γ0 , A ` B
Γ`A
Γ, Γ0 ` B
Γ`B
Γ, A ` B
Γ`
(af fg )
Γ`A
Γ, A, A ` B
Γ, A ` B
(af fd )
(cong )
La règle de contraction à droite a disparu car elle supposait plus d’une
formule à droite du séquent.
Γ, A, B, ∆ ` C
Γ, B, A, ∆ ` C
(echg )
La règle d’échange à droite a disparu car elle supposait plus d’une formule
à droite du séquent.
7.2
a)
Les règles logiques de la logique des propositions
Conjonction
Γ, A ` C
Γ, A ∧ B ` C
b)
Γ, B ` C
∧g1
Γ, A ∧ B ` C
Γ`A
∧g2
Γ0 ` B
Γ, Γ0 ` A ∧ B
∧d
Disjonction
Γ, A ` C
Γ0 , B ` C
Γ, Γ0 , A ∨ B ` C
∨g
Γ`A
Γ`A∨B
∨d1
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
Γ`B
Γ`A∨B
∨d2
8 La logique intuitionniste est constructive
c)
Implication
Γ`A
Γ0 , B ` C
Γ, Γ0 , A ⇒ B ` C
d)
Γ, ¬A `
a)
¬g
Γ, A ` B
Γ`A⇒B
⇒d
Γ, A `
Γ ` ¬A
¬d
Les règles logiques de la logique des prédicats
Quantification universelle
Γ, [t/x]A ` B
Γ, ∀x · A ` B
b)
⇒g
Négation
Γ`A
7.3
53
∀g
Γ`A
Γ ` ∀x · A
∀d
Quantification existentielle
Γ, A ` B
Γ, ∃x · A ` B
∃g
Γ ` [t/x]A
Γ ` ∃x · A
∃d
Dans les règles ∀d et ∃g , on suppose que x ∈
/ F V (Γ).
8
La logique intuitionniste est constructive
Une logique est dite constructive si elle supporte l’isomorphisme de CurryHoward. L’isomorphisme de Curry-Howard est une correspondance entre
les preuves et des termes du λ-calcul ou de la Logique Combinatoire.
Une preuve qui n’utilise pas la règle de coupure est associée à un terme
du λ-calcul ou de la Logique Combinatoire en forme normale.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
54
CHAPITRE II. FORMALISMES LOGIQUES
L’algorithme d’élimination des coupures dans une preuve, que nous
verrons dans un prochain chapitre, procède par étape. A partir d’une
preuve avec coupures, on procède étape par étape jusqu’à avoir éliminé
les coupures. Si l’on examine ce qui se passe pour les termes associés
par l’isomorphisme de Curry-Howard, on s’aperçoit que chaque étape
de transformation de la preuve correspond à une réduction sur le terme
associé. Ces transformations se poursuivent jusqu’à ce que la preuve ne
contienne plus aucune coupure et à ce moment-là, le terme associé a été
complètement réduit, il est en forme normale.
Ceci témoigne d’une analogie extrêmement forte entre les preuves et
les termes du λ-calcul ou de la Logique Combinatoire et d’une analogie
similaire entre le processus d’élimination des coupures dans les preuves et
le processus de réduction en λ-calcul ou en Logique Combinatoire. Encore
faut-il que cet isomorphisme soit supporté par la théorie logique associée.
8.1
La logique classique n’est pas constructive
Supposons deux preuves sans coupures π et π 0 d’une même formule
B. Supposons que ces deux preuves soient obtenues de manière totalement différentes de telle sorte que les termes associés par l’isomorphisme de Curry-Howard soient des formes normales différentes. On a
donc M 6= M 0 .
Puis construisons la preuve suivante de B qui utilise la règle de coupure, elle est due à J-Y. Girard :
π0
..
.
π
..
.
`B
` C, B
(af fd )
` B, B
`B
`B
(af fg )
C`B
(cut)
(cond )
Soit P le terme associé à cette preuve par l’isomorphisme de CurryHoward. Nous verrons qu’il existe alors deux manières d’éliminer la
coupure de cette preuve, l’une en la faisant remonter par la gauche, l’autre
en la faisant remonter par la droite. Selon, on obtiendra deux preuves
totalement différentes puisque l’une repose sur π et l’autre sur π 0 :
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
9 Déduction naturelle en calcul des séquents
π0
..
.
π
..
.
`B
B
55
(af f + ech + con)
`B
B
(af f + ech + con)
La mention (af f + ech + con) fait référence à une suite éventuelle d’une
application de la règle d’affaiblissement, suivie d’une application de la
règle d’échange, suivie d’une application de la règle de contraction. Les
termes N et N 0 associés à ces deux preuves par l’isomorphisme de CurryHoward sont en forme normale et différents, donc N 6= N 0 . Mais on a
cependant P := N et P := N 0 , et par le théorème de Church-Rosser, on a
N = N 0 , ce qui contredit N 6= N 0 .
Pour pallier ce problème, les logiciens intuitionnistes ont réduit le
nombre de formules dans la partie droite d’un séquent en le majorant par
1. De cette manière, le problème mentionné ne peut pas apparaître. De fait,
la logique intuitionniste est constructive.
9
Déduction naturelle en calcul des séquents
On se rappelle que la déduction naturelle utilise des règles d’introduction et d’élimination tandis que le calcul des séquents utilise des règles à
gauche et à droite. La déduction naturelle peut s’exprimer sous la forme
d’un calcul des séquents. Par exemple, le connecteur ∧ peut être alors introduit et éliminé :
Γ`A
Γ`B
Γ`A∧B
(∧intro )
Γ`A∧B
Γ`A
(∧elim1 )
Γ`A∧B
Γ`B
(∧elim2 )
On imagine qu’il est possible de rédiger de telles règles pour les autres
connecteurs et les quantificateurs, que ce soit en logique classique ou en
logique intuitionniste.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
56
10
CHAPITRE II. FORMALISMES LOGIQUES
Une démonstration classique
La démonstration suivante démontre le théorème déjà vu en
section~7.1. C’est un résultat de la logique classique qui n’est pas intuitionniste :
id
F ` F
id
G ` G
∧d
F, G ` F ∧ G
id
H ` H
⇒g
F, G, (F ∧ G) ⇒ H ` H
af fd
F, G, (F ∧ G) ⇒ H ` H, H
⇒d
F, (F ∧ G) ⇒ H ` H, G ⇒ H
⇒d
(F ∧ G) ⇒ H ` F ⇒ H, G ⇒ H
(F ∧ G) ⇒ H ` (F ⇒ H) ∨ (G ⇒ H), G ⇒ H
∨d1
(F ∧ G) ⇒ H ` (F ⇒ H) ∨ (G ⇒ H), (F ⇒ H) ∨ (G ⇒ H)
∨d2
cond
(F ∧ G) ⇒ H ` (F ⇒ H) ∨ (G ⇒ H)
Cette démonstration utilise des règles, (cond ) et (af fd ), qui n’apparaissent pas dans l’axiomatisation intuitionniste, ce n’est pas une démonstration intuitionniste.
N.B. Pour montrer informellement que ce résultat n’est pas intuitionniste,
on peut se baser sur la sémantique des preuves de Heyting-Kolmogorov.
On pourra également se baser sur les résultats du chapitre suivant.
11
Déduction naturelle et calcul des séquents
Il va de soi que les théorèmes sont les mêmes dans les deux présentations d’une logique :
– on peut associer à la preuve d’un séquent A1 , . . . , An ` B en calcul
des séquents, une preuve de B sous les hypothèses A1 , . . . , An en
déduction naturelle ;
– inversement, on peut associer à une preuve de B sous les hypothèses A1 , . . . , An en déduction naturelle, une preuve du séquent
A1 , . . . , An ` B dans le calcul des séquents correspondant.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
57
III
É LIMINATION DES COUPURES
Citons
PROOFS AND TYPES
J.Y. Girard & Y. Lafont & P. Taylor
Cambridge Tracts in T.C.S., Cambridge, Angleterre
1989
On rappelle la règle de coupure ou cut rule qui est une règle du calcul
des séquents intuitionniste :
Γ`A
Γ0 , A ` B
Γ, Γ0 ` B
Son analogue en calcul des séquents classique est :
Γ ` ∆, A Γ0 , A ` ∆0
Γ, Γ0 ` ∆, ∆0
Cette règle peut sembler essentielle dans un calcul des séquents puisqu’elle dit grosso modo que si une formule A est une conséquence dans un
séquent et que la même formule A est hypothèse dans un autre séquent,
il est possible de combiner ces deux séquents pour n’en faire qu’un dans
lequel A a disparu !
Cependant, cette règle est redondante au sens de la section sur les
extensions dérivables. En effet, toute preuve utilisant des coupures peut
être remplacée par une preuve n’utilisant pas de coupures. C’est l’objet
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
58
CHAPITRE III. ÉLIMINATION DES COUPURES
du résultat suivant dont nous ébaucherons la démonstration un peu plus
loin.
1
Le Hauptsatz de Gentzen
Le résultat suivant est valable dans le calcul des séquents classique,
dans le calcul des séquents intuitionniste et dans la plupart des calculs
des séquents. J-Y. Girard affirme même qu’un système formel de logique
qui n’a pas cette propriété ne peut être qualifié de logique.
Théorème d’élimination des coupures (Hauptsatz de Gentzen, 1934). Si
un séquent est prouvable alors il existe une preuve de ce séquent qui
n’utilise pas la règle de coupure.
Ce résultat est LE résultat de la théorie des preuves. J-Y. Girard affirme
même que c’est le seul résultat d’importance mais, comme nous le verrons,
ses conséquences sont importantes. Par ailleurs, et nous allons le voir, il est
obtenu par des moyens purement formels, i.e. syntaxiques.
Nous allons examiner les conséquences de ce théorème qui sont très
importantes. En effet, une preuve n’utilisant pas la règle de coupure possède des propriétés particulières, spécialement en logique intuitionniste.
2
La dernière règle en logique intuitionniste
N.B. Attention ! On se place en Logique Intuitionniste.
Définition. Lorsque l’on considère une preuve sous forme d’arbre, on
peut s’intéresser à la dernière règle utilisée, c’est-à-dire à celle utilisée pour
produire la racine de l’arbre. Nous avons le résultat suivant :
Propriété. Si un séquent ` A est prouvable en logique intuitionniste alors
il existe une preuve de ` A où la dernière règle est une règle logique à
droite.
Démonstration. Si le séquent ` A est prouvable, d’après le Hauptsatz,
il existe une preuve sans coupures de ce séquent. On remarque que la
conclusion de la dernière règle est un séquent qui n’a pas d’hypothèses
dans sa partie gauche.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
3 Propriété de disjonction (DP)
59
Si l’on examine les règles structurelles du calcul des séquents intuitionniste, on remarque que toutes les règles sauf la règle d’affaiblissement
à droite (af fd ) ont des hypothèses dans le séquent conclusion. Aucune
d’entre elles ne peut donc être la dernière règle utilisée dans la preuve.
Si l’on examine (af fd ), la seule application de cette règle fournissant
un séquent conclusion sans hypothèse à gauche serait :
`
mais le séquent vide
`
(af fd )
`A
n’est pas prouvable.
Maintenant, si l’on examine les règles logiques à gauche, par construction elles ont toutes des hypothèses dans leur séquent conclusion. La dernière règle ne peut donc pas être une règle logique à gauche.
Ayant éliminé les règles structurelles et les règles logiques à gauche, la
dernière règle utilisée ne peut être qu’une règle logique à droite.
Propriété de consistance. Le séquent `⊥ n’est pas démontrable en
logique intuitionniste.
Démonstration. Si le séquent est prouvable, il existe une preuve de ce
séquent dont la dernière règle est une règle logique à droite. Il n’existe
pas de règle à droite ayant ⊥ comme conclusion.
N.B. Cette démonstration était inutile puisque les règles du calcul des séquents intuitionniste sont un cas particulier des règles du calcul des séquents classique. Donc tout théorème intuitionniste est aussi un théorème
classique. La consistance de la logique classique entraîne donc celle de la
logique intuitionniste.
3
Propriété de disjonction (DP)
N.B. Attention ! On se place en Logique Intuitionniste.
Propriété de disjonction. Si un séquent ` A ∨ B est prouvable en logique
intuitionniste alors soit le séquent ` A, soit le séquent ` B soit les deux
sont prouvables.
Démonstration. Si le séquent est prouvable, il existe une preuve de ce
séquent dont la dernière règle est une règle logique à droite. Or les seules
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
60
CHAPITRE III. ÉLIMINATION DES COUPURES
règles logiques à droite ayant une formule de la forme A ∨ B dans la partie
droite de leur séquent conclusion sont les règles ∨d1 et ∨d2 et la dernière
étape de la démonstration est forcément l’une des deux suivantes :
`A
`B
∨d2
`A∨B
`A∨B
et donc, soit ` A dans le premier cas, soit ` B dans le deuxième cas, sont
prouvables.
4
∨d1
Propriété d’existence (EP)
N.B. Attention ! On se place en Logique Intuitionniste.
Propriété d’existence. Si un séquent ` ∃x · A est prouvable en logique
intuitionniste, alors il existe au moins un terme t tel que le séquent ` [t/x]A
soit prouvable.
Démonstration. Si le séquent est prouvable, il existe une preuve de ce
séquent dont la dernière règle est une règle logique à droite. Or le seule
règle logique à droite ayant une formule de la forme ` ∃x · A est la règle
∃d . La dernière étape de la démonstration est donc :
` [t/x]A
∃d
` ∃x · A
on y voit un terme t tel que ` [t/x]A est prouvable.
N.B. Les deux dernières propriétés, propriétés de disjonction et d’existence, sont caractéristiques d’un système de logique intuitionniste.
5
Propriété de la sous-formule
N.B. Attention ! On se place en Logique Intuitionniste mais cela est valable
également en logique classique.
Définition. On définit la notion de sous-formule d’une formule A par
induction sur la structure de la formule A. Plus précisément, on définit
SF (A) l’ensemble des sous-formules de A. Attention ! Sous-formule est
pris au sens large, ce n’est pas la définition habituelle d’une sous-formule
d’une formule A.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
5 Propriété de la sous-formule
61
– Si A est une formule atomique, SF (A) = {A}.
– Si A ≡ ¬B, SF (A) = {A} ∪ SF (B).
– Si A ≡ B ∨ C ou si A ≡ B ∧ C ou si A ≡ B ⇒ C alors :
S(A) = {A} ∪ SF (B) ∪ SF (C).
– Si A ≡ ∀x · B ou si A ≡ ∃x · B alors :
S
SF (A) = {A} ∪ SF (B) ∪ t terme SF ([t/x]B).
Si l’on cherche à démontrer un séquent Γ ` A, on possède la conclusion,
i.e. le futur théorème, et l’on recherche la dernière règle de la preuve. Dans
tous les cas, cette dernière règle pourrait être la règle de coupure :
Γ`A
Γ0 , A ` B
Γ, Γ0 ` B
mais cette règle pose un problème : pour déterminer ses prémisses, il faut
déterminer la formule A qui a servi à faire la coupure et cela n’est pas
évident même pour un humain censé être intelligent. Mais si l’on sait qu’il
existe une preuve sans coupure, on possède la propriété suivante :
Propriété. Si un séquent Γ ` A est prouvable en logique intuitionniste
alors il existe une preuve de ce séquent dont la dernière règle n’est pas
une règle de coupure et dont les prémisses ne contiennent que des sousformules de A et des formules dans Γ.
Démonstration. On sait qu’il existe une preuve sans utilisation de la règle
de coupure. Puis on examine chacune des autres règles du calcul des
séquents intuitionniste et on vérifie aisément que chacune de ces règles
possède la propriété annoncée.
Propriété de la sous-formule. Si un séquent Γ ` A est prouvable en
logique intuitionniste alors il existe une preuve de ce séquent qui ne
contient aucune utilisation de la règle de coupure et telle que toutes les
formules apparaissant dans cette preuve soient des sous-formules de A
ou des formules dans Γ.
Démonstration. La démonstration ne pose pas de problème et se fait par
récurrence sur la hauteur de l’arbre de preuve. Si l’arbre de preuve est
de hauteur 0, le séquent démontré est l’identité A ` A. Si la preuve est
de hauteur n + 1, sa dernière règle vérifie la propriété précédente et on
applique l’hypothèse de récurrence à chacune des prémisses de la règle
pour conclure.
Démonstration automatique. En appliquant le résultat précédent, on automatise la recherche de preuve puisque pour chaque résultat à démonPatrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
62
CHAPITRE III. ÉLIMINATION DES COUPURES
trer, il y a un nombre fini de règles applicables et que la manière de les
appliquer est déterminée par la propriété de la sous-formule. Seul le cas
des quantificateurs peut amener à faire des choix intelligents si l’ensemble
des termes est infini, ce qui est le cas dès qu’il y a au moins un symbole
de fonction. D’où le discours enthousiaste de certains selon lequel la propriété de la sous-formule est la clé de la démonstration automatique. Mais
ce discours idéaliste est bien loin des réalités. En effet, comme nous allons
le voir, la preuve sans coupure est obtenue par transformations successives
de la preuve originale et sa hauteur au pire est hyper-exponentielle :
4
44
··
4
4
n
en fonction n, la hauteur de la preuve avec coupures. Le nombre de
niveaux de 4 est le degré de la preuve défini dans la section suivante.
Autrement dit, pour une preuve de degré 3, la hauteur de la preuve sans
coupure pourrait dépasser les capacités de l’univers puisqu’elle serait de
l’ordre de 10150 alors que le nombre de protons pouvant être contenus
dans l’univers est estimé inférieur à 10130 . La recherche de preuves sans
coupures est donc surtout destinée aux démonstrateurs « jouets » pour
la démonstration de quelques identités remarquables de l’algèbre des
connecteurs. Cependant, elle peut être utilisée de manière non-exclusive,
avec des heuristiques.
6
La démonstration du Hauptsatz de Gentzen
La transformation procède par transformations successives qui réduisent strictement une certaine mesure de la preuve. Lorsque cette mesure devient nulle, c’est que la preuve ne contient plus de coupures. Pour
définir cette mesure, on introduit la notion de degré.
6.1
Degrés d’une formule, d’une coupure, d’une preuve
Définition. Le degré d’une formule A, noté δ(A), est défini inductivement
par :
– si A est atomique, δ(A) = 1 ;
– δ(A ∧ B) = δ(A ∨ B) = δ(A ⇒ B) = max(δ(A), δ(B)) + 1 ;
– δ(¬A) = δ(∀x · A) = δ(∃x · A) = δ(A) + 1 ;
où A et B sont des formules.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
6 La démonstration du Hauptsatz de Gentzen
63
Propriété. Si A est une formule, t un terme et x une variable, on a :
δ([t/x]A) = δ(A)
Démonstration. Induction évidente. À faire.
Définition. Le degré d’une coupure intuitionniste (cas où ∆ et ∆0 sont des
séquences vides de formules) ou classique :
Γ ` ∆, A Γ0 , A ` ∆0
Γ, Γ0 ` ∆, ∆0
est le degré de la formule A qui a servi à faire la coupure.
Définition. Le degré d’une preuve est le maximum des degrés des coupures
utilisées dans la preuve.
Remarque. Le degré d’une formule n’est jamais nul. Donc le degré d’une
coupure n’est jamais nul. Donc une preuve est de degré zéro si et seulement si elle est sans coupure.
6.2
La proposition principale
Lemme. Soit d ≥ 0, soit A une formule de degré d, soit Γ ` ∆, A un séquent
dont la preuve est de degré strictement inférieur à d, soit Γ0 , A ` ∆0 un
autre séquent dont la preuve est aussi de degré strictement inférieur à
d, on peut construire une preuve de Γ, Γ0 ` ∆, ∆0 de degré strictement
inférieur à d.
Proposition. La preuve en est très longue et procède par examen des
dernières règles des preuves de chacun des deux séquents. Il y a de
nombreux cas. On se reportera à PROOFS AND TYPES, chapitre 13, cité
en tête de ce chapitre. On distingue plusieurs cas :
– le cas où la dernière règle de la preuve du séquent Γ ` ∆, A est une
règle à droite créant A et la dernière règle du séquent Γ0 , A ` ∆0 est
unes règles à gauche correspondante ;
Exemple. Supposons que A ≡ B ∧ C, que A dans le séquent de
gauche est créé par ∧d , que A dans le séquent de droite est construits
à gauche par ∧g1 , on remplace alors la preuve :
Γ1 ` ∆1 , B
Γ 2 ` ∆2 , C
Γ1 , Γ2 ` ∆1 , ∆2 , B ∧ C
∧d
Γ3 , B ` ∆3
Γ3 , B ∧ C ` ∆3
Γ1 , Γ2 , Γ3 ` ∆1 , ∆2 , ∆3
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
∧g1
(cut)
64
CHAPITRE III. ÉLIMINATION DES COUPURES
par la preuve :
Γ 1 ` ∆1 , B
Γ3 , B ` ∆3
Γ1 , Γ3 ` ∆1 , ∆3
Γ1 , Γ2 , Γ3 ` ∆1 , ∆3
Γ1 , Γ2 , Γ3 ` ∆1 , ∆2 , ∆3
(cut)
(af fg∗ , ch∗g )
(af fd∗ , ch∗d )
où (af fd∗ , ch∗d ) signifie une suite d’affaiblissements à droite pour
introduire ∆2 et une suite d’échanges à droite pour le placer au bon
endroit. Et similairement pour (af fg∗ , ch∗g ) avec ∆2 . On a remplacé
une coupure de degré d = δ(B ∧ C) par une coupure de degré
δ(B) < d mais la hauteur de l’arbre a augmenté.
– le cas où l’un des deux séquents est un axiome, i.e. A ` A ;
– les autres cas où la dernière règle de l’un des deux séquents est une
règle structurelle ;
– les cas non principaux où l’on se contente d’effectuer une permutation pour obtenir l’un des deux séquents.
Pour une visions détaillée de la preuve, on pourra se reporter à l’ouvrage
PROOFS AND TYPES mentionné en tête de chapitre.
Proposition. Si π est la preuve d’un séquent de degré d > 0, on peut
construire une preuve ω(π) du même séquent mais de degré strictement
inférieur à d.
Démonstration. La démonstration se fait par induction sur la hauteur de
la preuve π. On considère la dernière règle r de la preuve π. Si ce n’est
pas une coupure, on applique l’hypothèse d’induction aux preuves de
ses prémisses et le résultat est immédiat. Si c’est une coupure de degré
strictement inférieur à d, ici aussi on applique l’hypothèse d’induction aux
preuves de ses prémisses et le résultat est immédiat.
Si r est une coupure de degré d, l’hypothèse d’induction nous assure qu’on
peut trouver des preuves de ses prémisses de degré strictement inférieur
à d de sorte que r est la seule coupure de degré au moins d. On a donc une
coupure :
Γ ` ∆, A Γ0 , A ` ∆0
Γ, Γ0 ` ∆, ∆0
avec A de degré d. Le lemme ci-dessus permet immédiatement de
conclure.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
6 La démonstration du Hauptsatz de Gentzen
6.3
65
Le théorème
Le théorème d’élimination des coupures se démontre en itérant la
proposition de la section précédente jusqu’à obtenir un degré nul.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
66
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
67
IV
T HÉORIE DES TYPES
Citons
INTRODUCTION TO COMBINATORS AND λ-CALCULUS
Roger Hindley & Jonathan P. Seldin
London Mathematical Society, Student Text I
Cambridge University Press, London, Angleterre
1986
et
LOGIC : FORM AND FUNCTIONS
J.A. Robinson
Edinburgh University Press, Edinburgh, Écosse
1979
Nous avons beaucoup répété que les combinateurs ou les λ-termes
ne sont pas des fonctions des mathématiques classiques, ne serait-ce que
parce que l’on autorise l’auto-application qui est interdite par la théorie
des ensembles. D’autre part, les combinateurs et les λ-termes n’ont ni
ensemble de départ ni ensemble d’arrivée. Ils peuvent prendre n’importe
quoi en argument et il est possible que leurs résultats soient indéfinis.
Ce chapitre présente un point de vue différent, principalement dû au
Paradoxe de Curry. Il s’agit de l’introduction de types qui permettent
ou ne permettent pas certaines applications d’un terme à un autre et qui
rapprochent le comportement des combinateurs et les λ-termes de celui
des fonctions de la théorie des ensembles.
La théorie des types est parfois appelée théorie de la fonctionnalité.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
68
1
CHAPITRE IV. THÉORIE DES TYPES
Le paradoxe de Curry
L’intention première du logicien H.B. Curry au début du siècle était de
mécaniser la logique en en faisant un calcul comme un autre en utilisant
les combinateurs, d’où le nom premier de la théorie : Logique Combinatoire.
1.1
Note historique
L’idée de mécaniser la logique et donc le raisonnement n’est pas nouvelle. En 1655, dans son traité De Corpore, le philosophe Thomas Hobbes
consacre un chapitre intitulé Computation Sive Logica dans lequel il émet
l’idée que le raisonnement peut être réduit à une espèce de calcul.
G.W. Leibniz, co-inventeur avec Newton du calcul différentiel et intégral, avait huit ans quand Hobbes a publié son traité. Hobbes n’essaya pas
de mettre en pratique ses idées sur la logique. Leibniz rédigeait en 1679
ce qu’il appelait le Calculus Ratiocinator. À chaque concept, on associait un
nombre entier appelé son nombre caractéristique. Ce nombre était premier si
le concept était primitif, divisible sinon. La conjonction logique était alors
le fait d’une multiplication. Par exemple, si le concept d’animal avait le
code numérique 2 et celui de bipède avait le code numérique 3 alors le
concept d’humain avait le code 2.3 = 6 puisque qu’un humain est à la fois
un animal ET un bipède. On remplaçait ainsi des opération logiques par
des opérations arithmétiques. Il va de soi que cette approche se trouva très
vite limitée.
Mais c’est à Frege dans les années 1870, que l’on doit la logique moderne. Plutôt que de chercher une contre-partie numérique au raisonnement, il se dit que l’on peut calculer avec autre chose que des nombres.
D’ailleurs, les mathématiques ne travaillent pas avec des nombres, « quoi »
que puissent être les nombres, mais avec des représentations symboliques
des nombres que l’on appelle des numéraux. 0, 1, 2, . . . ne sont pas des
nombres mais des numéraux. Frege découvrit qu’il pouvait faire de la
logique un calcul symbolique. Il inventa même une notation graphique
maintenant inutilisée, le Begriffsschrift.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
1 Le paradoxe de Curry
1.2
69
L’approche de Curry
L’approche de Curry consistait à supprimer les variables liées dans les
formules grâce à l’utilisation des combinateurs comme nous l’avons déjà
vu. Il faut bien comprendre que les variables sont un outil particulièrement complexe et que la définition de la substitution [t/x]A d’un terme t
à une variable x dans une formule A fut longtemps mal définie et que des
logiciens parmi les meilleurs se trompèrent à essayer de la définir.
Curry introduit des combinateurs, constantes atomiques, pour représenter les différents connecteurs et quantificateurs de la logique du premier ordre. Il introduit en particulier P tel que (P A B) représente l’implication logique (A ⇒ B).
Curry donne la règle d’égalité :
Si A est vrai et si A = B alors B est vrai (Règle d’égalité)
(1.1)
Avec cette règle, on pourra déduire une proposition d’une autre par un
simple calcul dans la théorie des combinateurs, calcul qui montrera que les
deux propositions sont égales. L’idée est belle !
Puis Curry introduit les deux règles essentielles suivantes :
De (P X Y ) et X déduire Y (Modus Ponens)
(1.2)
P (P A (P A B)) (P A B)
(1.3)
et :
Ces deux règles sont des règles de la logique propositionnelle toute
simple. La première règle est la classique modus ponens nécessaire à toute
déduction. La deuxième est un schéma d’axiomes vrai pour toutes les formules A et B. C’est un exemple de l’une des nombreuses axiomatisations
possibles de la logique propositionnelle. N’importe quelle autre axiomatisation permettrait de déduire cet axiome pour toutes les formules A et B
comme un théorème. Même en se restreignant à ce cadre tout simple, un
paradoxe apparaît, c’est le paradoxe de Curry.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
70
CHAPITRE IV. THÉORIE DES TYPES
1.3
Le paradoxe
Soit Z une proposition, nous allons démontrer que Z est un théorème.
Considérons le terme :
FZ ≡def Y (λ+ z · P z (P z Z))
(1.4)
où z ∈
/ F V (Z) et où Y est l’opérateur de point-fixe que nous avons déjà
vu. On a :
= (λ+ z · P z (P z Z)) FZ
(propriété du point-fixeur Y )
= P FZ (P FZ Z)
(substitution)
= P (P FZ (P FZ Z)) (P FZ Z) (remplacement du 1er FZ par sa valeur)
(1.5)
FZ
On effectue à présent une déduction :
(a)
(b)
(c)
(d)
(e)
P (P FZ (P FZ Z)) (P FZ Z) (axiome 1.3)
P FZ (P FZ Z)
(règle d’égalité 1.1)
FZ
(règle d’égalité 1.1)
P FZ Z
(modus ponens avec (b) et (c))
Z
(modus ponens avec (d) et (c))
(1.6)
On en arrive donc à l’absurdité suivante qui constitue le paradoxe de
Curry : toute proposition Z est vraie.
1.4
La solution proposée
On ne peut remettre en cause l’algorithme λ+ , théorème de complétude,
ni l’existence de l’opérateur de point-fixe Y , théorème du point-fixe. Donc, si
l’on veut continuer dans cette voie, il faut autre chose. La solution trouvée,
qui conduit naturellement à la théorie des types, consiste à dire que tous
les termes ne représentent pas des propositions. Les termes représentant
des propositions seront appelés des termes canoniques. La théorie des types
est constituée de règles permettant d’autoriser ou d’interdire l’application
d’un terme à un autre et donc d’interdire certains termes.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
2 La théorie des types en Logique Combinatoire
1.5
71
Théorie des ensembles et théorie des types
Un examen attentif des paradoxes montre qu’ils semblent avoir tous la
même source : l’auto-référence, que ce soit le paradoxe du Crétois qui dit
« Les Crétois ne racontent que des mensonges », que ce soit le paradoxe
de Russel « L’ensemble de tous les ensembles qui ne se contiennent pas
eux-mêmes » ou le paradoxe de Curry que nous venons de voir. Dans
le premier cas, le Crétois parle de lui-même. Dans le deuxième cas, la
définition de l’ensemble fait référence à lui-même. Dans le troisième cas,
c’est l’opérateur de point-fixe Y qui provoque une auto-référence.
Les origines des paradoxes se trouvent dans la conjonction de ces deux
principes :
– tout prédicat peut être considéré pour définir un ensemble ;
– un prédicat peut être appliqué à n’importe quoi.
Il y a alors deux solutions pour empêcher le paradoxe d’apparaître. La
première est la solution ensembliste qui consiste à dire que tout prédicat ne
définit pas un ensemble. On différenciera donc les prédicats bien définis
qui définissent des ensembles et les autres. Par exemple, le prédicat x ∈
/x
ne définit pas un ensemble, parce qu’il n’est pas bien défini, de telle sorte
que l’ensemble de Russel n’est pas un ensemble mais une vague collection
que l’on appelle une classe et pour laquelle le prédicat d’appartenance ne
s’utilise pas. La théorie moderne des ensembles choisit d’abandonner le
premier des deux principes.
La deuxième solution est celle de la théorie des types qui choisit d’abandonner le deuxième principe. On empêche arbitrairement, ou presque,
certaines applications de fonctions ou de prédicats. Nous allons décrire
la théorie des types dans le cas de la théorie des combinateurs. Puis nous
montrerons comment elle s’adapte au λ-calcul.
2
La théorie des types en Logique Combinatoire
La théorie des types que nous présentons a été développée par Curry
en 1934 et 1936. Elle fut développée indépendamment par J.H. Morris et
R. Milner dans le cadre des langages de programmation fonctionnelle dans
les années 1970.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
72
CHAPITRE IV. THÉORIE DES TYPES
2.1
Les types en informatique
Le plus simple des contrôles de type est celui qui contrôle uniquement
le nombre des arguments.
Le pas suivant est franchi lorsque l’on contrôle en plus la nature des
arguments, ce que font la plupart des langages de programmation.
Enfin, certains langages fonctionnels comme ML infèrent le type des
objets qu’ils manipulent. Le résultat, comme nous allons le voir est un
schéma de types.
2.2
L’approche de Curry
Pour Curry, les types des termes sont inférés grâce à un ensemble de
règles. Chaque terme possède un ensemble de types possibles et non un
seul. Si un terme M possède un type α, on notera cela ` M : α. Parmi
tous les types que possède un terme, lorsqu’il en possède, l’un d’entre eux
est le plus général en ce sens que les autres peuvent se déduire du type
principal en substituant d’autre schémas de types aux variables de types
qu’il contient.
2.3
Définition des types
On se donne un ensemble de constantes de types et un ensemble
de variables de types. Les variables de types sont notées à l’aide des
minuscules grecques α, β, γ, . . . éventuellement indicées par des entiers
naturels.
Définition IV.1 (Schémas de types) Les schémas de types sont définis par
induction :
–
–
–
–
toute constante de type est un schéma de type ;
toute variable de type est un schéma de type ;
si α et β sont des schémas de types, (α → β) est un schéma de types ;
règle de fermeture.
Définition IV.2 Un type est un schéma de types dans lequel ne figure aucune
variable.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
3 Affectation de type
73
Définition IV.3 Un schéma de types qui contient le symbole → est dit complexe.
Syntaxe IV.4 On suppose que l’opération → de formation de types est associative à droite. Donc α → β → γ et α → (β → γ) dénotent la même expression.
3
Affectation de type
L’idée principale est de dire que si un terme M a le type α → β et si N
a le type α alors (M N ) est bien défini et a le type β.
3.1
Les formules
L’affectation de type est présentée sous la forme d’un système formel
où les formules démontrées sont de la forme ` M : α où M est un terme
de la Logique Combinatoire et α un schéma de types. Ce système possède
une règle d’inférence donnant le type d’une application et deux axiomes
donnant les types des combinateurs S et K.
3.2
Le type d’une application
Cette règle reprend ce qui a été dit ci-dessus :
`M :α→β
`N :α
` (M N ) : β
3.3
Le type de K
La première règle donne un schéma de types au combinateur K :
`K:α→β→α
Ce schéma de types signifie informellement que K prend un premier
argument X de type α, un deuxième argument Y de type β et l’application
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
74
CHAPITRE IV. THÉORIE DES TYPES
se réduit à un terme de type α, ce qui est normal puisque la règle de
réduction de K est K X Y := X.
α et β sont des variables de types. On peut leur substituer n’importe
quel schéma de types pour obtenir un nouveau schéma de types pour K.
Ainsi , le schéma de types (γ → γ) → β → γ → γ est aussi un schéma de
types pour K obtenu en remplaçant α par γ → γ.
3.4
Le type de S
La deuxième règle donne un schéma de types à S :
` S : (α → β → γ) → (α → β) → α → γ
En raisonnant comme pour K, supposons que :
`X:α→β→γ
`Y :α→β
`Z:α
on peut alors intuitivement déduire successivement :
`XZ:β→γ
`Y Z:β
puis enfin :
` X Z (Y Z) : γ
Et c’est bien ce que dit le schéma de types donné pour S : le type de
(S X Y Z) est alors γ.
Comme pour le schéma de types de K, on peut substituer dans le
schéma de types de S des schémas de types aux variables α, β et γ et
obtenir un nouveau schéma de types pour S.
3.5
Non unicité du schéma de types d’un terme
Puisque S et K n’ont pas pas un type unique, il est en général possible
de déduire plusieurs schémas de types différents pour un même terme.
Comme dans le case de S et K, ces schémas de types différents ne sont pas
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
4 Exemple : déduction d’un schéma de types de I
75
sans rapport entre eux et correspondent à différentes utilisations possibles
du terme. Par ailleurs, nous verrons qu’il existe un schéma de type appelé
le schéma de types principal et duquel tous les autres se déduisent par
substitution de schéma de types aux variables qu’ils contiennent.
3.6
Schéma de types d’une application
Proposition IV.5 Soient M et N deux termes, soit α un schéma de types tel que
` (M N ) : α alors il existe un schéma de type β tel que ` M : β → α et ` N : β.
Preuve. La démonstration se fait en examinant la déduction qui a permis de conclure ` (M N ) : α. La dernière règle utilisée est forcément
celle qui donne le type d’une application. En effet, toutes les autres règles
donnent les types de termes atomiques. La dernière étape de la démonstration est donc de la forme :
`M :β→α
`N :β
` (M N ) : α
On retrouve ainsi β.
4
Exemple : déduction d’un schéma de types de I
En appliquant les règles du système. Donnons-nous une variable de
type ρ, on a la déduction suivante :
type-schéma de S avec
α≡ρ
β ≡ρ→ρ
γ ≡ρ
type-schéma de K avec
α≡ρ
β ≡ρ→ρ
` S : (ρ → (ρ → ρ) → ρ) → (ρ → ρ → ρ) → ρ → ρ
` K : ρ → (ρ → ρ) → ρ
` (S K) : (ρ → ρ → ρ) → ρ → ρ
type-schéma de K avec
α≡ρ
β ≡ρ
`K :ρ→ρ→ρ
` (S K K) : ρ → ρ
`I :ρ→ρ
Il est rassurant de constater que ρ → ρ est un schéma de types pour I
puisque sa règle de réduction est I X := X.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
76
CHAPITRE IV. THÉORIE DES TYPES
Exercice IV.6 Commencer par donner intuitivement les schémas de types des
combinateurs B, C, C∗ et W . Puis vérifier qu’on les obtient bien à l’aide du
système formel d’affectation de types donnés ci-dessus. théorème~IV.26.
Exercice IV.7 Vous convaincre intuitivement que le combinateur (λ+ x · xx) n’a
pas de type. théorème~IV.27.
5
Introduction aux variables
Pour l’instant, les seuls termes que nous typons sont des termes ne
contenant pas de variable. On peut typer un terme contenant des variables
à condition de supposer des types pour ces variables.
Définition IV.8 Une base de typage ou contexte est un suite de formules :
x1 : α1 , . . . , x n : αn , . . .
où {x1 , . . . , xn , . . .} est un ensemble qui peut être infini de variables deux à deux
différentes et où {α1 , . . . , αn , . . .} est un ensemble de schémas de types
5.1
Nouvelles formules
On choisit de démontrer à présent des formules de la forme :
x1 : α1 , . . . , x n : αn , . . . ` M : α
signifiant que M a le type α sous des hypothèses concernant les types des
variables x1 , . . . , xn : x1 : α1 , . . . , xn : αn , . . .
5.2
Nouveaux axiomes
Pour cela, on ajoute l’axiome suivant :
x1 : α1 , . . . , x n : αn , . . . ` xi : αi
et l’on réécrit les trois règles déjà vues en ajoutant une base représentée
par le symbole B à gauche du symbole ` dans chacune des règles déjà
présentées. Soit :
B`M :α→β
B`N :α
B ` (M N ) : β
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
6 Abstraction et typage
77
B`K:α→β→α
B ` S : (α → β → γ) → (α → β) → α → γ
Exercice IV.9 Démontrer :
f : β1 → β2 → γ, g : α → β1 , h : α → β2 , x : α ` f (g x) (h x) : γ
5.3
Schéma de types d’une application
Proposition IV.10 Soit B une base de typage, soient M et N deux termes, soit
α un schéma de types tel que B ` (M N ) : α alors il existe un schéma de types β
tel que B ` M : β → α et B ` N : β.
Preuve. La même qu’en section~3.6.
6
Abstraction et typage
Le théorème suivant montre l’intérêt de typer les variables comme nous
venons de le faire :
Théorème IV.11 Soit x : α, . . . une base de typage, soit β un schéma de types et
M un terme tel que : x : α, . . . ` M : β, alors on a : . . . ` (λ+ x · M ) : α → β.
Preuve. La démonstration se fait classiquement par induction sur la
structure du terme M :
– Si M ≡ x, alors β ≡ α et l’on a bien (λ+ x · x) ≡ I dont le schéma de
types est α → α.
– Si M ≡ y une variable différente de x ou une constante, alors
(λ+ x · y) ≡ K y est bien de type α → β.
– Si M ≡ P Q alors on a : ` P : γ → β et ` Q : γ. Par hypothèse
d’induction, on a : ` λ+ x · P : α → γ → β et ` λ+ x · Q : α → γ. On
vérifie alors que : (λ+ x · M ) ≡ S (λ+ x · P ) (λ+ x · Q) est bien de type
α → β.
Exercice IV.12 Compléter la démonstration ci-dessus.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
78
7
CHAPITRE IV. THÉORIE DES TYPES
Réduction et typage
On peut démontrer que la réduction := respecte les schémas de types.
Théorème IV.13 Soit B une base de typage, soit M et N des termes tels que
M := N , soit α un schéma de types tels que B ` M : α, alors on a : B ` N : α.
Preuve. La démonstration se fait par récurrence sur la hauteur de la
preuve de M := N . Il faut démontrer que la propriété est vraie pour
chacun des axiomes. Puis pour chacune des règles d’inférences, il faut
démontrer que si la propriété est vraie pour les prémisses de la règle, elle
est aussi vraie pour la conclusion de la règle. La démonstration ne pose
pas de difficulté particulière et se sert de la propriété de la section~5.3.
Exercice IV.14 Rédiger la démonstration de ce théorème.
Proposition IV.15 On n’a pas le résultat « inverse » du théorème ci-dessus, ce
n’est pas parce que N a un schéma de type que M a le même.
Preuve. Prenons M ≡ S K S I et N ≡ K I (S I). On a M := N . On
a ` N : α → α mais on n’a pas ` M : α → α. On peut démontrer que le
schéma de types principal de (S K S I) est (α → β) → (α → β).
Un exemple encore plus significatif est M ≡ S I I I et N ≡ I I (I I).
On a aussi M := N . On a ` N : β → β mais M n’a pas de type car (S I I)
n’a pas de type.
8
Substitution et typage
Théorème IV.16 Soit x : α, . . . une base de typage, soit β un schéma de types
et M un terme tel que : x : α, . . . ` M : β, alors si . . . ` N : α, on a
. . . ` [N/x]M : β.
Preuve. La démonstration se fait par induction sur la structure du
terme M . Si M ≡ x, le résultat est évident. Si M ≡ y, une variable
différente de x, le résultat est évident. Si M ≡ (P Q), on s’appuie sur
l’hypothèse d’induction et sur la propriété de la section~5.3.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
9 Schéma de types principal
9
79
Schéma de types principal
Définition IV.17 Soient α et β deux schémas de types, on dit que β est une
instance de α s’il existe des variables de type α1 , . . . , αn et des schémas de types
β1 , . . . , βn tels que β ≡ [β1 /α1 , . . . , βn /αn ]α.
Exemple IV.18 (α → β) → (α → β) est une instance de α → α.
Définition IV.19 Soient M un terme, soit α un schéma de types, B une base de
typage, on dit que α est le schéma de type principal de M si pour tout schéma de
type β tel que B ` M : β on a que β est une instance de α.
Théorème IV.20 Tout terme possédant un schéma de types pour une base de
typage possède un schéma de type principal pour cette base. Ce schéma de type
principal est unique au renommage des variables près.
Preuve. (Curry & Hindley 1969).
10
Typage et normalisation forte
Théorème IV.21 Tout terme possédant un schéma de types est fortement normalisable, i.e. il est normalisable et toutes les stratégies de réduction le normalisent.
Autrement dit, l’arbre de réduction d’un terme typable est fini.
Preuve. (Curry et al. 1958).
11
L’isomorphisme de Curry-Howard
On remarque que si l’on enlève les termes dans les règles de typage des
termes, on obtient les règles suivantes :
α1 , . . . , αn , . . . ` αi
B`α→β
B`α
B`β
B`α→β→α
B ` (α → β → γ) → (α → β) → α → γ
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
80
CHAPITRE IV. THÉORIE DES TYPES
Or ces règles sont celles d’un calcul pour la logique des propositions avec
l’unique connecteur d’implication →.
On peut vérifier sans difficulté le résultat suivant :
Proposition IV.22 Soit F une formule de la logique des propositions avec
l’unique connecteur d’implication noté →, alors F est un théorème si et seulement s’il existe un terme M tel que ` M : F .
Ce résultat qui témoigne d’une analogie très forte entre la logique des
propositions et les systèmes de typage est ce que l’on appelle l’isomorphisme de Curry-Howard. Nous le prolongerons plus tard en étendant
l’ensemble des types et les règles de typage pour que l’analogie se fasse
avec la logique du premier ordre.
12
L’algorithme de Morris
L’algorithme de Morris permet de déterminer le schéma de types principal d’un terme lorsque ce type existe ou de savoir si ce schéma de types
n’existe pas.
– Si le terme est S, son schéma de types principal est donné par
l’axiome correspondant dans lequel on aura pris soin de renommer
les variables de types en de nouvelles variables.
– Si le terme est K, son schéma de type principal est donné par l’axiome
correspondant dans lequel on aura pris soin de renommer les variables de types en de nouvelles variables.
– Si le terme est une variable, son schéma de type est donné par la base
de typage. Si son schéma de types n’est pas donné par la base de
typage, le typage échoue.
– Si le terme est de la forme (M N ), on calcule récursivement α schéma
de type principal de M et β schéma de type principal de N . Si l’un
des deux calculs échoue, (M N ) n’a pas de type. Puis :
– Si α est une variable de type, on introduit une nouvelle variable
de type γ, on remplace partout α par β → γ et le schéma de type
principal de (M N ) est γ.
– Si α ≡ δ → γ, on pose l’équation β = δ. Cette équation va
être résolue. La résolution peut échouer et dans ce cas, le typage
échoue. La résolution peut réussir et dans ce cas, elle remplace
partout des variables de types par des schémas de types. Le schéma
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
12 L’algorithme de Morris
81
de types principal de (M N ) est alors γ dans lequel des variables
de types auront été remplacées. La résolution se décrit ainsi :
– si β est une variable de type et si β apparaît dans δ, il n’y a pas
de solution et la résolution échoue ;
– sinon, si β est une variable de type et si β n’apparaît pas dans δ,
on remplace partout β par δ ;
– sinon, si δ est une variable de type, on remplace l’équation par
δ = β et on continue la résolution sur cette nouvelle équation ;
– sinon, on a β ≡ β1 → β2 et δ ≡ δ1 → δ2 , on commence par
résoudre β1 = δ1 : si cette résolution échoue, alors toute la
résolution échoue ; si cette résolution réussit, on résout ensuite
β2 = δ2 , résolution qui peut réussir ou échouer.
Présenté ainsi, l’algorithme peut sembler complexe. On peut le résumer
ainsi. Si ` M : α → β et ` N : γ, on pose l’équation α = γ. Si cette
équation peut être résolue sans circularité, on remplace les variables par
leurs valeurs dans β et on obtient le type de (M N ).
12.1
Exemple d’application
On considère W ≡def S S (K I). On a :
– Schéma de type de W .
W ≡ (S S) ( K I), on doit donc calculer les schémas de types principaux de (S S)
et (K I) :
– Schéma de type de (S S).
On doit calculer deux fois le schéma de types de S :
– Schéma de type de S.
` S : (α1 → β1 → γ1 ) → (α1 → β1 ) → α1 → γ1 .
– Schéma de type de S.
` S : (α2 → β2 → γ2 ) → (α2 → β2 ) → α2 → γ2 .
– Résolution de :
α1 → β1 → γ1 = (α2 → β2 → γ2 ) → (α2 → β2 ) → α2 → γ2 .
qui donne :
α1 = α2 → β2 → γ2
β1 → γ1 = (α2 → β2 ) → α2 → γ2
puis :
α1 = α2 → β2 → γ2
β1 = α2 → β2
γ1 = α2 → γ2
Il n’y a aucune circularité. On remplace donc les trois variables par leurs valeurs
dans (α1 → β1 ) → α1 → γ1 pour obtenir le schéma de type de (S S) :
` (S S) : ((α2 → β2 → γ2 ) → α2 → β2 ) → (α2 → β2 → γ2 ) → α2 → γ2 .
– Schéma de type de (K I).
On doit calculer les schémas de types de K et I :
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
82
CHAPITRE IV. THÉORIE DES TYPES
– Schéma de type de K.
` K : α3 → β3 → α3 .
– Schéma de type de I.
` I : α4 → α4 .
On l’avait calculé plus haut.
– La résolution de α3 = α4 → α4 est immédiate et fournit le type de (K I) :
` (K I) : β3 → (α4 → α4 ).
– Résolution de :
(α2 → β2 → γ2 ) → α2 → β2 = β3 → (α4 → α4 ).
Qui donne :
β3 = α2 → β2 → γ2
α4 → α4 = α2 → β2
Puis :
β3 = α2 → β2 → γ2
α4 = α2
α4 = β2
Après remplacement du premier α4 par α2 :
β3 = α2 → β2 → γ2
α2 = β2
Après remplacement de α2 par sa valeur dans la première équation :
β3 = β2 → β2 → γ2
α2 = β2
Comme il n’y a pas de circularité, on remplace β3 et α2 dans : (α2 → β2 → γ2 ) →
α2 → γ2 pour obtenir le type de (S S (K I)) :
` W : (β2 → β2 → γ2 ) → β2 → γ2
On obtient donc le schéma de types principal de W :
` W : (β → β → γ) → β → γ
Exercice IV.23 Vérifier à l’aide de l’algorithme de Morris que (S I I) n’a pas de
schéma de types.
Exercice IV.24 Vérifier à l’aide de l’algorithme de Morris que Y n’a pas de
schéma de types. Pour Y , on prendra le schéma de types de W calculé ci-dessus.
théorème~IV.28.
N.B. IV.25 Les deux exercices précédents montrent donc que si l’on ne considère
que des termes typables alors la récursivité et l’auto-application sont interdites.
13
Des variantes dans le typage
Supposons que l’on introduise qu’un seul type de base alors le contrôle
de type ne contrôle plus la nature des arguments mais seulement leurs
nombres et leurs qualités fonctionnelles.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
14 Des systèmes de typage plus expressifs
83
On peut vérifier que de nombreux termes n’ont pas de types dans
le système présenté. En particulier, la récursivité sous toutes ses formes
en est bannie. Seuls certains algorithmes itératifs passent la barrière du
typage grâce aux entiers de Church.
Il existe d’autres systèmes de typage plus laxistes qui tolèrent la récursivité sous certaines formes mais ils ne garantissent plus alors la propriété
de normalisation forte de la section~10.
Le problème est de savoir jusqu’où on désire aller dans le contrôle.
Entre un système qui contrôle même la terminaison des réductions, et un
système qui ne contrôle que le nombre des arguments dans une application, il y a une marge énorme. Pour un mathématicien, la normalisation
forte fait partie des propriétés qu’il recherchera. Pour un informaticien,
elle n’a aucun intérêt puisqu’elle suppose l’absence de récursivité générale et la limitation des boucles aux répétitions statiquement finies.
14
Des systèmes de typage plus expressifs
Il existe des systèmes de typage bien plus expressifs que celui présentés. Ces systèmes ont été conçus pour pallier à la pauvreté des théories
typées.
– Les systèmes avec types dépendants. Un type dépendant est un type
paramétré par une donnée (un terme) à l’instar du type tableau qui
est paramétré par un entier, sa longueur. On introduit alors deux
nouveaux
types :
Y
–
B(x) qui est intuitivement le type des fonctions prenant un
x:A
argument x de type A et dontY
le résultat est de type B(x). Ainsi,
A → B n’est autre que le type
B où x ne figure pas dans B.
x:A
–
X
B(x) qui est le type des couples formés d’un élément x de type
x:A
A et d’un
X élément y de type B(x). Ainsi, A × B n’est autre que le
type
B où x ne figure pas dans B.
x:A
– Les systèmes avec types polymorphes. Un type polymorphe est un type
paramétré par un autre type. Ainsi le type tableau est-il normalement
paramétré par le type des éléments qu’il contient.
– Les systèmes avec types inductifs. Un type inductif est la donnée
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
84
CHAPITRE IV. THÉORIE DES TYPES
d’un procédé inductif de construction des objets de ce type, procédé
qui permet aussi de définir par induction des fonctions ayant des
arguments de ce type. Par exemple, le type N des entiers naturels
peut être défini par une constante 0 : N et un symbole de fonction
S : N → N. Une fonction f sur les entiers naturels peut alors être
inductivement définie par f (0) et par le procédé de calcul permettant
d’obtenir f (n + 1) à partir de f (n).
15
Présentation à la Church
La présentation de la théorie des types que nous avons donnée est
celle de Curry : un terme possède un schéma de type principal, tous ses
autres schémas de types et tous ses types sont des instances de ce schéma
de types principal. Chaque type d’un terme correspond à une utilisation
particulière du terme avec des arguments ayant un type particulier.
Dans une présentation à la Church, on introduit un combinateur K différent pour chacune des instances γ de son schéma de type, ce combinateur
particulier est alors noté K γ . De ce fait, chaque combinateur et chaque variable se retrouve marqué par son type. La notation est donc beaucoup
plus lourde mais les types sont uniques. Les résultats sont les mêmes mais
les démonstrations sont beaucoup plus simples.
16
Le typage en λ-calcul
Pour obtenir le système de typage du λ-calcul, on supprime les axiomes
donnant des types à S et K et on les remplace par la règle :
x : α, . . . ` M : β
. . . ` λx.M : α → β
On a alors sensiblement les mêmes résultats en Logique Combinatoire
et en λ-calcul. On a également les deux présentations : à la Curry et à la
Church.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
17 Solution des exercices
17
85
Solution des exercices
Solution IV.26 (théorème~IV.6)
` B : (β → γ) → (α → β) → α → γ
` C : (β → α → γ) → (α → β → γ)
` C∗ : α → (α → β) → β
` W : (α → α → β) → α → β
Solution IV.27 (théorème~IV.7) Si (λ+ x · xx) avait un type, celui-ci serait
de la forme α → β puisque (λ+ x · xx) doit prendre un argument. Donnons-lui
alors un argument X de type α, on a (λ+ x · xx)X := XX qui est de type β.
Considérons la première occurrence de X dans (X X) comme une fonction et la
deuxième comme son argument. Pour que (X X) soit de type β, il faudrait que
X soit à la fois de type α pour la deuxième occurrence de X, et de type α → β
pour la première occurrence de X. Il faudrait α = α → β.
Solution IV.28 (théorème~IV.24) On a :
` S : (α1 → β1 → γ1 ) → (α1 → β1 ) → α1 → γ1
` I : α2 → α2
On pose l’équation :
α1 → β 1 → γ1 = α2 → α2
qui donne :
α1 = α2
α2 = β 1 → γ1
On effectue les substitutions de variables et on obtient :
` (S I) : ((β1 → γ1 ) → β1 ) → (β1 → γ1 ) → γ1
On a :
` I : α3 → α3
On pose l’équation :
α3 → α3 = (β1 → γ1 ) → β1
qui donne :
α3 = β 1 → γ1
α3 = β 1
et donc :
β1 = β1 → γ1
qui est circulaire.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
86
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
87
V
L’ ISOMORPHISME DE C URRY-H OWARD
Citons
TO H.B. CURRY : ESSAYS ON COMBINATORY LOGIC
J.R. Hindley & J.P. Seldin ed.
Academic Press
1980
et
PROOFS AND TYPES
J.Y. Girard & Y. Lafont & P. Taylor
Cambridge Tracts in T.C.S., Cambridge, Angleterre
1989
Le résultat décrit dans cette section porte le nom d’isomorphisme mais ce
n’est pas véritablement un isomorphisme car un isomorphisme suppose
des structures de part et d’autre. L’isomorphisme de Curry-Howard est
une identité de fonctionnement entre la Logique Combinatoire typée de
Curry et la logique intuitionniste. Il se traduit par des identifications :
– une preuve est identifiée à un terme fortement normalisable de la Logique Combinatoire typée ;
– une formule est identifiée à un type ;
– si une formule est un théorème, le terme associé à sa preuve est
typable et son type est la formule ;
– enfin, le processus d’élimination des coupures que nous avons vu
précédemment procède par transformation de preuves, ces transformations de preuves se traduisent par des réductions sur les termes
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
88
CHAPITRE V. L’ISOMORPHISME DE CURRY-HOWARD
associées aux preuves si bien qu’une preuve sans coupures correspond à un terme en forme normale.
L’isomorphisme de Curry-Howard concerne la logique intuitionniste
en déduction naturelle et non en calcul de séquents. Et nous venons de
parler de coupures... Examinons tout d’abord comment une démonstration en calcul des séquents se traduit en déduction naturelle. Puis voyons
ce que l’application d’une règle de coupure devient lors de cette traduction. Nous décrirons ensuite l’isomorphisme de Curry-Howard.
1
Traduire le calcul des séquents
Une preuve en calcul des séquents peut être traduite en preuve en
déduction naturelle. Inversement, une preuve en déduction naturelle peut
être traduite en une preuve en calcul des séquents mais pas de manière
unique. Une preuve en déduction naturelle d’une formule B sous des
hypothèses A1 , . . . , An est traduite en la preuve en calcul des séquents du
séquent A1 , . . . , An ` B. Et réciproquement.
1.1
La traduction
Examinons la traduction du calcul des séquents intuitionniste en déduction naturelle. Cette traduction est définie par induction sur la hauteur
de la preuve du séquent.
– L’axiome d’identité A ` A est transforme en la déduction :
[A]
A
– Si la dernière règle de la preuve en calcul des séquents est une règle
de coupure :
Γ ` A ∆, A ` B
(cut)
Γ, ∆ ` B
Par hypothèse d’induction, il existe des preuves en déduction naturelle :
[Γ]
[∆]
[A]
..
..
..
.
.
.
A
B
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
1 Traduire le calcul des séquents
89
Pour obtenir la preuve en déduction naturelle du séquent conclusion
de la règle de coupure, il suffit de prendre la deuxième preuve
donnée ci-dessus et de remplacer toutes les occurrences de [A] par
la première preuve. On obtient alors une preuve de la forme :
[Γ]
..
.
[∆]
..
.
A
..
.
B
– La règle d’échange ne correspond à rien de particulier en déduction
naturelle car une preuve en déduction naturelle sous des hypothèses
A et B est aussi une preuve en déduction naturelle sous des hypothèses B et A.
– La règle d’affaiblissement à gauche se traduit en déduction naturelle
par l’ajout d’une hypothèse inutile dans une déduction.
– La règle de contraction à gauche ne correspond à rien de précis non
plus car une preuve sous des hypothèses A et A est aussi une preuve
sous l’hypothèse A.
– Concernant les règles des connecteurs logiques :
– Une règle à droite en calcul des séquents correspond à une règle
d’introduction en déduction naturelle. Par exemple :
Γ`A
∆`B
Γ, ∆ ` A ∧ B
devient la déduction :
[Γ]
..
.
[∆]
..
.
A
B
A∧B
– Une règle à gauche en calcul des séquents se traduit de manière
évidente en une règle d’élimination en déduction naturelle. Par
exemple, pour traduire :
Γ, A ` C
Γ, A ∧ B ` C
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
90
CHAPITRE V. L’ISOMORPHISME DE CURRY-HOWARD
On considère la preuve en déduction naturelle correspondant au
séquent hypothèse de la règle :
[Γ]
..
.
[A]
..
.
C
et on remplace cette preuve par :
[A ∧ B]
[Γ]
..
.
A
..
.
C
2
Propriétés de la traduction
Cette traduction associe à chaque preuve d’un séquent A1 , . . . , An ` B
la preuve en déduction naturelle de la formule B sous les hypothèses
A1 , . . . , An .
Il est possible que des preuves différentes d’un même séquent soit
traduites en la même preuve en déduction naturelle. Par exemple, la
preuve :
A`A B`B
A, B ` A ∧ B
A ∧ C, B ` A ∧ B
A ∧ C, B ∧ D ` A ∧ B
et la preuve :
A`A
B`B
A, B ` A ∧ B
A, B ∧ D ` A ∧ B
A ∧ C, B ∧ D ` A ∧ B
sont toutes les deux traduites en la preuve en déduction naturelle :
[A ∧ C]
[B ∧ D]
A
B
A∧B
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
3 La coupure en déduction naturelle
91
Donc pour une même preuve en déduction naturelle, on pourrait
trouver plusieurs preuves en calcul des séquents. C’est ce que montre
l’exemple ci-dessus. Il n’y a pas correspondance bi-univoque entre le calcul des séquents et la déduction naturelle. En un sens, on pourrait admettre que la déduction naturelle présente l’essence de la preuve alors
que le calcul des séquents présente des preuves avec beaucoup de manipulations syntaxiques qui sont représentées par les règles structurelles et
par l’ordre d’application des règles.
3
La coupure en déduction naturelle
Lorsque nous parlons de preuves sans coupures, nous supposons que
nous sommes en calcul des séquents puisque la règle du cut est une règle
d’inférence de ce type de calcul. L’équivalent de la coupure en déduction
naturelle est un bout de preuve où une règle d’introduction introduit une
formule qui est éliminée un peu plus bas. En effet, la règle de coupure du
calcul des séquents s’énonce :
Γ`A
∆, A ` B
Γ, ∆ ` B
Pour obtenir la preuve en déduction naturelle de B sous les hypothèses
Γ, ∆ :
– On considère d’abord la preuve et sa traduction en déduction naturelle de Γ ` A. À moins d’être une preuve triviale, celle-ci a utilisé
une règle à droite qui a produit la formule A. Cette règle est éventuellement suivie de quelques règles structurelles qui ne sont que du
méta-sucre pour un système de déduction naturelle. Cette preuve se
traduit en déduction naturelle par une preuve avec une introduction
de la formule A.
– Maintenant, considérons la preuve et sa traduction en déduction
naturelle de ∆, A ` B. Celle-ci utilisera tôt ou tard une règle à gauche
qui fera apparaître A dans une séquent. Nous avons vu que les règles
à gauche devenaient des règles d’élimination en déduction naturelle.
– La combinaison de ces deux preuves comme il a été expliqué plus
haut fournit une preuve en déduction naturelle où une règle d’introduction fournissant la formule de la coupure est suivie d’une règle
d’élimination.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
92
4
CHAPITRE V. L’ISOMORPHISME DE CURRY-HOWARD
L’isomorphisme, version simple
Considérons une logique des propositions intuitionniste avec le seul
connecteur d’implication noté ⇒. Son axiomatisation hilbertienne est :
A⇒B
A
B
A ⇒ (B ⇒ A)
(A ⇒ B ⇒ C) ⇒ (A ⇒ B) ⇒ A ⇒ C
C’est une des axiomatisations possibles mais rappelons qu’elles sont
toutes équivalentes en ce sens qu’une démonstration avec une axiomatisation peut être refaite différemment avec une autre car les règles de l’une
sont dérivables dans l’autre.
Considérons à présent la Logique Combinatoire typée avec une présentation à la Curry :
`M :α→β `N :α
` (M N ) : β
` K : α → (β → α)
` S : (α → β → γ) → (α → β) → α → γ
4.1
Correspondance formule-type
On peut établir de manière triviale une fonction bijective Π des formules vers les types :
– à chaque variable propositionnelle on associe une variable de type
distincte ; par exemple : Π(A) ≡def α, Π(B) ≡def β, Π(C) ≡def γ, etc.
– puis Π(A ⇒ B) ≡def Π(A) → Π(B).
4.2
Correspondance preuve-inférence de type
De manière tout aussi triviale, on peut associer de manière bijective les
preuves en déduction naturelle et les inférences de type. Plus précisément,
à toute preuve d’une formule A, on peut associer de manière bijective un
terme fermé M de la Logique Combinatoire et une preuve de ` M : Π(A).
Cette bijection qui est définie par induction sur la hauteur de la preuve :
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
5 Quelles conséquences ?
93
– Si la preuve est de hauteur strictement supérieure à 0, c’est qu’elle se
termine par une application de la règle du modus ponens :
A⇒B
A
B
Par hypothèse, il existe un terme M et une inférence de ` M : Π(A ⇒
B), c’est-à-dire une inférence de ` M : Π(A) → Π(B). Toujours par
hypothèse d’induction, il existe aussi une terme N et une inférence
de ` N : Π(A). On prolonge ces deux inférences par :
` M : Π(A) → Π(B)
` N : Π(A)
` (M N ) : Π(B)
pour obtenir une inférence de ` (M N ) : Π(B).
– Si la preuve est de hauteur 0, c’est qu’elle n’est constituée que de l’un
des deux axiomes. On vérifie alors de manière triviale qu’il suffit de
prendre le terme K pour le premier axiome et le terme S pour le
deuxième.
Inversement, si l’on possède une inférence de type ` M : α, il suffit de
remplacer toutes les expressions de la forme ` X : T figurant dans cette
inférence par Π−1 (T ) pour obtenir une preuve en déduction naturelle de
Π−1 (α).
5
Quelles conséquences ?
À toute preuve en déduction naturelle correspond de manière bijective
un terme typable de la Logique Combinatoire. Ce terme caractérise la
preuve, il peut être considéré comme étant la preuve tout autant que la
preuve elle-même. On peut reconstruire la preuve en inférant le type du
terme. Le terme est une syntaxe particulière de la preuve. Comme ce terme
est typable, il est fortement normalisable.
6
Étendons l’isomorphisme à la conjonction
Considérons à présent la conjonction déterminée par les axiomes suivants que nous ajoutons à notre système hilbertien :
A ⇒ B ⇒ (A ∧ B)
(A ∧ B) ⇒ A
(A ∧ B) ⇒ B
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
94
CHAPITRE V. L’ISOMORPHISME DE CURRY-HOWARD
Étendons également la Logique Combinatoire avec un combinateur
de formation de paires π tel que (π A B) représente la paire des deux
éléments A et B. Ajoutons également les deux combinateurs projections
πk , k ∈ {1, 2} tels que π1 (π A B) = A et π2 (π A B) = B. Cela ne
pose aucun problème puisque nous savons modéliser ces trois nouveaux
combinateurs.
Étendons aussi la théorie des types avec une nouvelle opération de
construction de types : si α et β sont des schémas de types alors (α × β)
est un schéma de types. Intuitivement, (α × β) est le produit cartésien de
α et β, c’est-à-dire l’ensemble des paires formées d’un élément de type α
et d’un élément de type β.
On se donne également les règles concernant ce nouveau schéma de
types :
` π : α → β → (α × β)
` π1 : (α × β) → α
` π2 : (α × β) → β
Ces règles sont intuitivement évidentes si l’on considère les significations
intuitives des éléments qu’elles contiennent.
On peut ainsi étendre de manière évidente l’isomorphisme de CurryHoward.
7
Étendons l’isomorphisme à la disjonction
Les axiomes de la disjonction que nous devons rajouter à notre système
hilbertien sont :
A ⇒ (A ∨ B)
B ⇒ (A ∨ B)
(A ⇒ C) ⇒ (B ⇒ C) ⇒ (A ∨ B) ⇒ C
On appelle union disjointe de deux ensembles, un ensemble contenant
à la fois les éléments des deux ensembles mais en gardant artificiellement
les duplicatas générés par cette union. On pose en général la définition :
A ⊕ B ≡def {[0, a], a ∈ A} ∪ {[1, b], b ∈ B}
qui permet de représenter l’union disjointe de deux ensembles A et B.
Alors soit [x, y] ∈ A ⊕ B, si x = 0 alors y ∈ A et si x 6= 0 alors y ∈ B. Les
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
8 Étendons l’isomorphisme à la négation
95
entiers 0 et 1 sont modélisés en Logique Combinatoire par les numéraux
de Church 0 et 1. Le test d’égalité à zéro est modélisé par le terme z.
On peut modéliser l’opération inl telle que inl (x) = [0, x] et l’opération
inr (x) = [1, x]. On peut aussi modéliser l’opération choice telle que :
f (a) si x = [0, a]
choice(f )(g)(x) =
g(b) si x = [1, b]
Ces trois fonctions étant modélisables en Logique Combinatoire, on les
ajoute à l’ensemble des constantes.
On ajoute également le schéma de types α ⊕ β où α et β sont des
schémas de types. Et on ajoute les trois règles de typage suivantes :
` inl : α → (α ⊕ β)
` inr : β → (α ⊕ β)
` choice : (α → γ) → (β → γ) → (α ⊕ β) → γ
Ici aussi la justification de ces règles est relativement évidentes si l’on en a
compris les éléments constituants.
On prolonge ainsi l’isomorphisme de Curry-Howard à une logique
intuitionniste pour les connecteurs ⇒, ∧ et ∨.
8
Étendons l’isomorphisme à la négation
On choisit la négation définie par ¬A ≡def A ⇒⊥. L’axiome intuitionniste Hilbertien de la négation peut être choisi comme étant :
⊥⇒ A
mais nous lui préférerons la règle :
⊥
A
On introduit en Logique Combinatoire le type qui est le type vide.
Aucun terme ne peut posséder le type . On ajoute alors la règle de typage :
`M :
`M :α
On voit tout de suite que l’isomorphisme de Curry-Howard se prolonge à la logique intuitionniste propositionnelle tout entière.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
96
9
CHAPITRE V. L’ISOMORPHISME DE CURRY-HOWARD
Les types dépendants
Afin de pouvoir étendre l’isomorphisme de Curry-Howard à la logique
du premier ordre, il est nécessaire d’introduire des types dépendants. En
logique du premier ordre, on a un domaine avec des constantes appartenant
au domaine, des fonctions à arguments et résultats dans le domaine et de
prédicats à arguments dans le domaine.
Un type dépendant est un type paramétré par une donnée, par exemple
un terme de la Logique Combinatoire. Ainsi, un type « tableau » est au
moins paramétré par un entier qui est leur longueur 1 .
N.B. On peut bien entendu formaliser la notion de type dépendant en
donnant des règles de formation de type et des règles de typage mais
cela nous entraînerait trop loin. Nous nous contenterons d’une approche
informelle.
10
L’isomorphisme et la quantification universelle
N.B. Cette section reste informelle.
Q
Soit β(x) un type dépendant, on introduit x:α β(x) le type des fonctions qui ont un résultat de type β(x) lorsque leur argument x est de
type α.
Q
N.B. Alors α → β est équivalent à x:α β où x n’apparaît pas dans β.
Il est alors possible de trouver des règles logiques pour ∀x · A(x) et des
Q
règles de typages pour x:α β(x) qui prolonge l’isomorphisme de CurryHoward à la quantification universelle.
11
L’isomorphisme et la quantification existentielle
N.B. Cette section reste informelle.
P
Soit β(x) un type dépendant, on introduit x:α β(x) le type des couples
formés d’un élément x de type α et d’un élément y de type β(x).
1. Un type tableau est aussi paramétré par un autre type : on dit un tableau de longueur
N contenant des objets de types T . On entre alors dans le domaine des types polymorphes.
Les types polymorphes peuvent aussi être formalisés.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
12 Utilisation informelle
97
N.B. Alors α × β est équivalent à
P
où x n’apparaît pas dans β.
x:α β
Il est alors possible de trouver des règles logiques pour ∃x · α(x) et des
P
règles de typages pour x:α β(x) qui prolonge l’isomorphisme de CurryHoward à la quantification existentielle.
12
Utilisation informelle
Imaginons que l’on prouve en déduction naturelle une formule de la
forme :
∀x · (P (x) ⇒ ∃y · Q(x, y))
Cette formule est identifiée au type :
!
Y
x:α
0
P (x) →
X
0
Q (x, y)
y:α
où P 0 (x) et Q0 (x, y) sont les types correspondant respectivement à P (x) et
Q(x, y).
Le terme F associé à la preuve de la formule par l’isomorphisme de
Curry-Howard possède ce type. Donnons-nous un x normalisable tel que
P (x) alors :
X
` F (x) : P 0 (x) →
Q0 (x, y)
y:α
Si z est le terme associé à une preuve de P (x), on a ` z : P 0 (x) et :
X
` F (x)(z) :
Q0 (x, y)
y:α
Donc F (x)(z) est un couple (πyp) où p est un terme associé à une preuve
de Q(x, y). On peut donc calculer le y associé à un x tel que P (x) par
π1 (F (x)(z)).
N.B. Nous verrons dans le chapitre suivant un système complet, l’arithmétique fonctionnelle du second ordre AF2 , entièrement basé sur l’isomorphisme de Curry-Howard.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
98
13
CHAPITRE V. L’ISOMORPHISME DE CURRY-HOWARD
L’isomorphisme en table
Côté logique
Côté fonctionnel
Côté informatique
preuve
terme fortement normalisable
programme qui se termine
coupure
réduction
étape d’exécution
preuve sans coupures
forme normale
valeur
formule
type
spécification
conjonction (∧)
produit cartésien (×)
enregistrement (record)
disjonction (∨)
union disjointe (⊕)
type variant (union)
implication (⇒)
type fonctionnel (→)
Q
quant. universelle (∀)
produit dépendant (
quant. existentielle (∃)
P
somme dépendante ( )
contradiction (⊥)
type vide ()
14
)
Conclusions
L’isomorphisme de Curry-Howard — la logique doit beaucoup à
H.B. Curry et à son souci de rester simple — montre une analogie très
forte, presque une identité, entre le système de typage de la Logique Combinatoire, théorie des fonctions calculables, et la logique intuitionniste, logique des preuves constructives.
Nous avons montré cet isomorphisme avec la Logique Combinatoire
mais il se montre de la même manière avec le λ-calcul. Certains préféreront une théorie des types à la Church ou encore considérer un λ-calcul typé
mais ce n’est absolument pas nécessaire. On voit même des ouvrages qui
présentent la théorie typée comme étant LA THÉORIE alors que la théorie
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
14 Conclusions
99
non typée a précédé les besoins de typage qui étaient rendus nécessaires
dans certains buts précis. Devant le manque d’expressivité de la théorie
typée, Logique Combinatoire ou λ-calcul, on a développé des systèmes
de types plus expressifs (types dépendants, types inductifs, types polymorphes) qui sont présentés comme des solutions pour rendre la théorie
plus expressive d’un point de vue fonctionnel. Mais n’oublions pas que la
théorie était pleinement expressive sans l’introduction du typage : toutes
les fonctions calculables y sont représentables. L’introduction du typage
concernant les fonctions est une aberration car on restreint fortement le
pouvoir d’expression de la théorie à moins de la complexifier outrageusement et on n’y apporte rien de plus qu’un vague contrôle sémantique sans
intérêt comme l’ont si bien démontré les langages LISP et Scheme.
De même, nous avons montré l’isormorphisme en utilisant un système
hilbertien de déduction naturelle mais on aurait pu le montrer avec tout
autre système de déduction naturelle.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
100
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
101
VI
R ÉALISABILITÉ
Citons
FOUNDATIONS OF CONSTRUCTIVE MATHEMATICS
METAMATHEMATICAL STUDIES
M.J. Beeson
Springer Verlag, 1985
et
INTRODUCTION TO METAMATHEMATICS
S.C. Kleene
Biblioteca Mathematica, North Holland
1952
et
INTUITIONNISM, AN INTRODUCTION
A. Heyting
Studies in Logic, North Holland
1956
On rappelle que la notion de preuve est au centre de la logique intuitionniste. En cela, elle se distingue de la logique classique pour qui seule
la notion de vérité est importante. La théorie de la réalisabilité de Kleene
fait le lien entre l’aspect constructif de la logique intuitionniste et la notion
de processus calculable. Elle permet d’extraire des programmes à partir de
preuves d’existence. Elle est à la base de plusieurs systèmes de synthèse
de programmes.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
102
CHAPITRE VI. RÉALISABILITÉ
Dans ce chapitre, nous allons illustrer la réalisabilité à travers la théorie
EON 1 de M.J. Beeson.
1
La réalisabilité de Kleene
La théorie de la réalisabilité associe des objets aux formules prouvées.
Ces objets sont construits tout au long de la preuve de la formule et
sont appelés des réalisations. Kleene avait associé des entiers, codage de
God̈el oblige, aux formules. Ces entiers étaient les codages de structures
de données ou de fonctions calculables.
On peut également associer, et ce n’est pas fondamentalement différent,
des objets de plus haut niveau comme des λ-expressions ou des termes de
la Logique Combinatoire. Le type et la forme des objets que l’on associe
aux formules prouvées dépend de ce que l’on veut démontrer avec la
réalisabilité.
C’est ce que nous allons faire avec la théorie EON de M. Beeson en associant aux formules prouvables des termes de la Logique Combinatoire. Il
est préférable d’utiliser les combinateurs plutôt que les λ-expressions afin
de ne pas mélanger l’opérateur de liaison de variable λ avec les quantificateurs logiques (∀ et ∃) qui lient également les variables. La définition de
la substitution, cf. section~1.8, devient alors insurmontable.
2
Le langage d’EON
Syntaxe. Dans cette section, on notera parfois l’application (M N ) sous la
forme plus classique M (N ).
Les réalisations d’EON sont des termes de la Logique Combinatoire
auxquels on aura rajouté une opération primitive permettant de fabriquer
des paires d’objets, ainsi que les deux projections associées.
On notera la paire de deux objets a et b par [a, b]. On se rappelle que la
paire [a, b] est construite avec le combinateur π ≡def λ+ a · λ+ b · λ+ x · x a b.
On a π a b = [a, b]. Les deux projections sont notées π1 et π2 . On a
π1 ([a, b]) = a et π2 ([a, b]) = b. On a π1 ≡def λ+ p·p K et π2 ≡def λ+ p·p (K I).
1. Elementary theory of Operations and Numbers
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
3 La partialité
103
On ajoute également les entiers, les booléens et leurs opérations tels
qu’on les avaient définis lors de l’étude de la Logique Combinatoire.
N.B. Nous avons vu que l’on pouvait modéliser tous ces objets en Logique
Combinatoire, cela ne pose donc pas de problèmes de les considérer
comme primitifs.
Les formules sont des formules du langage de la logique du premier
ordre intuitionniste.
N.B. En particulier la négation est définie par ¬A ≡def (A ⇒⊥) où ⊥ est
une contradiction, 0 = 1 par exemple.
3
La partialité
Un terme M de la Logique Combinatoire peut avoir ou ne pas avoir de
forme normale. On introduit la notion « le terme M a une valeur » qui est
une notion plus forte que celle de normalisabilité, que l’on note M ↓ et
qui est définie par :
– les constantes et les variables ont une valeur ;
– si (M N ) ↓ alors M ↓ et N ↓ ;
– (λ+ x · M ) ↓ ;
– si M ↓ et N ↓ alors [M, N ] ↓ .
4
4.1
La logique
Les termes
Les termes de la logique sont les termes de notre Logique Combinatoire.
4.2
Les prédicats
On ajoute le prédicat M ↓ , signifiant M a une valeur, où M est un
terme.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
104
4.3
CHAPITRE VI. RÉALISABILITÉ
Le système formel
Le système est un système de déduction naturelle intuitionniste dont
on retrouvera les règles en section~3.4 du chapitre~II « Formalismes logiques».
4.4
De nouvelles règles
On reprend les règles usuelles de la logique intuitionniste du premier
ordre à l’exception de la règle d’introduction du quantificateur existentiel
qui devient :
..
.
A(M ) ∧ M ↓
∃x · A(x)
∃intro
et la règle d’élimination du quantificateur universel qui devient :
..
.
[∀x · A(x)] ∧ M ↓
A(M )
4.5
∀elim
L’égalité
On ajoute à la logique un prédicat d’égalité tel que si M = N alors M
et N ont une valeur et ont la même valeur. On a l’axiome :
M ↓⇒M =M
4.6
L’égalité faible
On ajoute un prédicat d’égalité faible M ' N qui est vraie si M = N
ou bien si ni M ni N n’ont de valeur. On admet l’axiome suivant :
M ' N ⇒ (A(M ) ⇒ A(N ))
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
5 Les entiers
5
105
Les entiers
On introduit un prédicat M ∈ N signifiant que M est un entier naturel.
On introduit la notation :
∀x ∈ N · A(x) ≡def ∀x · (x ∈ N ⇒ A(x))
On se donne l’axiome de récurrence sur les entiers :
[A(0) ∧ ∀x ∈ N · (A(x) ⇒ A(x + 1))] =⇒ ∀x ∈ N · A(x)
On se donne l’axiome de cohérence :
∀x ∈ N · ¬(x + 1 = 0)
6
Définition de la réalisabilité
On associe à toute formule A un autre formule (e : A) de la même
logique où e est une variable n’apparaissant pas dans A. (e : A) est
une méta-notation désignant une formule que l’on peut construire avec les
définitions qui suivent. On dit que e est la réalisation ou la justification de A.
Si M est un terme alors (M : A) représente la formule (e : A) dans laquelle
on a substitué M à e.
Définition. Soit A une formule et e ∈
/ F V (A), on définit (e : A) par
induction sur la formule A :
–
–
–
–
–
–
si A est atomique alors e : A ≡def A ;
e : A ∧ B ≡def π1 (e) : A ∧ π2 (e) : B ;
e : A ⇒ B ≡def ∀x · [x : A ⇒ e(x) ↓ ∧e(x) : B] ;
e : ∀x · A(x) ≡def ∀y · [e(y) ↓ ∧e(y) : A(y)] ;
e : ∃x.A(x) ≡def π2 (e) : A(π1 (e)) ;
e : A ∨ B ≡def [π1 (e) ∈ N ] ∧ [π1 (e) = 0 ⇒ π2 (e) : A; π2 (e) : B].
où [A ⇒ B; C] ≡def [A ⇒ B] ∧ [¬A ⇒ C] est une méta-notation.
N.B. Si l’on décide de prononcer (e : A) «e est une preuve intuitionniste
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
106
CHAPITRE VI. RÉALISABILITÉ
de A», on retrouve approximativement la définition des preuves intuitionniste de Heyting-Kolmogorov donnée en section~8 du chapitre~I «Introduction à la logique».
On peut donc voir cette définition de la réalisabilité comme une manière
d’internaliser la notion de preuve intuitionniste, c’est-à-dire de la décrire
en utilisant le langage de la logique elle-même.
Définition. On dit qu’une formule A est réalisable s’il existe un terme
M ayant les mêmes variables libres que A tel que l’on puisse prouver
M ↓ ∧M : A. Le terme M est appelé une réalisation de A.
Exemple. Calculons e : ∀x · [P (x) ⇒ ∃y · Q(x, y)] où P (x) et Q(x, y) sont
deux formules quelconques.
On a :
e : ∀x · [P (x) ⇒ ∃y · Q(x, y)]
≡ ∀x · [e(x) ↓ ∧(e(x) : P (x) ⇒ ∃y · Q(x, y))]
≡ ∀x · [e(x) ↓ ∧∀z · [z : P (x) ⇒ e(x)(z) ↓ ∧e(x)(z) : ∃y · Q(x, y)]]
≡ ∀x · [e(x) ↓ ∧∀z · [z : P (x) ⇒ e(x)(z) ↓ ∧π2 (e(x)(z)) : Q(x, π1 (e(x)(z))]]
N.B. On remarque donc que s’il existe e réalisant la formule et si l’on
se donne un x et une réalisation z de P (x) alors y = π1 (e(x)(z)) vérifie Q(x, y). C’est cette propriété qui va être utilisée pour obtenir un programme à partir d’une preuve.
Réalisabilité et négation. Calculons (e : ¬A) où A est une formule
quelconque.
On a :
e : ¬A
≡ e : A ⇒⊥
≡ ∀x · [x : A ⇒ e(x) ↓ ∧e(x) :⊥]
≡ ∀x · [x : A ⇒ e(x) ↓ ∧ ⊥]
⇒ ∀x · [x : A ⇒⊥] car e(x) ↓ ∧ ⊥ ⇒ ⊥
≡ ∀x · [¬(x : A)]
Donc e : ¬A ⇒ (∀x · ¬(x : A)), c’est-à-dire que si A est réalisable, ¬A ne
peut pas l’être.
Exercice. Vérifier :
e : ∀n ∈ N · A(n) ≡ ∀n ∈ N · e(n) ↓ ∧e(n) : A(n)
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
7 Réalisabilité des formules négatives
107
Exercice. Vérifier :
e : ∃n ∈ N · A(n) ≡ π1 (e(n)) ∈ N ∧ π2 (e(n)) : A(π1 (e(n)))
Propriété. On a : [M/x](e : A) ≡ e : [M/x]A si x 6= e.
Démonstration. Par induction. La démonstration est longue car il faut
traiter tous les cas mais elle ne pose pas de difficultés particulières. À faire
en exercice.
7
Réalisabilité des formules négatives
Définition. Une formule négative est une formule ne contenant ni le
connecteur de disjonction ∨ ni le quantificateur existentiel ∃.
Exemple. Par construction, toutes les formules (e : A) sont négatives.
Théorème. Une formule négative prouvable est réalisable. Plus précisément, si A est une formule négative alors :
– il existe un terme M ayant les mêmes variables libres que A et tel que
A ⇒ [M ↓ ∧(M : A)] ;
– (Q : A) ⇒ A pour tout Q.
Démonstration. La démonstration se fait par induction sur la structure de
la formule (Beeson 1985).
– Si A est atomique, on choisit M ≡def (λ+ x1 , . . . , xn .K), où {x1 , . . . , xn } = F V (A)
alors :
A
⇒
[K ↓ ∧A]
car K ↓
≡
[K ↓ ∧(K : A)] car K : A ≡ A
≡
A
⇒A
– Si A ≡ B ∧ C, alors :
A
≡ B∧C
⇒ (MB ↓ ∧MB : B) ∧ C
⇒ (MB ↓ ∧MB : B) ∧ (MC ↓ ∧MC : C)
⇒ (MB ↓ ∧MC ↓ ) ∧ (MB : B ∧ MC : C)
⇒ [MB , MC ] ↓ ∧[MB , MC ] : (B ∧ C)
≡ M ↓ ∧(M : A)
Q:A
hyp. d’induction sur B
hyp. d’induction sur C
≡ Q : (B ∧ C)
≡ π1 (Q) : B ∧ π2 (Q) : C
⇒ B∧C
hyp. d’induction
≡ A
– Si A ≡ B ⇒ C, supposons une variable q telle que q : B, par hyp. d’induction,
on a (q : B) ⇒ B, si on suppose A, alors on en déduit C. Puisque C, toujours
Q:A
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
108
CHAPITRE VI. RÉALISABILITÉ
par hypothèse d’induction, il existe MC tel que MC ↓ ∧(MC : C). On choisit
M ≡def λ+ q.MC . On a M ↓ par définition. Et l’on vient de construire M pour
que si q : B alors M (q) : C ≡ (λ+ q.MC )(q) : C = MC : C soit vrai.
Maintenant, si Q : (B ⇒ C), supposons B, par hyp. d’induction, il existe MB
tel que MB : B. On a donc Q(MB ) : C et donc C par hyp. d’induction. Soit
B ⇒ MB : C ⇒ Q(MB ) : C ⇒ C. Donc B ⇒ C est vrai.
– Si A ≡ ∀x · B. Par hypothèse, il existe MB tel que le résultat soit vrai pour B. On
choisit M ≡def λ+ x · MB . On a :
A
≡ ∀x · B
⇒ B
⇒ MB ↓ ∧MB : B
par hyp. d’induction
≡ (λ+ x · MB ) ↓ ∧MB : B
≡ (λ+ x · MB ) ↓ ∧(λ+ x · MB ) : (∀x · B)
Q:A
≡
⇒
⇒
⇒
≡
Q : ∀x · A
∀x · Q(x) ↓ ∧Q(x) : B
∀x · Q(x) : B
∀x · B
A
par hyp. d’induction
Remarque. La réalisation d’une formule négative est construite à partir de
la formule. On n’a pas besoin de la preuve de la formule pour cela.
8
Réalisabilité et prouvabilité
Théorème. Une formule prouvable sous des hypothèses réalisables est
elle-même réalisable.
Démonstration. La démonstration se fait par induction sur la structure
de la preuve intuitionniste de A. Elle est longue mais ne pose pas de
difficultés particulières.
Application. Une formule prouvable est réalisable.
Démonstration. Une formule prouvable est prouvable sans hypothèse
donc elle est prouvable sous des hypothèses réalisables.
Application. Une formule qui n’est pas réalisable n’est pas prouvable.
Démonstration. Si elle était prouvable alors elle serait réalisable.
Application. Une formule réalisable est cohérente avec la théorie.
Démonstration. Si elle n’était pas cohérente alors il existerait une preuve
de la contradiction ⊥ sous l’hypothèse A, donc une preuve de ¬A ≡
A ⇒⊥. Mais si ¬A est prouvable, alors elle est réalisable et l’on a vu que
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
9 q-Réalisabilité
109
dans ce cas A ne pouvait pas être réalisable.
Propriété. Il existe des formules réalisables mais non prouvables.
Démonstration. (Beeson) D’après le résultat de la section~7, de telles formules doivent contenir soit le connecteur de disjonction, soit le quantificateur existentiel, soit les deux. Par exemple, le principe de Markov :
[∀n ∈ N · A(n) ∨ ¬A(n)] ⇒ [¬¬∃n ∈ N · A(n) ⇒ ∃n ∈ N · A(n)]
9
q-Réalisabilité
Nous ouvrons une parenthèse avec la q-réalisabilité. Cette notion de
réalisabilité est très peu différente de la réalisabilité que nous avons vue
jusqu’à présent. Elle est utile pour démontrer qu’EON est un système
intuitionniste, c’est-à-dire qu’il possède la propriété de disjonction (DP)
et la propriété d’existence (EP).
Définition. La q-réalisabilité est définie comme la réalisabilité sauf pour ⇒,
∨ et ∃, par (les différences sont soulignées) :
– e : A ⇒ B ≡def ∀x · [A ∧ x : A =⇒ e(x) ↓ ∧e(x) : B] ;
– e : ∃x · A(x) ≡def A(π1 (e)) ∧ π2 (e) : A(π1 (e)) ;
– e : A ∨ B ≡def [π1 (e) ∈ N ] ∧ [π1 (e) = 0 ⇒ A ∧ π2 (e) : A; B ∧ π2 (e) : B].
La notion de q-réalisabilité peut être utilisée comme la réalisabilité et
on a les mêmes résultats. La q-réalisabilité permet de démontrer les deux
résultats suivants qui caractérisent une logique dite intuitionniste.
Propriété de disjonction. Si A ∨ B est prouvable alors A est prouvable ou
bien B est prouvable.
Démonstration. Si A ∨ B est prouvable, alors A ∨ B est q-réalisable. Donc,
il existe M tel que (M : A ∨ B).
C’est-à-dire [π1 (M ) ∈ N ] ∧ [π1 (M ) = 0 ⇒ A ∧ π2 (M ) : A; B ∧ π2 (M ) : B]
d’où il est facile de déduire que A est prouvable ou bien B est prouvable.
Propriété d’existence. Si ∃x · A(x) est prouvable alors il existe un terme M
tel que M ↓ et tel que A(M ) est prouvable.
Démonstration. Même type de raisonnement que pour la propriété de
disjonction.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
110
10
CHAPITRE VI. RÉALISABILITÉ
Synthèse de programmes fonctionnels
Un programme fonctionnel, de type LISP ou ML, peut être spécifié
par deux prédicats. En effet, il associe un résultat y en fonction d’un
argument x. La spécification prend la forme :
∀x · [P (x) ⇒ ∃y · Q(x, y)]
et signifie que si l’argument x vérifie la propriété P (x), la pré-condition,
alors le résultat y existe et vérifie la propriété Q(x, y), la post-condition.
Exemple. La division entière par 2 peut être spécifiée avec :
P (x)
≡def
Q(x, y) ≡def
x∈N
(x = 2 ∗ y) ∨ (x = 2 ∗ y + 1)
Pour obtenir un programme calculant la fonction spécifiée, il faut démontrer la formule ∀x · [P (x) ⇒ ∃y · Q(x, y)]. On obtient alors une réalisation e de la formule. Cette réalisation vérifie, cf. section~6 :
∀x · [e(x) ↓ ∧∀z · [z : P (x) ⇒ e(x)(z) ↓ ∧π2 (e(x)(z)) : Q(x, π1 (e(x)(z))]]
Le programme f (x, z) = π1 (e(x)(z)) prend en argument x et une réalisation de P (x) et renvoie le résultat y qui vérifie Q(x, y).
Le problème est évidemment ce z qui réalise P (x). L’idéal est bien sûr
que cet argument ne soit pas utilisé. On peut alors l’éliminer artificiellement. Dans le système CoQ de l’Inria, on distingue deux types de propositions : celles qui ont un contenu calculatoire et celles qui n’en ont pas. Si
P (x) n’a pas de contenu calculatoire, on peut négliger z qui ne sera pas
utilisé dans les calculs.
11
Exemple de synthèse
Nous allons démontrer :
∀x · [x ∈ N =⇒ ∃y · (x = 2 × y) ∨ (x = 2 × y + 1)]
pour obtenir le programme de division entière par deux. On omettra
certaines étapes formelles de la preuve. On tiendra à jour la construction
de la réalisation en même temps que la preuve. Les réalisations seront en
caractères gras.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
11 Exemple de synthèse
11.1
111
Axiome de récurrence
On se sert de l’axiome de récurrence :
[A(0) ∧ ∀x ∈ N · (A(x) ⇒ A(x + 1))] =⇒ ∀x ∈ N · A(x)
A(x) ≡ ∃y · (x = 2 × y) ∨ (x = 2 × y + 1).
avec
11.2
Réalisation de l’axiome de récurrence
On vérifiera que la fonction R qui suit est une bonne réalisation de
l’axiome de récurrence.

Si
x=0

λ+ e · λ+ x · λ+ z ·  Alors π1 (e)
Sinon π2 (e)(x − 1)(z)(R(e)(x − 1)(z))

R ≡def
où e doit être une réalisation de [A(0) ∧ ∀x ∈ N · (A(x) ⇒ A(x + 1))], x doit
être un entier naturel et z une réalisation de x ∈ N.
On se convaincra que la fonction suivante exprimée impérativement
conviendrait aussi :


local c = 0;

 local r = π (e);
1


 TantQue c < x Faire 




+
+
+
λ e · λ x · λ z ·  r := π2 (e)(c)(z)(r); 



 c := c + 1;



 FinTant;
Rsultat := r;
11.3
Réalisation des formules atomiques
Pour les formules atomiques qui sont des axiomes, on prendra K
comme réalisation.
11.4
La preuve (presque formelle)
Base de la récurrence.
De : K : 0 = 2 × 0,
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
112
CHAPITRE VI. RÉALISABILITÉ
on déduit : [0, K] : (0 = 2 × 0) ∨ (0 = 2 × 0 + 1),
puis : [0, [0, K]] : ∃y · (x = 2 × y) ∨ (x = 2 × y + 1).
Soit :
[0, [0, K]] : A(0)
Base de la récurrence.
Supposons e : x ∈ N et f : A(x).
On a : f : ∃y · (x = 2 × y) ∨ (x = 2 × y + 1).
Donc : π2 (f ) : (x = 2 × π1 (f )) ∨ (x = 2 × π1 (f ) + 1).
(1a)
(1b)
Supposons : u : (x = 2 × y)
Alors : u : (x + 1 = 2 × y + 1)
Puis : [1, u] : (x + 1 = 2 × y) ∨ (x + 1 = 2 × y + 1).
Puis : [y, [1, u]] : ∃y · (x + 1 = 2 × y) ∨ (x + 1 = 2 × y + 1).
Donc : [y, [1, u]] : A(x + 1).
(2)
Supposons : u : (x = 2 × y + 1)
Alors : u : (x + 1 = 2 × (y + 1))
Puis : [0, u] : (x + 1 = 2 × (y + 1)) ∨ (x + 1 = 2 × (y + 1) + 1).
Puis : [y + 1, [0, u]] : ∃y · (x + 1 = 2 × y) ∨ (x + 1 = 2 × y + 1).
Donc : [y + 1, [0, u]] : A(x + 1).
(3)
De
 (1a), (1b), (2) et (3), on déduit :

Si
π1 (π2 (f )) = 0
 Alors [π1 (f ), [1, π2 (π2 (f ))]]
 : A(x + 1).
Sinon [π1 (f ) + 1, [0, π2 (π2 (f ))]]
Puis : U0 : A(x) =⇒ A(x + 1).


Si
π1 (π2 (f )) = 0
.
avec : U0 ≡def λ+ f · Alors [π1 (f ), [1, π2 (π2 (f ))]]
Sinon [π1 (f ) + 1, [0, π2 (π2 (f ))]]
Enfin :
U : ∀x · (A(x) =⇒ A(x + 1))


Si
π1 (π2 (f )) = 0
.
avec : U ≡def λ+ x, z, f · Alors [π1 (f ), [1, π2 (π2 (f ))]]
Sinon [π1 (f ) + 1, [0, π2 (π2 (f ))]]
dans lequel x est l’entier naturel, z est la preuve que x ∈ N.
On voit clairement que ce programme traite beaucoup d’informations
inutiles. Une solution est d’éliminer ces informations comme le font Nuprl, PX et CoQ. L’autre solution est de considérer que la preuve de x ∈ N
pour un entier naturel x est simplement K.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
11 Exemple de synthèse
113
C’est l’axiome de récurrence permet de conclure :
F : ∀x ∈ N · ∃y · (x = 2 × y) ∨ (x = 2 × y + 1)
avec :

Si
x=0

λ+ x, z ·  Alors [0, [0, K]]
Sinon U (x, z, F (x − 1, K))

F ≡def
et la fonction spécifiée est :
f (x) = π1 (F (x, K))
Le programme LISP correspondant est :
(defun pi(x y)
(cons x y))
(defun pi1(x)
(car x))
(defun pi2(x)
(cdr x))
(defun U(x z f)
(if (eq (pi1 (pi2 f)) 0)
(pi (pi1 f) (pi 1 (pi2 (pi2 f))))
(pi (+ 1 (pi1 f)) (pi 0 (pi2 f)))
)
)
(defun F(x z)
(if (eq x 0)
(pi 0 (pi 0 ’K))
(U x z (F (- x 1) ’K))
)
)
(defun d2(x)
(pi1 (F x ’K))
)
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
114
CHAPITRE VI. RÉALISABILITÉ
N.B. Dans la réalisation de la règle de récursivité, on aurait pu choisir une
boucle plutôt qu’une récursivité.
N.B. Ce type de programme est bien entendu inefficace mais il peut être
amélioré en supprimant les informations logiques non indispensables au
calcul, c’est le cas des arguments z dans nos programmes. On obtiendrait :
(defun U(x f)
(if (eq (pi1 (pi2 f)) 0)
(pi (pi1 f) (pi 1 (pi2 (pi2 f))))
(pi (+ 1 (pi1 f)) (pi 0 (pi2 f)))
)
)
(defun F(x)
(if (eq x 0)
(pi 0 (pi 0 ’K))
(U x (F (- x 1)))
)
)
(defun d2(x)
(pi1 (F x))
)
N.B. L’efficacité du programme obtenu dépend étroitement de la preuve
utilisée pour le synthétiser. Une preuve mal tournée peut changer la
complexité algorithmique du programme.
N.B. Même si ces programmes ne sont pas très efficaces, quand ils sont
synthétisés formellement avec un système informatique, ils deviennent
prouvés conformes à leurs spécifications.
12
Lien avec le langage PROLOG
L’exemple que nous avons développé dans ce chapitre, la division
entière par 2, repose sur une spécification :
∀x · [x ∈ N ⇒ ∃y · ((x = 2 ∗ y) ∨ (x = 2 ∗ y + 1))]
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
12 Lien avec le langage PROLOG
115
Or, une telle spécification est directement exécutable dans un PROLOG
avec contraintes :
f(x,y) :- x = 2*y .
f(x,y) :- x = 2*y + 1 .
Mais toutes les spécifications ne sont pas directement exécutables. Il
suffit pour cela que l’espace de recherche du programme PROLOG soit
infini. C’est le cas par exemple de les spécification du maximum de deux
entiers comme étant le plus petit des majorants :
∀x1 · ∀x2 · [x1 ∈ N ∧ x2 ∈ N ⇒ ∃y · (∀z ∈ N · (z > x1 ∧ z > x2 =⇒ z > y)]
Avec une telle spécification, PROLOG serait obligé de rechercher le plus
petit des éléments dans un ensemble infini, celui des majorants des deux
entiers et cela PROLOG ne sait pas le faire...
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
116
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
117
VII
L E SYSTÈME AF2
Citons
LAMBDA-CALCUL, TYPES ET MODELÉS
J-L. Krivine
Masson, Paris
1990
Le système AF2 , Arithmétique Fonctionnelle du second ordre, est une logique du second ordre. Une logique du second ordre se définit comme
une logique du premier ordre mais on y ajoute des variables du second ordre.
Une variable du second ordre est à valeur dans l’ensemble des prédicats.
On peut donc quantifier sur les prédicats.
N.B. Le système AF2 est une application de l’isomorphisme de CurryHoward.
N.B. Ce système illustre également l’utilisation de modèles. L’utilisation
de modèle est un moyen complémentaire pour démontrer des résultats
sans rester dans le système lui-même.
1
L’alphabet
L’alphabet comprend :
– des variables d’individus (variable du premier ordre) : x, y, z, . . .
éventuellement indicées par des entiers ;
– des symboles de constantes a, b, c . . . éventuellement indicés par des
entiers ;
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
118
CHAPITRE VII. LE SYSTÈME AF2
– des symboles de fonctions f, g, h, . . . éventuellement indicés par des
entiers ;
– des variables de prédicats (variables du second ordre) : X, Y, Z, . . .
éventuellement indicées par des entiers ;
– des symboles de prédicats p, q, r, . . . éventuellement indicés par des
entiers ;
– le connecteur ⇒ ;
– le quantificateur universel ∀ ;
– les parenthèses ( et ) ainsi que le caractère point.
N.B. Chaque symbole de fonction ou de prédicat et chaque variable de
prédicat possède sa propre arité qui est son nombre d’arguments.
Convention. On conviendra de considérer les constantes a, b, c, . . . comme
des fonctions d’arité zéro a(), b(), c(), . . .
2
Les termes
Ils sont définis inductivement par :
– les variables d’individus sont des termes ;
– les constantes sont des termes ;
– si f est une fonction d’arité n ≥ 0 et si t1 , . . . , tn sont des termes,
f (t1 , . . . , tn ) est un terme ;
– (règle de fermeture)
3
Les formules atomiques
Elles sont définies par :
– si p est un prédicat d’arité n ≥ 0 et si t1 , . . . , tn sont des termes,
p(t1 , . . . , tn ) est une formule atomique ;
– si X est une variable de prédicat d’arité n ≥ 0 et si t1 , . . . , tn sont des
termes, X(t1 , . . . , tn ) est une formule atomique.
4
Les formules
Elles sont définies inductivement par :
– toute formule atomique est une formule ;
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
4 Les formules
119
– si A est une formule et x une variable d’individu, (∀x · A) est une
formule ;
– si A est une formule et X une variable de prédicat, (∀X · A) est une
formule ;
– si A et B sont des formules, (A ⇒ B) est une formule ;
– (règle de fermeture).
Convention. On s’autorisera à oublier certaines paires de parenthèses
lorsqu’aucune ambiguïté n’en résulte.
Définition. Un terme est dit clos s’il ne contient pas de variable.
Définition. Une formule est dite close si elle ne contient pas d’occurrences
de variables libres.
Définition. Si F est une formule dont les variables ayant au moins une
occurrence libre sont x1 , . . . , xn , la clôture de F est la formule ∀x1 , . . . , xn ·
F.
Définition. Deux formules sont α-équivalentes si l’une peut être obtenue
à partir de l’autre par le renommage de certaines de ses variables liées.
Définition. Si n ≥ 0, si x1 , . . . , xn sont des variables, si t1 , . . . , tn sont
des termes et F une formule, [t1 /x1, . . . , tn /xn ]F désigne le résultat de la
substitution simultanée des termes t1 , . . . , tn aux variables x1 , . . . , xn dans
la formule F . La définition exacte est similaire à celle de la substitution en
λ-calcul.
Définition. Si n ≥ 0, si x1 , . . . , xn sont des variables, si t1 , . . . , tn sont des
termes, si F et A sont des formules, si X est une variable de prédicat d’arité
n, on définit la substitution de la formule F à X(x1 , . . . , xn ) dans G, notée
[F/X(x1 , . . . , xn )]G
par induction sur G :
–
–
–
–
–
–
–
[F/X(x1 , . . . , xn )]X(t1 , . . . , tn ) ≡def [t1 /x1 , . . . , tn /xn ]F ;
[F/X(x1 , . . . , xn )]Y (t1 , . . . , tn ) ≡def Y (t1 , . . . , tn ) si Y 6= X ;
[F/X(x1 , . . . , xn )]p(t1 , . . . , tn ) ≡def p(t1 , . . . , tn ) ;
[F/X(x1 , . . . , xn )](G ⇒ H) ≡def [F/X(x1 , . . . , xn )]G ⇒ [F/X(x1 , . . . , xn )]H ;
[F/X(x1 , . . . , xn )](∀x · H) ≡def ∀x · [F/X(x1 , . . . , xn )]H ;
[F/X(x1 , . . . , xn )](∀X · H) ≡def ∀X · H ;
[F/X(x1 , . . . , xn )](∀Y · H) ≡def ∀Y · [F/X(x1 , . . . , xn )]H si Y 6= X.
Définition. Une formule est dite universelle si elle est de la forme
∀x1 , . . . , xn · F où F ne contient pas de quantificateur ∀.
Notation. On notera A1 ⇒ A2 ⇒ · · · An ⇒ B par A1 , A2 , . . . , An ⇒ B.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
120
5
CHAPITRE VII. LE SYSTÈME AF2
Méta-définitions
On adopte les méta-définitions suivantes :
⊥
¬F
F ∧G
F ∨G
F ⇔G
∃x.A
∃X.A
6
≡def
≡def
≡def
≡def
≡def
≡def
≡def
∀X · X
F ⇒⊥
∀X · ((F, G ⇒ X) ⇒ X)
∀X · (F ⇒ X, G ⇒ X ⇒ X)
(F ⇒ G) ∧ (G ⇒ F )
∀Y · ((∀x · (A ⇒ Y )) ⇒ Y )
∀Y · ((∀X · (A ⇒ Y )) ⇒ Y ), Y 6= X
Modèles de la logique du second ordre
Définition. Un modèle M de la logique du second ordre est composé de :
– un ensemble de base |M| appelé le domaine ;
– à chaque constante a, on associe un élément aM ∈ |M| ;
aM est l’interprétation de a ;
– pour tout entier n ≥ 0 la donnée d’un ensemble |M|n ⊆ P(|M|n )
l’ensemble des partie de |M|n l’ensemble des n-uplets d’éléments du
domaine ; |M|n est appelé le domaine de variation des relations n-aires ;
N.B. On suppose que |M|0 = {0, 1} = P(|M|0 ).
– à chaque symbole de fonction f d’arité n ≥ 0, on associe une fonction
fM : |M|n → |M| ;
fM est l’interprétation de f ;
– à chaque symbole de prédicat p d’arité n ≥ 0, on associe une relation
pM ∈ |M|n ;
pM est l’interprétation de p.
Définition. Soit M un modèle de la logique du second ordre, l’interprétation tM d’un terme t est définie par induction :
– si t est une constante a, tM ≡def aM ;
– si t = f (t1 , . . . , tn ) où f est un symbole de fonction d’arité n ≥ 0 et
t1 , . . . , tn sont des termes alors tM ≡def fM (t1M , . . . , tnM ).
Définition. Une relation n-aire avec n ≥ 0 appartient au modèle M de la
logique du second ordre si et seulement si elle appartient à |M|n .
Définition. Un modèle M de la logique du second ordre est dit plein si et
seulement si ∀n ∈ N · |M|n = P(|M|n ).
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
7 Modèle et satisfaction
121
Définition. Soit M un modèle de la logique du second ordre, on note LM
le langage obtenu en rajoutant à la logique les éléments suivants :
– chaque élément de |M| est ajouté en tant que symbole de constante ;
– pour tout entier n ≥ 0, chaque élément de P(|M|n ) est ajouté en tant
que symbole de prédicat.
Un modèle M de la logique du second ordre peut être étendu trivialement
en un modèle de LM : chaque nouvelle constante est interprétée par ellemême, chaque nouveau prédicat est interprété par lui-même.
N.B. On dira simplement un modèle plutôt qu’un modèle de la logique du
second ordre (ouf !).
7
Modèle et satisfaction
Définition. Un modèle M de la logique du second ordre satisfait une
formule close F de LM , on note cela M |= F , si :
–
–
–
–
8
si F ≡ p(t1 , . . . , tn ) alors M |= F si (t1M , . . . , tnM ) ∈ pM ;
si F ≡ G ⇒ H alors M |= F si M |= G implique M |= H ;
si F ≡ ∀x · G alors M |= F si M |= [a/x]G pour tout a ∈ |M| ;
si F ≡ ∀X · G, X d’arité n ≥ 0 alors M |= F si M |= [R/X]G pour
tout R ∈ |M|n .
Conséquence et validité
Définition. On appelle système d’axiomes un ensemble de formules closes.
Définition. Un modèle satisfait un système d’axiomes s’il satisfait chacune
des formules qu’il contient.
Remarque. Un système d’axiomes vide est satisfait par tout modèle.
Définition. Une formule close F est dite une conséquence (valide) d’un
système d’axiome A, on note cela A ` F si tout modèle satisfaisant le
système d’axiomes A satisfait aussi la formule F .
Définition. Une formule close F est dite valide si elle est satisfaite par le
système d’axiomes vide. On note cela ` F .
Proposition. La formule ⊥ n’est satisfaite par aucun modèle. Démonstration. ⊥≡ ∀X ·X est satisfaite par un modèle M si M satisfait [R/X]X ≡ R
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
122
CHAPITRE VII. LE SYSTÈME AF2
est satisfaite pour tout R ∈ |M|0 = {0, 1}. Mais 0 étant une relation vide,
elle ne peut être satisfaite.
Proposition. Soit A et F deux formules de LM n’ayant comme variables
libres respectivement F V (A) = {X}, X d’arité n ≥ 0, et F V (F ) =
{x1 , . . . , xn }. On pose :
Φ = {(a1 , . . . , an ) ∈ |M|n tels que M |= [a1 /x1 , . . . , an /xn ]F }
alors :
M |= [F/X(x1 , . . . , xn )]A
si et seulement si M |= [Φ/X]A
Démonstration. Une fois compris l’énoncé, la difficulté se fait sans difficultés particulières par induction sur la formule A :
– si A ≡ X(t1 , . . . , tn ) alors :
ssi
ssi
ssi
ssi
M |= [F/X(x1 , . . . , xn )]A
M |= [t1 /x1 , . . . , tn /xn ]F
(t1 , . . . , tn ) ∈ Φ
M |= Φ(t1 , . . . , tn )
M |= [Φ/X]A
– si A ≡ ∀x · B alors :
ssi
ssi
ssi
ssi
ssi
M |= [F/X(x1 , . . . , xn )](∀x · B)
pour touta ∈ |M|, M |= [a/x]([F/X(x1 , . . . , xn )]B)
pour tout a ∈ |M|, M |= [F/X(x1 , . . . , xn )]([a/x]B)
pour touta ∈ |M|, M |= [Φ/X]([a/x]B)
pour touta ∈ |M|, M |= [a/x]([Φ/X]B)
M |= ∀x · [Φ/X]B
– etc.
Exercice. Compléter la démonstration précédente.
9
Le schéma de compréhension
Le schéma de compréhension (comprehension scheme) est le schéma
d’axiome composé de la clôture de toutes les formules de la forme :
(SC)
(∀X · A) ⇒ [F/X(x1 , . . . , xn )]A
où X est une variable de prédicat d’arité n ≥ 0.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
9 Le schéma de compréhension
123
Proposition. Tout modèle plein satisfait le schéma de compréhension.
Démonstration. Soit M un modèle plein satisfaisant ∀X · A. Supposons
que X soit d’arité n ≥ 0 et soit F une formule, on pose :
Φ = {(a1 , . . . , an ) ∈ |M|n tels que M |= [a1 /x1 , . . . , an /xn ]F }
On a Φ ∈ |M|n = |M|n puisque le modèle est plein. On a donc M |=
[Φ/X]A puisque M |= ∀ · XA. Et donc M |= [F/X(x1 , . . . , xn )]F par le
résultat de la section précédente.
Proposition. Le schéma de compréhension est équivalent au schéma
d’axiomes :
(SC 0 )
∃Y · ∀x1 , . . . xn · [Y (x1 , . . . , yn ) ⇔ F ]
Autrement dit, toute formule est équivalente à une relation.
Démonstration. Soit A la formule
∃Y · ∀x1 , . . . xn · [Y (x1 , . . . , yn ) ⇔ X(x1 , . . . , xn )]
On a ∀X ·A car il suffit de prendre Y = X. Si on applique (SC) à la formule
A, on déduit :
[F/X(x1 , . . . , xn )]A
c’est-à-dire :
∃Y · ∀x1 , . . . xn · [Y (x1 , . . . , yn ) ⇔ F ]
Réciproquement, soit M un modèle de (SC 0 ). Supposons que M |=
∀X · A où X est d’arité n ≥ 0. Soit F une formule, posons :
Φ = {(a1 , . . . , an ) ∈ |M|n tels que M |= [a1 /x1 , . . . , an /xn ]F }
D’après (SC 0 ), il existe une relation Ψ ∈ |M|n telle que :
M |= ∀x1 , . . . , xn · [Ψ(x1 , . . . , xn ) ⇔ F ]
Soit :
M |= [F/Z(x1 , . . . , xn )](∀x1 , . . . , xn · [Ψ(x1 , . . . , xn ) ⇔ Z(x1 , . . . , xn )])
Par la proposition de la section~8 :
M |= [Φ/Z](∀x1 , . . . , xn · [Ψ(x1 , . . . , xn ) ⇔ Z(x1 , . . . , xn )])
Donc :
M |= ∀x1 , . . . , xn · [Ψ(x1 , . . . , xn ) ⇔ Φ(x1 , . . . , xn )]
D’où Ψ = Φ et Φ ∈ |M|n . Donc si M |= ∀X · A, on a M |= [Φ/X]A et, toujours par la proposition de la section~8, on a : M |= [F/X(x1 , . . . , xn )]A.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
124
10
CHAPITRE VII. LE SYSTÈME AF2
Formules équationnelles
Définition. L’égalité est définie par :
x = y ≡def ∀X · [X(x) ⇒ X(y)]
Proposition. On a :
|= x = x
|= x = y, y = z ⇒ x = z
(SC) |= x = y ⇒ y = x
(SC), x = y |= X(x) ⇒ X(y)
Démonstration. Les deux derniers résultats ont besoin du schéma de
compréhension. Montrons le troisième. Soit M un modèle satisfaisant x =
y, donc M |= ∀X · [X(x) ⇒ X(y)]. Par (SC), on a M |= [F/X(y)](X(x) ⇒
X(y)) pour toute formule F . On choisit la formule F ≡ (y = x). On a donc
M |= [x = y/X(y)]X(x) ⇒ [[x = y/X(y)]X(y) soit : M |= [y/x](y = x) ⇒
[y/y](y = x) et donc : M |= (y = y) ⇒ (y = x). Et comme M |= y = y, on
en déduit : M |= y = x.
Exercice. Compléter la démonstration ci-dessus.
Définition. Une équation ou formule équationnelle est la clôture d’une formule t = u où t et u sont deux termes.
Définition. Un système équationnel (d’axiomes) est un système d’axiomes
dont les formules sont toutes des équations.
Proposition. Soit E un système équationnel, pour que (SC) ∪ E |= u = v
où u et v sont deux termes, il faut et il suffit que l’on puisse démontrer la
formule |=E u = v à l’aide des règles suivantes :
– si (u = v) ∈ E alors |=E u = v ;
– si |=E u = v et |=E v = w alors |=E u = w ;
– si |=E ui = vi pour i ∈ [1, n] alors |=E f (u1 , . . . , un ) = f (v1 , . . . , vn )
pour toute fonction f d’arité n.
Démonstration. Si |=E u = v alors on a a (SC) ∪ E |= u = v de manière
relativement évidente.
Inversement, on vérifie que |=E u = v est une relation d’équivalence :
réflexive, symétrique et transitive sur les termes. D’après le troisième point
elle est compatible avec l’interprétation des symboles fonctionnels. Donc
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
11 Axiomes et règles d’inférences
125
l’ensemble quotienté par cette relation d’équivalence est un modèle. Ce
modèle satisfait E par le premier point. En prenant le modèle plein, on
satisfait (SC). On a donc un modèle de (SC) ∪ E. Soient alors deux termes
u et v tels que (SC) ∪ E |= u = v. Le modèle satisfait (SC) ∪ E donc il
satisfait u = v. On a donc bien u = v dans le modèle et donc |=E u = v.
Remarque. (SC) ∪ E n’est jamais contradictoire car on trouve toujours un
modèle : le modèle à un élément.
11
Axiomes et règles d’inférences
On considère :
– L, un langage du second ordre ;
– E, un système équationnel d’axiomes ;
– A = {A1 , . . . , An }, un ensemble de formules ;
On dit qu’une formule A est une conséquence de (SC) ∪ E ∪ A et on
note cela
A `E A
si et seulement si on peut le prouver à l’aide des règles de démonstration
suivantes :
D0 – A, ¬¬A `E A ;
D1 – A, A `E A ;
D2 – de A, A `E B déduire A `E A ⇒ B ;
D3 – de A `E A et A `E A ⇒ B déduire A `E B ;
D4 – de A `E ∀x · A déduire A `E [t/x]A ;
D5 – de A `E A déduire A `E ∀x · A si x ∈
/ F V (A) ;
D6 – de A `E ∀X · A déduire A `E [F/X(x1 , . . . , xn )]A ;
D7 – de A `E A déduire A `E ∀X · A si X ∈
/ F V (A) ;
D8 – de A `E [u/x]A déduire A `E [v/x]A si (u = v) ∈ E.
Axiomatisation classique. Les règles D0 à D8 ci-dessus forment l’axiomatisation classique de la logique du second ordre.
Axiomatisation intuitionniste. Les règles D1 à D8 ci-dessus forment
l’axiomatisation intuitionniste de la logique du second ordre. Il suffit de
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
126
CHAPITRE VII. LE SYSTÈME AF2
supprimer D0. Si A est une conséquence de (SC) ∪ E ∪ A, on notera cela
A `iE A
12
Le système AF2
Le système AF2 est un λ-calcul typé du second ordre. On se rappelle
l’isomorphisme de Curry-Howard qui identifie types et formules de la
logique du premier ordre, inférences de types et preuves de théorèmes.
Dans le système AF2 , les types sont les formules de la logique du second
ordre.
On considère L un langage du second ordre et E un système équationnel d’axiomes.
Définition. Un contexte Γ s’écrit x1 : A1 , . . . , xn : An où x1 , . . . , xn sont
des variables deux à deux distinctes du λ-calcul et A1 , . . . , An sont des
formules de L.
On dira qu’une variable est libre ou non libre dans ce contexte si elle l’est
dans les formules A1 , . . . , An .
12.1
Les règles de typages
Soit Γ un contexte et t un terme du λ-calcul, on dit que le terme t est
typable à l’aide des axiomes de E dans le contexte Γ et que son type est A,
on note cela
Γ `E t : A
si on peut le déduire à l’aide des règles de typage qui suivent :
T1 – Γ, x : A `E x : A
T2 – de A, x : A `E t : B déduire A `E λx · t : A ⇒ B ;
T3 – de A `E t : A et A `E u : A ⇒ B déduire A `E u(t) : B ;
T4 – de A `E u : ∀x · A déduire A `E u : [t/x]A ;
T5 – de A `E t : A déduire A `E t : ∀x · A si x ∈
/ F V (Γ) ;
T6 – de A `E t : ∀X · A déduire A `E t : [F/X(x1 , . . . , xn )]A ;
T7 – de A `E t : A déduire A `E t : ∀X · A si X ∈
/ F V (A) ;
T8 – de A `E t : [u/x]A déduire A `E t : [v/x]A si (u = v) ∈ E.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
13 Isomorphisme de Curry-Howard
127
Proposition. Si Γ ≡ x1 : A1 , . . . , xn : An et si Γ `E t : A alors F V (t) ⊆
{x1 , . . . , xn }.
Démonstration. Évidente par l’examen des règles de typage.
13
Isomorphisme de Curry-Howard
Théorème. Pour qu’il existe un terme typé à l’aide du système équationnel
E dans le contexte Γ ≡ x1 : A1 , . . . , xn : An , il faut et il suffit que
A1 , . . . , An `iE A.
Démonstration. Ce résultat s’obtient en remarquant l’analogie entre les
règles D1 à D8 et les règles T1 à T8. La démonstration s’effectue par
induction sur la hauteur de l’arbre de preuve ou de l’arbre d’inférence
de type.
Exercice. Rédiger la démonstration du théorème.
14
Réalisabilité dans AF2
Nous allons utiliser la technique de la réalisabilité pour montrer des
résultats intéressants concernant le système AF2 .
Définition. On se donne un langage L du second ordre. On étend alors le
langage L en un langage L+ de la manière suivante :
– pour chaque variable de prédicat X d’arité n ≥ 0, on introduit une
nouvelle variable de prédicat X + d’arité n + 1 ;
– pour chaque symbole de prédicat R d’arité n ≥ 0, on introduit un
nouveau symbole de prédicat R+ d’arité n+1.
Définition. A chaque formule A ∈ L, on associe la formule x :: A ∈ L+ où
x est une variable d’individu n’apparaissant pas dans A. Cette formule se
lit x réalise A et est définie par induction sur la formule A :
–
–
–
–
–
x :: X(t1 , . . . , tn ) ≡def X + (t1 , . . . , tn , x) ;
x :: R(t1 , . . . , tn ) ≡def R+ (t1 , . . . , tn , x) ;
x :: B ⇒ C ≡def ∀y · [y :: B ⇒ x(y) :: C] ;
x :: ∀y · B ≡def ∀y · [x :: B] ;
x :: ∀Y · B ≡def ∀Y + · [x :: B].
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
128
CHAPITRE VII. LE SYSTÈME AF2
Proposition. Soit x, x1 , . . . , xn des variables d’individus deux à deux distinctes, alors :
x :: [t1 /x1 , . . . , tn /xn ]A ≡ [t1 /x1 , . . . , tn /xn ](x :: A)
Autrement dit, réalisabilité et substitution des variables d’individus commutent.
Démonstration. Par induction sur la structure de A.
Exercice. Réaliser la démonstration de la proposition.
Proposition. Soit x, x1 , . . . , xn des variables d’individus deux à deux distinctes, alors :
x :: [F/X(x1 , . . . , xn )]A ≡ [(x :: F )/X + (x1 , . . . , xn , x)](x :: A)
Autrement dit, réalisabilité et substitution de variables de prédicats commutent.
Démonstration. Par induction sur la structure de A.
Exercice. Réaliser la démonstration de la proposition.
15
Théorème d’extension
Théorème d’extension. Soit E un système équationnel d’un langage L du
second ordre et soit t un terme du λ-calcul et A ∈ L tels que :
x1 : A1 , . . . , xn : An `E t : A
alors
x1 : (x1 :: A1 ), . . . , xn : (xn :: An ) `E t : (t :: A)
et en particulier
(SC) ∪ E ` ∀x1 , . . . , xn · [x1 :: A1 , . . . , xn :: An ⇒ t :: A]
Démonstration. La premier résultat se démontre pare induction sur la
preuve de x1 : A1 , . . . , xn : An `E t : A. C’est long à rédiger mais ne
pose pas de difficultés particulières.
Le deuxième résultat découle du premier par application du théorème
sur l’isomorphisme de Curry-Howard.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
16 Modèle standard
16
129
Modèle standard
Définition. On appelle égalité extensionnelle du λ-calcul, normalement
notée =η , l’égalité définie par les axiomes du λ-calcul auxquels on rajoute
l’axiome d’extensionnalité :
Mx=Nx
si x ∈
/ F V (M ) ∪ F V (N )
M =N
Définition. Soit L un langage du second ordre. On appelle modèle standard
de L+ un modèle plein de L+ dont le domaine est l’ensemble des λ-terme
modulo l’égalité extensionnelle =η .
17
Type de données dans AF2
Définition. Soit L un langage du deuxième ordre, soit M un modèle
standard de L+ , soit D[x] une formule de L+ ayant x comme seule variable
libre, on dit que D[x] définit un type de données si et seulement si les deux
conditions suivantes sont remplies :
– tout a ∈ M tel que M |= D[a] est un terme clos ;
– M |= ∀x, y · [y :: D[x] ⇔ x = y ∧ D[x]].
Autrement dit, un type de donnée est un prédicat D[x] qui n’est satisfait
dans le modèle standard que par des termes clos et tel que si D[x] est
satisfait dans le modèle standard alors toute réalisation de D[x] est égale à
x dans le modèle standard, et inversement.
18
Programmation dans AF2
Nous allons nous servir des définitions et des résultats précédents
pour montrer comment on peut se servir de preuves, i.e. d’inférence de
types, dans le système AF2 pour synthétiser des programmes fonctionnels,
i.e. des termes du λ-calcul, grâce à l’isomorphisme de Curry-Howard.
Théorème principal. Soit L un langage du second ordre, soit E un système
équationnel d’axiomes, soit M un modèle standard de L+ , soit f un
symbole de fonction d’arité n ≥ 0, soit D1 [x], . . . , Dn [x] et E[y] des types
de données, alors si t est un terme du λ-calcul tel que :
`E t : ∀x1 , . . . , xn · [D1 [x1 ], . . . , Dn [xn ] ⇒ E[f (x1 , . . . , xn )]]
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
130
CHAPITRE VII. LE SYSTÈME AF2
alors, en notant Di le sous-ensemble des λ-termes satisfaisant le prédicat
Di [x] pour i ∈ [1, n], on a pour tous u1 ∈ D1 , . . . , un ∈ Dn :
M |= t u1 · · · un = f (u1 , . . . , un )
Autrement dit, t se comporte dans le modèle comme f a été spécifiée par E.
Démonstration. D’après le théorème d’extension (TE) et l’isomorphisme
de Curry-Howard (CW), on a :
implique (TE)
implique (CW)
`E
`E
`E
≡
`E
t : ∀x1 , . . . , xn · [D1 [x1 ], . . . , Dn [xn ] ⇒ E[f (x1 , . . . , xn )]]
t : (t :: ∀x1 , . . . , xn · [D1 [x1 ], . . . , Dn [xn ] ⇒ E[f (x1 , . . . , xn )]])
t :: ∀x1 , . . . , xn · [D1 [x1 ], . . . , Dn [xn ] ⇒ E[f (x1 , . . . , xn )]]


y1 :: D1 [x1 ], . . . , yn :: Dn [xn ]

∀x1 , . . . , xn · ∀y1 , . . . , yn · 
⇒
(t y1 · · · yn ) ::: E[f (x1 , . . . , xn )]
Mais pour tout type de données D[x], on a par définition d’un type de
données : y :: D[x] ⇔ x = y ∧ D[x]. Donc :

`E

y1 = x1 ∧ D1 [x1 ], . . . , yn = xn ∧ Dn [xn ]

∀x1 , . . . , xn · ∀y1 , . . . , yn · 
⇒
(t y1 · · · yn = f (x1 , . . . , xn ) ∧ E[f (x1 , . . . , xn )]
En prenant yi = xi pour i ∈ [1, n], on peut montrer :

`E

D1 [x1 ], . . . , Dn [xn ]

∀x1 , . . . , xn · 
⇒
t x1 · · · xn = f (x1 , . . . , xn ) ∧ E[f (x1 , . . . , xn )]
Et en particulier :
`E
19
∀x1 , . . . , xn · [D1 [x1 ], . . . , Dn [xn ] ⇒ (t x1 · · · xn = f (x1 , . . . , xn )]
Les booléens
On introduit deux constantes v, pour vrai, et f , pour faux, dans un
langage L du deuxième ordre. On définit :
B[x] ≡def ∀X · [X(v), X(f ) ⇒ X(x)]
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
20 Les entiers
131
alors B[x] définit un type de données dans tout modèle standard de L+
dans lequel v est interprété par v ≡def λx, y.x et f est interprété par
f ≡def λx, y.y.
En prenant X(x) ≡def (x = v) ∨ (x = f ) dans B[x], on a bien X(v) et
X(f ). Par conséquence, si B[x], on doit avoir X(x) et donc x = v ou bien
x = f qui sont tous les deux des termes fermés.
Puis, considérons y :: B[x] :
≡
≡
≡
≡
y :: B[x]
y :: ∀X · [X(v), X(f ) ⇒ X(x)]
∀X + · y :: [X(v), X(f ) ⇒ X(x)]
∀X + · ∀u, v · [u :: X(v), v :: X(f ) ⇒ (t u v) :: X(x)]
∀X + · ∀u, v · [X + (v, u), X + (f , v) ⇒ X + (x, t u v)]
Prenons alors X + (a, b) ≡def (a = v ∧ b = u) ∨ (x = f ∧ b = v), on a :
y :: B[x]
≡ ∀a, b · [(x = v ∧ y a b = a) ∨ (x = f ∧ y a b = b)]
⇔ ∀a, b · [(x = v ∧ y = λa, b · a) ∨ (x = f ∧ y = λa, b · b)]
⇔ ∀a, b · [(x = v ∧ y = v) ∨ (x = f ∧ y = f )]
⇐ x=y
En prenant X + (a, b) ≡def Y (b) où Y est une variable de prédicat quelconque, on peut également montrer :
y :: B[x] ⇒ ∀Y · [Y (v), Y (f ) ⇒ Y (x)] ≡ B[x]
On a donc bien :
y :: B[x] ⇒ x = y ∧ B[x]
Réciproquement, supposons x = y ∧ B[x]. On a soit x = y = v soit
x = y = f . Dans les deux cas, il est très facile de démontrer que y :: B[x].
N.B. Dans la suite, on confondra v et son interprétation v ainsi que f et
son interprétation f .
20
Les entiers
On introduit la constante 0 et la fonction s dans un langage L du
deuxième ordre. Pour n ≥ 0, on note n le terme sn (0). Puis, on définit :
N[x] ≡def ∀X · [∀y · (X(y) ⇒ X(s(y))) , X(0) =⇒ X(x)]
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
132
CHAPITRE VII. LE SYSTÈME AF2
alors N[x] est un type de donnée dans tout modèle standard de L+ où 0
est interprété par l’entier de Church 0 ≡def λf, x · x et où s est interprété
par la fonction successeur de Church s ≡def λn, f, x · f (n f x). Notons que
pour tout n ≥ 0, n est interprété par l’entier de Church n ≡def λf, x · f n x.
Exercice. Démontrer ce résultat en procédant comme dans le cas des
booléens.
Proposition. On a :
` 0 : N[0]
Démonstration.
x : ∀y · X(y) ⇒ X(s(y)), y : X(0) ` y : X(0)
x : ∀y · X(y) ⇒ X(s(y)) ` λy · y : X(0) ⇒ X(0)
` λx, y · y : ∀y · X(y) ⇒ X(s(y)), X(0) ⇒ X(0)
0 : N[0]
≡
Proposition. On a :
x : N[y] ` s(x) : N[s(y)]
Démonstration. À faire en exercice.
N.B. Dans la suite, on confondra 0 et son interprétation 0 ainsi que s et son
interprétation s.
21
Produit cartésien de types de données
On introduit un symbole de fonction binaire π dans un langage L du
second ordre. Soit A[x] et B[x] deux types de données dans un modèle
standard M de L+ , on définit :
A × B ≡def ∀X · [∀y, z · (A[y], B[z] ⇒ X(π(y, z))) ⇒ X(x)]
alors A × B définit un type de données pour M si π est interprété dans ce
modèle par la paire de Church π ≡def λx, y, z · z x y.
Démonstration. À faire en exercice.
N.B. Dans la suite on confondra pi et son interprétation π. On introduira
aussi les deux projections π1 et π2 .
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
22 Union disjointe de types de données
22
133
Union disjointe de types de données
On introduit deux symboles de fonctions unaires il et ir dans un langage L du second ordre. Soit A[x] et B[x] deux types de données dans un
modèle standard M de L+ , on définit :
A ⊕ B ≡def ∀X · [∀y · (A[y] ⇒ X(il (y))) , ∀z · (B[z] ⇒ X(ir (z))) ⇒ X(x)]
alors A × B définit un type de données pour M si il est interprété dans
ce modèle par il ≡def λx, f, g · f x et ir est interprété dans ce modèle par
ir ≡def λx, f, g · g x.
Démonstration. À faire en exercice.
N.B. Dans la suite on confondra il et son interprétation il ainsi que ir et
son interprétation ir .
23
Résultats utiles
Proposition.
x : A, y : B ` (π x y) : A ∧ B
x : A ∧ B ` (π1 x) : A
x : A ∧ B ` (π2 x) : B
Démonstration. À faire en exercice.
Proposition.
x : A ` (il x) : A ∨ B
y : B ` (ir y) : A ∨ B
x : A ∨ B, y : A ⇒ C, z : B ⇒ C ` (x y z) : C
Démonstration. À faire en exercice.
Proposition.
x : [t/z]A ` (λf · f x) : ∃x · A
Démonstration. À faire en exercice.
Proposition.
x : ([t/z]A) ⇒ B ` (λu · x u) : (∀x · A) ⇒ B
Démonstration. À faire en exercice.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
134
CHAPITRE VII. LE SYSTÈME AF2
24
La fonction prédécesseur
On utilise à présent le système AF2 pour trouver la fonction prédécesseur pour le type de donnée N[x]. Pour cela, on introduit un symbole de
fonction unaire p et on se donne le système équationnel suivant :
E ≡def
p(0) = 0
p(s(x)) = x
et l’on démontre :
`E p : ∀x · N(x) ⇒ N(s(x))
pour un certain p. La réalisation de cette formule sera la fonction recherchée.
Supposons donc un x et N[x], soit :
N[x] ≡def ∀X · [∀y · (X(y) ⇒ X(s(y))) , X(0) =⇒ X(x)]
et prenons :
X(x) ≡def N[x] ∧ N[p(x)]
Montrons informellement que l’on a X(0) :
`E
`E
`E
`E
≡
0 : N[0]
0 : N[0], 0 : N[0]
0 : N[0], 0 : N[p(0)]
(π 0 0) : N[0] ∧ N[p(0)]
(π 0 0) : X(0)
démontré plus haut
en dupliquant
car 0 = p(0) ∈ Een dupliquant
propriété de la conjonction
Montrons informellement que l’on a ∀y · X(y) ⇒ X(s(y)) :
≡
`E
`E
`E
`E
`E
`E
u : X(y)
u : N[y] ∧ N[p(y)]
(π1 u) : N[y]
(π1 u) : N[y], (π1 u) : N[y]
(π1 u) : N[y], s(π1 u) : N[s(y)]
(π1 u) : N[p(s(y))], s(π1 u) : N[s(y)]
(π s(π1 u) (π1 u)) : N[s(y)] ∧ N[p(s(y))]
(π s(π1 u) (π1 u)) : X(s(y))
propriété de la disjonction
duplication !
montré plus haut
car p(s(y)) = y ∈ E
propriété de la conjonction
Donc :
(λu · π s(π1 u) (π1 u)) : ∀y · X(y) ⇒ X(s(y))
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
25 Remarques
135
Maintenant, si n : N[x] alors :
`E n (λu · π s(π1 u) (π1 u)) (π 0 0) : X(x)
Soit :
`E π2 (n (λu · π s(π1 u) (π1 u)) (π 0 0)) : N[p(x)]
Puis :
`E λn · π2 (n (λu · π s(π1 u) (π1 u)) (π 0 0)) : N[x] ⇒ N[p(x)]
Et enfin :
`E λn · π2 (n (λu · π s(π1 u) (π1 u)) (π 0 0)) : ∀x · N[x] ⇒ N[p(x)]
D’après le théorème principal, la fonction :
λn · π2 (n (λu · π s(π1 u) (π1 u)) (π 0 0))
est la fonction prédécesseur sur les entiers de Church ou plus exactement
sur les modèles des données du type de données N[x].
25
Remarques
Pour des raisons pratiques, nous avons fini par ne pas être rigoureux
sur deux points :
1. nous avons volontairement confondu les termes du langage du second ordre avec leurs modèles en λ-calcul ;
2. nous n’avons pas rédigé formellement les preuves.
Le premier point aurait pu facilement être évité en alourdissant légèrement le formalisme. Un autre moyen aurait été de se placer directement
dans le modèle standard qui aurait eu lui-même comme interprétation.
Le deuxième point est plus délicat car la rédaction d’une preuve formelle
et, de plus, intuitionniste peut être particulièrement fastidieuse et longue.
Les résultats obtenus sont justes mais n’ont pas été obtenus avec la rigueur
nécessaire.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
136
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
137
Index
M ↓ , 103
M ' N , 104
⇒, 26
α-conversion, 29
α → β, 73
∃, 26
∀, 26
¬, 26
∨, 26
∧, 26
f (t1 , . . . , tn ), 27
p(t1 , . . . , tn ), 27
(DP) propriété de la disjonction, 60, 109
(EP) propriété d’existence, 60, 109
AF2 , 117
K
type de · · · , 73
S
type de · · · , 74
abstraction
typage et abstraction, 77
AF2, 117
affaiblissement
règle d’· · · , 48
règle d’· · · intuitionniste, 52
application
type d’une · · · , 74
arbre de preuve, 33
arithmétique fonctionnelle, 117
associativité des connecteurs, 27
axiome, 31
règle d’inférence, 33
schéma d’axiomes, 31
base de typage, 76
Beeson M.J., 102
Brouwer L.E.J., 12
calcul des séquents, 30, 46
calculus ratiocinator, 68
Church A., 17
commutative
logique · · · , 49
complétude
théorème de · · · , 70
conjonction, 26
connecteur
associativité, 27
conjonction, 26
disjonction, 26
implication, 26
négation, 26
priorité syntaxique, 27
connecteur binaire, 26
connecteur unaire, 26
consistance, 35
constantes, 26
constructive
logique · · · , 53
contexte
· · · en théorie des types, 76
contraction
règle de · · · , 48
règle de · · · intuitionniste, 52
conventions syntaxiques, 27
coupure
élimination des · · · , 57, 58
degré d’une · · · , 62
règle d’· · · , 48, 57
règle d’· · · intuitionniste, 52, 57, 61
Curry
logique combinatoire, 68
paradoxe de · · · , 67
Curry H.B., 67, 87
Curry-Howard
isomorphisme de · · · , 87
Curry H.B., 12
cut elimination, 57, 58
cut rule, 58
décharger une hypothèse, 40
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
138
déduction naturelle, 30, 37
définition en extension, 21
définition en intention, 21
démonstration, 33
dérivabilité, 34
dérivation d’une règle, 34
degré
· · · d’une coupure, 62
· · · d’une formule, 62
· · · d’une preuve, 62
disjonction, 26
(DP) propriété de la · · · , 60, 109
droite
règle à · · · , 47
échange
règle d’· · · , 48
règle d’· · · intuitionniste, 52
égalité (EON), 104
égalité faible (EON), 104
élimination
règle d’· · · , 39
élimination des coupures, 57, 58
ensembles
théorie des · · · , 71
EON, 102
Euclide, 10
existence
(EP) propriété d’existence, 60, 109
extension
définition en · · · , 21
extension conservative, 35
extension consistante, 35
extension d’une théorie, 34
extension dérivable, 34
extension inconsistante, 34
extensionalité, 21
fonctionnalité
théorie de · · · , 67
fonctions, 26
formalisme logique, 25
formel
système · · · , 36
formule
· · · négative (EON), 107
degré d’une · · · , 62
justification d’une · · · , 105
réalisation d’une · · · , 105
formules, 26
du premier ordre, 27
propositionnelles, 27
Frege, 68
Frege G., 11
Gödel K., 12
gauche
règle à · · · , 47
Gentzen, 46, 58
Gentzen G., 37
Girard J-Y., 48
Girard J-Y., 21
Griss G.F., 18
Hauptsatz, 58
Heyting A., 102
Heyting A., 17
Hilbert D., 44
Hilbert D., 11
Hobbes T., 68
Hobbes T., 10
Howard W.A., 87
hypothèse
décharger une · · · , 40
identité
règle d’· · · intuitionniste, 51
implication, 26
inconsistance, 34
intention
définition en · · · , 21
intentionnalité, 21
introduction
règle d’· · · , 39
intuitionnisme
(DP) propriété de la · · · , 60, 109
(EP) propriété d’existence, 60, 109
propriété de la sous-formule, 61
intuitionniste
logique · · · , 109
isomorphisme de Curry-Howard, 87
Jaskowski S., 37
jugement, 31
justification d’une formule, 105
Kleene S.C., 102
Krivine J-L., 117
langage
· · · du premier ordre, 26
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
139
conjonction, 26
connecteur binaire, 26
connecteur unaire, 26
constantes, 26
conventions syntaxiques, 27
d’ordre un, 27
d’ordre zéro, 27
disjonction, 26
fonctions, 26
formules d’ordre un, 27
formules d’ordre zéro, 27
formules du premier ordre, 27
formules propositionnelles, 27
implication, 26
négation, 26
prédicats, 26
quantificateur, 26
quantificateur existentiel, 26
quantificateur universel, 26
termes, 26
variables d’individus, 26
variables propositionnelles, 26
vocabulaire, 26
Leibniz
calculus ratiocinator, 68
Leibniz G.W., 68
linéaire
logique · · · , 21
linéarité, 49
logique
· · · combinatoire, 68
· · · commutative, 49
· · · constructive, 53
· · · d’ordre 1, 42
· · · des prédicats, 42
· · · du premier ordre, 42
· · · du second ordre, 117
· · · intuitionniste, 109
· · · non-commutative, 49
déduction naturelle, 37
mécanisation de la · · · , 68
système formel, 36
logique linéaire, 21
Lukasiewicz J., 37
méta-mathématiques, 7
méta-variable, 31
Milner R., 71
modus ponens, 69
Morris J.H., 71
négation, 26
· · · classique, 40
· · · intuitionniste, 41
Newton, 68
Newton I., 10
non-commutative
logique · · · , 49
paradoxes, 71
partialité, 103
Poincaré H., 8
point-fixe
théorème du · · · , 70
prédicats, 26
premier ordre, 26
preuve, 30, 33
degré d’une · · · , 62
vérification de · · · , 36
priorité syntaxique des des connecteurs, 27
priorité syntaxique des des quantificateurs,
28
programme
synthèse de ·, 110
propriété d’existence (EP), 60, 109
propriété de la disjonction (DP), 60, 109
propriété de la sous-formule, 61
Pythagore, 10
q-réalisabilité, 109
quantificateur, 26
existentiel, 26
priorité syntaxique, 28
universel, 26
réalisabilité, 102
· · · et prouvabilité, 108
q-réalisabilité, 109
réalisation, 102
réalisation d’une formule, 105
réduction
typage et réduction, 78
règle
· · · à droite, 47
· · · à gauche, 47
· · · d’échange, 48
· · · d’échange intuitionniste, 52
· · · d’affaiblissement, 48
· · · d’affaiblissement intuitionniste, 52
· · · d’identité intuitionniste, 51
· · · de contraction, 48, 52
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
140
· · · de coupure, 48, 57
· · · de coupure intuitionniste, 52, 57, 61
· · · logique, 47
· · · structurelle, 47
dérivation d’une règle, 34
règle d’élimination, 39
règle d’inférence, 33
règle d’introduction, 39
renommage de variables liées, 29
Robinson J.A., 10
Russell B., 11
Russel B., 7, 71
séquent
calcul des séquents, 46
schéma d’axiomes, 31
schéma de types, 79
· · · principal, 79
second ordre, 117
sous-formule
définition de la · · · , 61
propriété de la sous-formule, 61
substitution, 29
typage et substitution, 78
syntaxe
conventions syntaxiques, 27
syntaxe des formules, 26
synthèse de programme, 110
système de preuve, 30
système formel, 25, 36
système hilbertien, 30, 44
termes, 26
théorème, 33
· · · de complétude, 70
· · · du point-fixe, 70
théorie
· · · de la fonction-alité, 67
· · · des ensembles, 71
· · · des types, 67
déduction naturelle, 37
EON, 102
extension conservative d’une · · · , 35
extension consistante d’une · · · , 35
extension d’une · · · , 34
extension dérivable d’une · · · , 34
extension inconsistante d’une · · · , 34
système formel, 36
théorie logique, 25
tiers-exclu, 12–16, 51
transparence référentielle, 49
typage
· · · et abstraction, 77
· · · et réduction, 78
· · · et substitution, 78
type
· · · complexe, 73
· · · d’une application, 74
· · · d’une variable, 76
· · · dépendant, 96
· · · de K, 73
· · · de S, 74
affectation de · · · , 73
base de typage, 76
contexte, 76
schéma de types, 79
typage et abstraction, 77
typage et réduction, 78
typage et substitution, 78
types
théorie des · · · , 67
vérification de preuve, 36
variable
· · · liée, 28
· · · libre, 28
méta-variable, 31
substitution, 29
type d’une · · · , 76
variable liée
α-conversion, 29
renommage, 29
variables d’individus, 26
variables propositionnelles, 26
Whitehead A., 11
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
141
Table des matières
Liste des chapitres
I
5
I NTRODUCTION À LA LOGIQUE
La logique est déclarative . . . . . . . . . . . . .
Les schémas hilbertiens des propositions . . . .
Naissance de la logique mathématique . . . . .
Naissance de la logique formelle . . . . . . . . .
La fin d’un rêve . . . . . . . . . . . . . . . . . .
L’hérésie intuitionniste . . . . . . . . . . . . . .
Les fondements intuitionnistes . . . . . . . . . .
7.1
Une démonstration classique troublante
8
La sémantique des preuves . . . . . . . . . . . .
8.1
Implication et quantification universelle
8.2
La négation intuitionniste . . . . . . . .
8.3
Jusqu’au dogmatisme... . . . . . . . . . .
9
Que reste-t-il de l’intuitionnisme ? . . . . . . . .
9.1
Le raisonnement intuitionniste . . . . . .
10 Différents ordres de logique . . . . . . . . . . .
11 La logique linéaire . . . . . . . . . . . . . . . . .
11.1 Intensionalité et extensionalité . . . . . .
11.2 Logique et intentionnalité . . . . . . . .
11.3 Actions et situations . . . . . . . . . . . .
11.4 En résumé... . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
8
9
10
11
11
12
14
16
17
18
18
18
19
19
20
21
21
22
23
23
F ORMALISMES LOGIQUES
Formules et syntaxe . . . . . . . . . . .
1.1
Vocabulaire . . . . . . . . . . . .
1.2
Les termes . . . . . . . . . . . .
1.3
Les formules propositionnelles
1.4
Les formules du premier ordre .
1.5
Conventions syntaxiques . . . .
1.6
Variables libres et liées . . . . .
1.7
Renommage des variables liées
1.8
Substitution . . . . . . . . . . .
2
Systèmes de preuves . . . . . . . . . .
2.1
Axiomes . . . . . . . . . . . . .
2.2
Schémas d’axiomes . . . . . . .
2.3
Règles d’inférence . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
26
26
26
27
27
27
28
29
29
30
31
31
32
1
2
3
4
5
6
7
II
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
142
3
4
5
6
7
8
9
10
11
III
1
2
3
4
5
6
IV
1
2.4
Démontrer un théorème . . . . . . . . . . . . . .
2.5
Extensions d’une théorie . . . . . . . . . . . . . .
2.6
Systèmes formels et logiques . . . . . . . . . . . .
Déduction naturelle . . . . . . . . . . . . . . . . . . . . .
3.1
La preuve en déduction naturelle . . . . . . . . .
3.2
Axiomes dans une déduction . . . . . . . . . . .
3.3
Hypothèses dans une déduction . . . . . . . . . .
3.4
Les règles d’un système de déduction naturelle .
3.5
Règles de la logique des propositions . . . . . . .
3.6
Règles de la logique des prédicats . . . . . . . . .
3.7
Autre formulation des preuves . . . . . . . . . .
Les systèmes hilbertiens . . . . . . . . . . . . . . . . . . .
4.1
Axiomes pour la logique des propositions . . . .
4.2
Exemple de preuve . . . . . . . . . . . . . . . . .
4.3
Axiomes pour la logique des prédicats . . . . . .
Le calcul des séquents . . . . . . . . . . . . . . . . . . . .
5.1
Les séquents . . . . . . . . . . . . . . . . . . . . .
5.2
Les axiomes et les règles d’inférence . . . . . . .
5.3
La structure des règles . . . . . . . . . . . . . . .
Le calcul des séquents classique . . . . . . . . . . . . . .
6.1
Les règles structurelles . . . . . . . . . . . . . . .
6.2
Règles structurelles et linéarité . . . . . . . . . . .
6.3
Les règles logiques de la logique des propositions
6.4
Les règles logiques de la logique des prédicats . .
6.5
Exemple de démonstration . . . . . . . . . . . . .
Le calcul des séquents intuitionniste . . . . . . . . . . . .
7.1
Les règles structurelles intuitionnistes . . . . . .
7.2
Les règles logiques de la logique des propositions
7.3
Les règles logiques de la logique des prédicats . .
La logique intuitionniste est constructive . . . . . . . . .
8.1
La logique classique n’est pas constructive . . . .
Déduction naturelle en calcul des séquents . . . . . . . .
Une démonstration classique . . . . . . . . . . . . . . . .
Déduction naturelle et calcul des séquents . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
33
34
36
37
37
38
38
39
39
42
42
44
44
45
45
46
46
47
47
47
48
49
50
50
51
51
51
52
53
53
54
55
56
56
É LIMINATION DES COUPURES
Le Hauptsatz de Gentzen . . . . . . . . . . . . . . . . . . . .
La dernière règle en logique intuitionniste . . . . . . . . . .
Propriété de disjonction (DP) . . . . . . . . . . . . . . . . . .
Propriété d’existence (EP) . . . . . . . . . . . . . . . . . . . .
Propriété de la sous-formule . . . . . . . . . . . . . . . . . .
La démonstration du Hauptsatz de Gentzen . . . . . . . . .
6.1
Degrés d’une formule, d’une coupure, d’une preuve
6.2
La proposition principale . . . . . . . . . . . . . . . .
6.3
Le théorème . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
57
58
58
59
60
60
62
62
63
65
T HÉORIE DES TYPES
Le paradoxe de Curry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1
Note historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
L’approche de Curry . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
68
68
69
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
143
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
V
1.3
Le paradoxe . . . . . . . . . . . . . . . . . .
1.4
La solution proposée . . . . . . . . . . . . .
1.5
Théorie des ensembles et théorie des types .
La théorie des types en Logique Combinatoire . . .
2.1
Les types en informatique . . . . . . . . . .
2.2
L’approche de Curry . . . . . . . . . . . . .
2.3
Définition des types . . . . . . . . . . . . . .
Affectation de type . . . . . . . . . . . . . . . . . .
3.1
Les formules . . . . . . . . . . . . . . . . . .
3.2
Le type d’une application . . . . . . . . . . .
3.3
Le type de K . . . . . . . . . . . . . . . . . .
3.4
Le type de S . . . . . . . . . . . . . . . . . .
3.5
Non unicité du schéma de types d’un terme
3.6
Schéma de types d’une application . . . . .
Exemple : déduction d’un schéma de types de I . .
Introduction aux variables . . . . . . . . . . . . . .
5.1
Nouvelles formules . . . . . . . . . . . . . .
5.2
Nouveaux axiomes . . . . . . . . . . . . . .
5.3
Schéma de types d’une application . . . . .
Abstraction et typage . . . . . . . . . . . . . . . . .
Réduction et typage . . . . . . . . . . . . . . . . . .
Substitution et typage . . . . . . . . . . . . . . . . .
Schéma de types principal . . . . . . . . . . . . . .
Typage et normalisation forte . . . . . . . . . . . .
L’isomorphisme de Curry-Howard . . . . . . . . .
L’algorithme de Morris . . . . . . . . . . . . . . . .
12.1 Exemple d’application . . . . . . . . . . . .
Des variantes dans le typage . . . . . . . . . . . . .
Des systèmes de typage plus expressifs . . . . . . .
Présentation à la Church . . . . . . . . . . . . . . .
Le typage en λ-calcul . . . . . . . . . . . . . . . . .
Solution des exercices . . . . . . . . . . . . . . . . .
L’ ISOMORPHISME DE C URRY-H OWARD
Traduire le calcul des séquents . . . . . . . . . . .
1.1
La traduction . . . . . . . . . . . . . . . . .
2
Propriétés de la traduction . . . . . . . . . . . . .
3
La coupure en déduction naturelle . . . . . . . . .
4
L’isomorphisme, version simple . . . . . . . . . .
4.1
Correspondance formule-type . . . . . . .
4.2
Correspondance preuve-inférence de type
5
Quelles conséquences ? . . . . . . . . . . . . . . .
6
Étendons l’isomorphisme à la conjonction . . . .
7
Étendons l’isomorphisme à la disjonction . . . . .
8
Étendons l’isomorphisme à la négation . . . . . .
9
Les types dépendants . . . . . . . . . . . . . . . .
10 L’isomorphisme et la quantification universelle .
11 L’isomorphisme et la quantification existentielle .
12 Utilisation informelle . . . . . . . . . . . . . . . .
13 L’isomorphisme en table . . . . . . . . . . . . . .
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
70
70
71
71
72
72
72
73
73
73
73
74
74
75
75
76
76
76
77
77
78
78
79
79
79
80
81
82
83
84
84
85
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
87
88
88
90
91
92
92
92
93
93
94
95
96
96
96
97
98
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
144
14
VI
Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
R ÉALISABILITÉ
La réalisabilité de Kleene . . . . . . . . . . .
Le langage d’EON . . . . . . . . . . . . . . .
La partialité . . . . . . . . . . . . . . . . . . .
La logique . . . . . . . . . . . . . . . . . . .
4.1
Les termes . . . . . . . . . . . . . . .
4.2
Les prédicats . . . . . . . . . . . . . .
4.3
Le système formel . . . . . . . . . . .
4.4
De nouvelles règles . . . . . . . . . .
4.5
L’égalité . . . . . . . . . . . . . . . .
4.6
L’égalité faible . . . . . . . . . . . . .
5
Les entiers . . . . . . . . . . . . . . . . . . .
6
Définition de la réalisabilité . . . . . . . . . .
7
Réalisabilité des formules négatives . . . . .
8
Réalisabilité et prouvabilité . . . . . . . . . .
9
q-Réalisabilité . . . . . . . . . . . . . . . . .
10 Synthèse de programmes fonctionnels . . .
11 Exemple de synthèse . . . . . . . . . . . . .
11.1 Axiome de récurrence . . . . . . . . .
11.2 Réalisation de l’axiome de récurrence
11.3 Réalisation des formules atomiques .
11.4 La preuve (presque formelle) . . . . .
12 Lien avec le langage PROLOG . . . . . . . .
1
2
3
4
VII L E SYSTÈME AF2
1
L’alphabet . . . . . . . . . . . . . . . .
2
Les termes . . . . . . . . . . . . . . . .
3
Les formules atomiques . . . . . . . . .
4
Les formules . . . . . . . . . . . . . . .
5
Méta-définitions . . . . . . . . . . . . .
6
Modèles de la logique du second ordre
7
Modèle et satisfaction . . . . . . . . . .
8
Conséquence et validité . . . . . . . . .
9
Le schéma de compréhension . . . . .
10 Formules équationnelles . . . . . . . .
11 Axiomes et règles d’inférences . . . . .
12 Le système AF2 . . . . . . . . . . . . .
12.1 Les règles de typages . . . . . .
13 Isomorphisme de Curry-Howard . . .
14 Réalisabilité dans AF2 . . . . . . . . . .
15 Théorème d’extension . . . . . . . . . .
16 Modèle standard . . . . . . . . . . . . .
17 Type de données dans AF2 . . . . . . .
18 Programmation dans AF2 . . . . . . .
19 Les booléens . . . . . . . . . . . . . . .
20 Les entiers . . . . . . . . . . . . . . . .
21 Produit cartésien de types de données .
22 Union disjointe de types de données .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
98
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
101
102
102
103
103
103
103
104
104
104
104
105
105
107
108
109
110
110
111
111
111
111
114
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
117
117
118
118
118
120
120
121
121
122
124
125
126
126
127
127
128
129
129
129
130
131
132
133
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
145
23
24
25
Résultats utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
La fonction prédécesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Remarques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
I NDEX
137
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
146
Patrick Bellot, ENST — Akim Demaille, EPITA
Licence des droits d’usage en page 3
Téléchargement