PATRICK BELLOT ÉCOLE NATIONALE SUPÉRIEURE DES TÉLÉCOMMUNICATIONS. relu et corrigé par
|
|
|
- Laure Plamondon
- il y a 10 ans
- Total affichages :
Transcription
1 PATRICK BELLOT ÉCOLE NATIONALE SUPÉRIEURE DES TÉLÉCOMMUNICATIONS relu et corrigé par AKIM D LE ÉCOLE POUR L INFORMATIQUE ET LES TECHNIQUES AVANCÉES
2 2
3 3 LICENCE 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].
4 4
5 5 Liste des chapitres Chapitre I INTRODUCTION À LA LOGIQUE Chapitre II FORMALISMES LOGIQUES Chapitre III ÉLIMINATION DES COUPURES Chapitre IV THÉORIE DES TYPES Chapitre V L ISOMORPHISME DE CURRY-HOWARD Chapitre VI RÉALISABILITÉ Chapitre VII LE SYSTÈME AF
6 6
7 7 I INTRODUCTION À 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
8 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 n 2 3 n ln n
9 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 R 0 (x, y). R 0 (x, y) peut être par exemple l égalité x = y. Pour deux objets x 0 et y 0 spécifiés, R 0 (x 0, y 0 ) 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 R 0 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 (x 0, y 0 ) tel que R 0 (x 0, y 0 ) 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.
10 10 CHAPITRE I. INTRODUCTION À LA LOGIQUE 3 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 lo-
11 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...
12 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
13 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 positifs a et b tels que a b soit rationnel. On considère 2 2 sachant que 2 est irrationnel : si 2 2 est rationnel, on choisit a = b = 2 ; si 2 2 est irrationnel, on choisit a = 2 2 et b = 2 car a b = 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 dans le développement décimal de π. Deux cas peuvent se présenter : il existe une séquence dans le développement décimal de π, le nombre σ sera donc où k, le nombre de chiffres 3, est égal au rang du chiffre 9 de la séquence dans le développement décimal de π ; alors σ = 10k 1 ; 3.10 k soit une telle séquence n existe pas et σ est égal à soit 1 3. 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 existe dans le développement décimal de π, soit elle n y existe pas.
14 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 (E i ) 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) E i 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.
15 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 : { le plus grand nombre premier tel que L 2 est aussi premier L = 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 x 0 tel que A(x 0 ) 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.
16 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))
17 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 = 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
18 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
19 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
20 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épendam-
21 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 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 :
22 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 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
23 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é 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 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...
24 24
25 25 II FORMALISMES 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.
26 26 CHAPITRE II. FORMALISMES LOGIQUES 1 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 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 t 1,..., t n sont des termes alors
27 1 Formules et syntaxe 27 l application f(t 1,..., t n ) 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 t 1,..., t n sont des termes alors l application p(t 1,..., t n ) 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) ;
28 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(t 1,..., t n )) = {x 1,, x m } où x 1,, x m sont les variables ayant au moins une occurrence dans t 1,, t n ; 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.
29 1 Formules et syntaxe 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(t 1,..., t n ) def f([t/x]t 1,..., [t/x]t n ) si f est une fonction d arité n et t 1,..., t n sont des termes ; [t/x]p(t 1,..., t n ) def p([t/x]t 1,..., [t/x]t n ) si p est un prédicat d arité n et t 1,..., t n 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 ;
30 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. HINDLEY, 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.
31 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 : = = = = = = = = = = = = = = =
32 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) S X Y Z := X Z (Y Z) (K) 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 : H 1 H 2 H n (r) C
33 2 Systèmes de preuves 33 où (r) est le nom de la règle, H 1, H 2,..., H n sont des hypothèses ou prémisses et C est la conclusion. Une telle règle signifie que si H 1, H 2,..., H n 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 (sym) X = Y X = Z Y = Z (tr) 2.4 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 := f x x en Logique Combinatoire, on écrit l arbre suivant : (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) (al) S S (K I) f := S f I (S) S f I x := f x (I x) f x (I x) := f x x (ar) (tr) S S (K I) f x := S f I x 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
34 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 = I X = K I I X = K I I (K X I) = S (K I) (K X) I = K (K I) (K X) I car S = K = K I I = 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.
35 2 Systèmes de preuves 35 Exemple. Si on rajoute à la Logique Combinatoire une règle : M = N N := L (eq red tr) M = L 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 (eq red) M = N N = L (eq tr) M = L c) 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 : M x = N x 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
36 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 Systèmes formels et logiques a) 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.
37 3 Déduction naturelle 37 c) 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 H 1,..., H n 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
38 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 :
39 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 A B. B intro. A B A elim1. A B B elim2 b) Disjonction. A A B intro1. B A B intro2
40 40 CHAPITRE II. FORMALISMES LOGIQUES. A B C [A]. C [B]. C elim c) Implication [A]. B A B intro. A B B. A 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 A B k intro 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]. B A [ A]. B (A) à laquelle on rajoute les règles suivantes :
41 3 Déduction naturelle 41 [A]. B A [A]. B intro. A B. A 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 [ A] A A intro2 (A) (A A) A A A A intro1 (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 :
42 42 CHAPITRE II. FORMALISMES LOGIQUES [A]. B A [A]. B intro. A B. A elim 3.6 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 B [A]. 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.
43 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) (A A) A A intro2 e A (A A) (hyp) A A intro1 e A A
44 44 CHAPITRE II. FORMALISMES LOGIQUES 4 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 A (modus ponens) B 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 Axiomes pour la logique des propositions a) Conjonction A B A B A B A A B B b) Disjonction A A B B A B A B (A C) (B C) C c) Implication A B A (A (B C)) (A B) A C d) Négation classique A A A A B
45 4 Les systèmes hilbertiens 45 e) 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.
46 46 CHAPITRE II. FORMALISMES LOGIQUES a) Quantification universelle A B x / F V (A) A x B x A [t/x]a b) Quantification existentelle [t/x]a x A A B x / F V (B) x.a B 5 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 : A 1,..., A n B 1,..., B m où A 1,..., A n et B 1,..., B m sont des formules. Intuitivement, un tel séquent signifie que si les formules A 1,..., A n sont toutes vraies alors au moins l une des formules B 1,..., B m est vraie. On pourrait signifier cela par une formule : A 1... A n B 1... B m disant que la conjonction des formules A 1,..., A n implique la disjonction des formules B 1,..., B m mais cette analogie doit être prise avec précaution comme l explique J-Y. Girard avec la Logique Linéaire.
47 6 Le calcul des séquents classique 47 Notation. Dans la suite, Γ,, Θ,... désignent des séquences éventuellement vides de formules du type A 1,..., A n. 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.
48 48 CHAPITRE II. FORMALISMES LOGIQUES 6.1 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 Γ, A Γ, Γ, 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 : Γ (affg ) Γ, A Γ (affd ) Γ, A 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 (cong ) Γ, A Γ, A, A (cond ) Γ, A Enfin, les règles d échange permettent de permuter deux formules soit à gauche du séquent soit à droite du séquent : Γ, A, B, Θ (echg ) Γ, B, A, Θ Γ, A, B, Θ (echd ) Γ, B, A, Θ
49 6 Le calcul des séquents classique 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 (aff g ) revient en quelque sorte à rajouter des hypothèses inutiles comme si elles n avaient pas de valeurs. La règle (con g ) revient à pouvoir dupliquer librement une hypothèse. Tandis que les règles (aff d ) et (con d ) 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
50 50 CHAPITRE II. FORMALISMES LOGIQUES et de contraction. 6.3 Les règles logiques de la logique des propositions a) Conjonction Γ, A g1 Γ, A B Γ, B g2 Γ, A B Γ, A Γ, B d Γ, Γ,, A B b) Disjonction Γ, A Γ, B Γ, A g Γ, Γ, A B, d1 Γ, A B Γ, B Γ, A B d2 c) Implication Γ, A Γ, B Γ, A, B g d Γ, Γ, A B, Γ, A B d) Négation Γ, A g Γ, A Γ, A d Γ, A 6.4 Les règles logiques de la logique des prédicats a) Quantification universelle Γ, [t/x]a g Γ, x A Γ, A Γ, x A d
51 7 Le calcul des séquents intuitionniste 51 b) Quantification existentielle Γ, A g Γ, x A Γ, [t/x]a d Γ, x A 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] ( d ) A, A ( d2 ) A, A A (echd ) A A, A ( d1 ) A A, A A (cond ) A A 7 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
52 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 : Γ A Γ, A B Γ, Γ B Γ B (affg ) Γ, A B Γ (affd ) Γ A Γ, A, A B (cong ) Γ, A B La règle de contraction à droite a disparu car elle supposait plus d une formule à droite du séquent. Γ, A, B, C (echg ) Γ, B, A, C La règle d échange à droite a disparu car elle supposait plus d une formule à droite du séquent. 7.2 Les règles logiques de la logique des propositions a) Conjonction Γ, A C g1 Γ, A B C Γ, B C g2 Γ, A B C Γ A Γ B d Γ, Γ A B b) Disjonction Γ, A C Γ, B C g Γ, Γ, A B C Γ A Γ A B d1 Γ B Γ A B d2
53 8 La logique intuitionniste est constructive 53 c) Implication Γ A Γ, B C g Γ, Γ, A B C Γ, A B d Γ A B d) Négation Γ A g Γ, A Γ, A d Γ A 7.3 Les règles logiques de la logique des prédicats a) Quantification universelle Γ, [t/x]a B g Γ, x A B Γ A Γ x A d b) Quantification existentielle Γ, A B g Γ, x A B Γ [t/x]a d Γ x A 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 Curry- Howard. 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.
54 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 π 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 M. Puis construisons la preuve suivante de B qui utilise la règle de coupure, elle est due à J-Y. Girard : π. B (affd ) C, B π. B (affg ) C B (cut) B, B (cond ) B Soit P le terme associé à cette preuve par l isomorphisme de Curry- Howard. 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 π :
55 9 Déduction naturelle en calcul des séquents 55 π π. B B (aff + ech + con). B B (aff + ech + con) La mention (aff +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 associés à ces deux preuves par l isomorphisme de Curry- Howard sont en forme normale et différents, donc N N. Mais on a cependant P := N et P := N, et par le théorème de Church-Rosser, on a N = N, ce qui contredit N N. 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 ( intro ) Γ A B Γ A B ( elim1 ) Γ A Γ A B ( elim2 ) Γ B 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.
56 56 CHAPITRE II. FORMALISMES LOGIQUES 10 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 id F F G G d id F, G F G H H g F, G, (F G) H H aff d F, G, (F G) H H, H d F, (F G) H H, G H d (F G) H F H, G H d1 (F G) H (F H) (G H), G H d2 (F G) H (F H) (G H), (F H) (G H) con d (F G) H (F H) (G H) Cette démonstration utilise des règles, (con d ) et (aff d ), 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 A 1,..., A n B en calcul des séquents, une preuve de B sous les hypothèses A 1,..., A n en déduction naturelle ; inversement, on peut associer à une preuve de B sous les hypothèses A 1,..., A n en déduction naturelle, une preuve du séquent A 1,..., A n B dans le calcul des séquents correspondant.
57 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 Γ, A B Γ, Γ B Son analogue en calcul des séquents classique est : Γ, A Γ, A Γ, Γ, 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
58 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.
59 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 (aff d ) 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 (aff d ), la seule application de cette règle fournissant un séquent conclusion sans hypothèse à gauche serait : (affd ) A mais le séquent vide 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
60 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 d1 A B A B et donc, soit A dans le premier cas, soit B dans le deuxième cas, sont prouvables. B d2 4 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.
61 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 : 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 Γ, A B Γ, Γ 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émon-
62 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 : 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 alors que le nombre de protons pouvant être contenus dans l univers est estimé inférieur à 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.
63 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 sont des séquences vides de formules) ou classique : Γ, A Γ, A Γ, Γ, 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 Γ, A un autre séquent dont la preuve est aussi de degré strictement inférieur à d, on peut construire une preuve de Γ, Γ, 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 Γ, A 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 d Γ 1, Γ 2 1, 2, B C Γ 1, Γ 2, Γ 3 1, 2, 3 Γ 3, B 3 g1 Γ 3, B C 3 (cut)
64 64 CHAPITRE III. ÉLIMINATION DES COUPURES par la preuve : Γ 1 1, B Γ 3, B 3 (cut) Γ 1, Γ 3 1, 3 (aff g, ch g) Γ 1, Γ 2, Γ 3 1, 3 (aff d, ch d ) Γ 1, Γ 2, Γ 3 1, 2, 3 où (affd, 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 (affg, 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 Γ, A Γ, Γ, avec A de degré d. Le lemme ci-dessus permet immédiatement de conclure.
65 6 La démonstration du Hauptsatz de Gentzen 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.
66 66
67 67 IV THÉ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é.
68 68 CHAPITRE IV. THÉORIE DES TYPES 1 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.
69 1 Le paradoxe de Curry 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) et : P (P A (P A B)) (P A B) (1.3) 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.
70 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 : F Z 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 : F Z = (λ + z P z (P z Z)) F Z (propriété du point-fixeur Y ) = P F Z (P F Z Z) (substitution) = P (P F Z (P F Z Z)) (P F Z Z) (remplacement du 1 er F Z par sa valeur) (1.5) On effectue à présent une déduction : (a) P (P F Z (P F Z Z)) (P F Z Z) (axiome 1.3) (b) P F Z (P F Z Z) (règle d égalité 1.1) (c) F Z (règle d égalité 1.1) (d) P F Z Z (modus ponens avec (b) et (c)) (e) 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.
71 2 La théorie des types en Logique Combinatoire 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 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.
72 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.
73 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 : α β (M N) : β 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
74 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 : puis enfin : X Z : β γ Y Z : β 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
75 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 : On retrouve ainsi β. M : β α (M N) : α N : β 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 α ρ β ρ ρ γ ρ S : (ρ (ρ ρ) ρ) (ρ ρ ρ) ρ ρ (S K) : (ρ ρ ρ) ρ ρ type-schéma de K avec α ρ β ρ ρ K : ρ (ρ ρ) ρ (S K K) : ρ ρ type-schéma de K avec α ρ β ρ 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.
76 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 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 : x 1 : α 1,..., x n : α n,... où {x 1,..., x n,...} 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 : x 1 : α 1,..., x n : α n,... M : α signifiant que M a le type α sous des hypothèses concernant les types des variables x 1,..., x n : x 1 : α 1,..., x n : α n, Nouveaux axiomes Pour cela, on ajoute l axiome suivant : x 1 : α 1,..., x n : α n,... x i : α 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 (M N) : β B N : α
77 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~ 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.
78 78 CHAPITRE IV. THÉORIE DES TYPES 7 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.
79 9 Schéma de types principal 79 9 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 (α β γ) (α β) α γ
80 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
81 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) 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 :
82 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.
83 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 : x:a B(x) qui est intuitivement le type des fonctions prenant un argument x de type A et dont le résultat est de type B(x). Ainsi, A B n est autre que le type x:a B où x ne figure pas dans B. x:a B(x) qui est le type des couples formés d un élément x de type A et d un élément y de type B(x). Ainsi, A B n est autre que le type x:a B où x ne figure pas dans B. 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
84 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.
85 17 Solution des exercices 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.
86 86
87 87 V L ISOMORPHISME DE CURRY-HOWARD 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
88 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 A 1,..., A n est traduite en la preuve en calcul des séquents du séquent A 1,..., A n 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] 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 A Par hypothèse d induction, il existe des preuves en déduction naturelle : [Γ] [ ] [A]. A. B.
89 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 : [ ]. 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 : devient la déduction : Γ A B [Γ]. A. B Γ, A B [Γ]. A 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 [ ]. B Γ, A B C
90 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 : [Γ]. C et on remplace cette preuve par : [A]. [Γ]. [A B] A. C 2 Propriétés de la traduction Cette traduction associe à chaque preuve d un séquent A 1,..., A n B la preuve en déduction naturelle de la formule B sous les hypothèses A 1,..., A n. 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 et la preuve : A, B A B A C, B A B A C, B D A B 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] A A B [B D] B
91 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.
92 92 CHAPITRE V. L ISOMORPHISME DE CURRY-HOWARD 4 L isomorphisme, version simple Considérons une logique des propositions intuitionniste avec le seul connecteur d implication noté. Son axiomatisation hilbertienne est : A B B A 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 :
93 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 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) A (M N) : Π(B) N : Π(A) 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
94 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 Curry- Howard. 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 0 alors y B. Les
95 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 in l telle que in l (x) = [0, x] et l opération in r (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 : in l : α (α β) in r : β (α β) 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 : mais nous lui préférerons la règle : A 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.
96 96 CHAPITRE V. L ISOMORPHISME DE CURRY-HOWARD 9 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. 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 α. 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 règles de typages pour x:α β(x) qui prolonge l isomorphisme de Curry- Howard à la quantification universelle. 11 L isomorphisme et la quantification existentielle N.B. Cette section reste informelle. 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.
97 12 Utilisation informelle 97 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 α(x) et des règles de typages pour x:α β(x) qui prolonge l isomorphisme de Curry- Howard à 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 : ( P (x) ) Q (x, y) y:α x:α où P (x) et Q (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 : F (x) : P (x) y:α Q (x, y) Si z est le terme associé à une preuve de P (x), on a z : P (x) et : F (x)(z) : y:α Q (x, 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 AF 2, entièrement basé sur l isomorphisme de Curry-Howard.
98 98 CHAPITRE V. L ISOMORPHISME DE CURRY-HOWARD 13 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 ( ) quant. universelle ( ) produit dépendant ( ) quant. existentielle ( ) 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
99 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.
100 100
101 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.
102 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 Go del 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
103 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 La logique 4.1 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.
104 104 CHAPITRE VI. RÉALISABILITÉ 4.3 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) elim 4.5 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))
105 5 Les entiers 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
106 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)
107 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 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 (λ + x 1,..., x n.k), où {x 1,..., x n} = F V (A) alors : A [K A] car K [K (K : A)] car K : A A Q : A A A Si A B C, alors : A B C (M B M B : B) C hyp. d induction sur B (M B M B : B) (M C M C : C) hyp. d induction sur C (M B M C ) (M B : B M C : C) [M B, M C] [M B, M C] : (B C) M (M : A) Q : A 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
108 108 CHAPITRE VI. RÉALISABILITÉ par hypothèse d induction, il existe M C tel que M C (M C : C). On choisit M def λ + q.m C. On a M par définition. Et l on vient de construire M pour que si q : B alors M(q) : C (λ + q.m C)(q) : C = M C : C soit vrai. Maintenant, si Q : (B C), supposons B, par hyp. d induction, il existe M B tel que M B : B. On a donc Q(M B) : C et donc C par hyp. d induction. Soit B M B : C Q(M B) : C C. Donc B C est vrai. Si A x B. Par hypothèse, il existe M B tel que le résultat soit vrai pour B. On choisit M def λ + x M B. On a : A x B B M B M B : B par hyp. d induction (λ + x M B) M B : B (λ + x M B) (λ + x M B) : ( x B) Q : A Q : x A x Q(x) Q(x) : B x Q(x) : B x B par hyp. d induction A 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
109 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.
110 110 CHAPITRE VI. RÉALISABILITÉ 10 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 x N Q(x, y) def (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.
111 11 Exemple de synthèse 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) avec A(x) y (x = 2 y) (x = 2 y + 1) 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 R def λ + e λ + x λ + z Alors π 1 (e) Sinon π 2 (e)(x 1)(z)(R(e)(x 1)(z)) 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 = π 1 (e); 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 La preuve (presque formelle) Base de la récurrence. De : K : 0 = 2 0,
112 112 CHAPITRE VI. RÉALISABILITÉ on déduit : [0, K] : (0 = 2 0) (0 = ), 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))]] Sinon [π 1 (f) + 1, [0, π 2 (π 2 (f))]] : A(x + 1). Puis : U 0 : A(x) = A(x + 1). Si π 1 (π 2 (f)) = 0 avec : U 0 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.
113 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 : F def λ + x, z et la fonction spécifiée est : Si x = 0 Alors [0, [0, K]] Sinon U(x, z, F (x 1, K)) 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)) )
114 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))]
115 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 : x 1 x 2 [x 1 N x 2 N y ( z N (z x 1 z x 2 = 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...
116 116
117 117 VII LE SYSTÈME AF 2 Citons LAMBDA-CALCUL, TYPES ET MODELÉS J-L. Krivine Masson, Paris 1990 Le système AF 2, 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 AF 2 est une application de l isomorphisme de Curry- Howard. 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 ;
118 118 CHAPITRE VII. LE SYSTÈME AF 2 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 t 1,..., t n sont des termes, f(t 1,..., t n ) 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 t 1,..., t n sont des termes, p(t 1,..., t n ) est une formule atomique ; si X est une variable de prédicat d arité n 0 et si t 1,..., t n sont des termes, X(t 1,..., t n ) est une formule atomique. 4 Les formules Elles sont définies inductivement par : toute formule atomique est une formule ;
119 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 x 1,..., x n, la clôture de F est la formule x 1,..., x n 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 x 1,..., x n sont des variables, si t 1,..., t n sont des termes et F une formule, [t 1 /x1,..., t n /x n ]F désigne le résultat de la substitution simultanée des termes t 1,..., t n aux variables x 1,..., x n dans la formule F. La définition exacte est similaire à celle de la substitution en λ-calcul. Définition. Si n 0, si x 1,..., x n sont des variables, si t 1,..., t n 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(x 1,..., x n ) dans G, notée par induction sur G : [F/X(x 1,..., x n )]G [F/X(x 1,..., x n)]x(t 1,..., t n) def [t 1/x 1,..., t n/x n]f ; [F/X(x 1,..., x n)]y (t 1,..., t n) def Y (t 1,..., t n) si Y X ; [F/X(x 1,..., x n)]p(t 1,..., t n) def p(t 1,..., t n) ; [F/X(x 1,..., x n)](g H) def [F/X(x 1,..., x n)]g [F/X(x 1,..., x n)]h ; [F/X(x 1,..., x n)]( x H) def x [F/X(x 1,..., x n)]h ; [F/X(x 1,..., x n)]( X H) def X H ; [F/X(x 1,..., x n)]( Y H) def Y [F/X(x 1,..., x n)]h si Y X. Définition. Une formule est dite universelle si elle est de la forme x 1,..., x n F où F ne contient pas de quantificateur. Notation. On notera A 1 A 2 A n B par A 1, A 2,..., A n B.
120 120 CHAPITRE VII. LE SYSTÈME AF 2 5 Méta-définitions On adopte les méta-définitions suivantes : def X X F def F F G def X ((F, G X) X) F G def X (F X, G X X) F G def (F G) (G F ) x.a def Y (( x (A Y )) Y ) X.A def Y (( X (A Y )) Y ), Y X 6 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 a M M ; a M 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 f M : M n M ; f M est l interprétation de f ; à chaque symbole de prédicat p d arité n 0, on associe une relation p M M n ; p M est l interprétation de p. Définition. Soit M un modèle de la logique du second ordre, l interprétation t M d un terme t est définie par induction : si t est une constante a, t M def a M ; si t = f(t 1,..., t n ) où f est un symbole de fonction d arité n 0 et t 1,..., t n sont des termes alors t M def f M (t 1M,..., t nm ). 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 ).
121 7 Modèle et satisfaction 121 Définition. Soit M un modèle de la logique du second ordre, on note L M 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 L M : 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 L M, on note cela M = F, si : si F p(t 1,..., t n ) alors M = F si (t 1M,..., t nm ) p M ; 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. 8 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
122 122 CHAPITRE VII. LE SYSTÈME AF 2 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 L M n ayant comme variables libres respectivement F V (A) = {X}, X d arité n 0, et F V (F ) = {x 1,..., x n }. On pose : alors : Φ = {(a 1,..., a n ) M n tels que M = [a 1 /x 1,..., a n /x n ]F } M = [F/X(x 1,..., x n )]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(t 1,..., t n ) alors : si A x B alors : M = [F/X(x 1,..., x n )]A ssi M = [t 1 /x 1,..., t n /x n ]F ssi (t 1,..., t n ) Φ ssi M = Φ(t 1,..., t n ) ssi M = [Φ/X]A ssi ssi ssi ssi ssi M = [F/X(x 1,..., x n )]( x B) pour touta M, M = [a/x]([f/x(x 1,..., x n )]B) pour tout a M, M = [F/X(x 1,..., x n )]([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(x 1,..., x n )]A où X est une variable de prédicat d arité n 0.
123 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 : Φ = {(a 1,..., a n ) M n tels que M = [a 1 /x 1,..., a n /x n ]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(x 1,..., x n )]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 ) Y x 1,... x n [Y (x 1,..., y n ) F ] Autrement dit, toute formule est équivalente à une relation. Démonstration. Soit A la formule Y x 1,... x n [Y (x 1,..., y n ) X(x 1,..., x n )] On a X A car il suffit de prendre Y = X. Si on applique (SC) à la formule A, on déduit : [F/X(x 1,..., x n )]A c est-à-dire : Y x 1,... x n [Y (x 1,..., y n ) F ] Réciproquement, soit M un modèle de (SC ). Supposons que M = X A où X est d arité n 0. Soit F une formule, posons : Φ = {(a 1,..., a n ) M n tels que M = [a 1 /x 1,..., a n /x n ]F } D après (SC ), il existe une relation Ψ M n telle que : Soit : M = x 1,..., x n [Ψ(x 1,..., x n ) F ] M = [F/Z(x 1,..., x n )]( x 1,..., x n [Ψ(x 1,..., x n ) Z(x 1,..., x n )]) Par la proposition de la section~8 : Donc : M = [Φ/Z]( x 1,..., x n [Ψ(x 1,..., x n ) Z(x 1,..., x n )]) M = x 1,..., x n [Ψ(x 1,..., x n ) Φ(x 1,..., x n )] 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(x 1,..., x n )]A.
124 124 CHAPITRE VII. LE SYSTÈME AF 2 10 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 u i = v i pour i [1, n] alors = E f(u 1,..., u n ) = f(v 1,..., v n ) 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
125 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 = {A 1,..., A n }, 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(x 1,..., x n )]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
126 126 CHAPITRE VII. LE SYSTÈME AF 2 supprimer D0. Si A est une conséquence de (SC) E A, on notera cela A i E A 12 Le système AF 2 Le système AF 2 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 AF 2, 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 x 1 : A 1,..., x n : A n où x 1,..., x n sont des variables deux à deux distinctes du λ-calcul et A 1,..., A n 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 A 1,..., A n 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(x 1,..., x n )]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.
127 13 Isomorphisme de Curry-Howard 127 Proposition. Si Γ x 1 : A 1,..., x n : A n et si Γ E t : A alors F V (t) {x 1,..., x n }. 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 Γ x 1 : A 1,..., x n : A n, il faut et il suffit que A 1,..., A n i E 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 AF 2 Nous allons utiliser la technique de la réalisabilité pour montrer des résultats intéressants concernant le système AF 2. 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(t 1,..., t n ) def X + (t 1,..., t n, x) ; x :: R(t 1,..., t n ) def R + (t 1,..., t n, 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].
128 128 CHAPITRE VII. LE SYSTÈME AF 2 Proposition. Soit x, x 1,..., x n des variables d individus deux à deux distinctes, alors : x :: [t 1 /x 1,..., t n /x n ]A [t 1 /x 1,..., t n /x n ](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, x 1,..., x n des variables d individus deux à deux distinctes, alors : x :: [F/X(x 1,..., x n )]A [(x :: F )/X + (x 1,..., x n, 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 : alors et en particulier x 1 : A 1,..., x n : A n E t : A x1 : (x 1 :: A 1 ),..., x n : (x n :: A n ) E t : (t :: A) (SC) E x 1,..., x n [x 1 :: A 1,..., x n :: A n t :: A] Démonstration. La premier résultat se démontre pare induction sur la preuve de x 1 : A 1,..., x n : A n 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.
129 16 Modèle standard 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é : M x = N x 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 AF 2 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 AF 2 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 AF 2 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 D 1 [x],..., D n [x] et E[y] des types de données, alors si t est un terme du λ-calcul tel que : E t : x 1,..., x n [D 1 [x 1 ],..., D n [x n ] E[f(x 1,..., x n )]]
130 130 CHAPITRE VII. LE SYSTÈME AF 2 alors, en notant D i le sous-ensemble des λ-termes satisfaisant le prédicat D i [x] pour i [1, n], on a pour tous u 1 D 1,..., u n D n : M = t u 1 u n = f(u 1,..., u n ) 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 : E t : x 1,..., x n [D 1[x 1],..., D n[x n] E[f(x 1,..., x n)]] implique (TE) E t : (t :: x 1,..., x n [D 1[x 1],..., D n[x n] E[f(x 1,..., x n)]]) implique (CW) E t :: x 1,..., x n [D 1[x 1],..., D n[x n] E[f(x 1,..., x n)]] y 1 :: D 1[x 1],..., y n :: D n[x n] E x 1,..., x n y 1,..., y n (t y 1 y n) ::: E[f(x 1,..., x n)] 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 x 1,..., x n y 1,..., y n y 1 = x 1 D 1[x 1],..., y n = x n D n[x n] (t y 1 y n = f(x 1,..., x n) E[f(x 1,..., x n)] En prenant y i = x i pour i [1, n], on peut montrer : E x 1,..., x n Et en particulier : D 1 [x 1 ],..., D n [x n ] t x 1 x n = f(x 1,..., x n ) E[f(x 1,..., x n )] E x 1,..., x n [D 1 [x 1 ],..., D n [x n ] (t x 1 x n = f(x 1,..., x n )] 19 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)]
131 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 s n (0). Puis, on définit : N[x] def X [ y (X(y) X(s(y))), X(0) = X(x)]
132 132 CHAPITRE VII. LE SYSTÈME AF 2 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.
133 22 Union disjointe de types de données Union disjointe de types de données On introduit deux symboles de fonctions unaires i l et i r 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(i l (y))), z (B[z] X(i r (z))) X(x)] alors A B définit un type de données pour M si i l est interprété dans ce modèle par i l def λx, f, g f x et i r est interprété dans ce modèle par i r def λx, f, g g x. Démonstration. À faire en exercice. N.B. Dans la suite on confondra i l et son interprétation i l ainsi que i r et son interprétation i r. 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 (i l x) : A B y : B (i r 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.
134 134 CHAPITRE VII. LE SYSTÈME AF 2 24 La fonction prédécesseur On utilise à présent le système AF 2 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 : et l on démontre : E def { p(0) = 0 p(s(x)) = x 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 0 : N[0] démontré plus haut E 0 : N[0], 0 : N[0] en dupliquant E 0 : N[0], 0 : N[p(0)] car 0 = p(0) Een dupliquant E (π 0 0) : N[0] N[p(0)] propriété de la conjonction (π 0 0) : X(0) Montrons informellement que l on a y X(y) X(s(y)) : u : X(y) u : N[y] N[p(y)] E (π 1 u) : N[y] propriété de la disjonction E (π 1 u) : N[y], (π 1 u) : N[y] duplication! E (π 1 u) : N[y], s(π 1 u) : N[s(y)] montré plus haut E (π 1 u) : N[p(s(y))], s(π 1 u) : N[s(y)] car p(s(y)) = y E E (π s(π 1 u) (π 1 u)) : N[s(y)] N[p(s(y))] propriété de la conjonction E (π s(π 1 u) (π 1 u)) : X(s(y)) Donc : (λu π s(π 1 u) (π 1 u)) : y X(y) X(s(y))
135 25 Remarques 135 Maintenant, si n : N[x] alors : E n (λu π s(π 1 u) (π 1 u)) (π 0 0) : X(x) Soit : Puis : E π 2 (n (λu π s(π 1 u) (π 1 u)) (π 0 0)) : N[p(x)] Et enfin : E λn π 2 (n (λu π s(π 1 u) (π 1 u)) (π 0 0)) : N[x] N[p(x)] 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.
136 136
137 137 Index M, 103 M N, 104, 26 α-conversion, 29 α β, 73, 26, 26, 26, 26, 26 f(t 1,..., t n), 27 p(t 1,..., t n), 27 (DP) propriété de la disjonction, 60, 109 (EP) propriété d existence, 60, 109 AF 2, 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
138 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
139 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
140 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
141 141 Table des matières Liste des chapitres 5 I INTRODUCTION À LA LOGIQUE 7 1 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 Une démonstration classique troublante La sémantique des preuves Implication et quantification universelle La négation intuitionniste Jusqu au dogmatisme Que reste-t-il de l intuitionnisme? Le raisonnement intuitionniste Différents ordres de logique La logique linéaire Intensionalité et extensionalité Logique et intentionnalité Actions et situations En résumé II FORMALISMES LOGIQUES 25 1 Formules et syntaxe Vocabulaire Les termes Les formules propositionnelles Les formules du premier ordre Conventions syntaxiques Variables libres et liées Renommage des variables liées Substitution Systèmes de preuves Axiomes Schémas d axiomes Règles d inférence
142 Démontrer un théorème Extensions d une théorie Systèmes formels et logiques Déduction naturelle La preuve en déduction naturelle Axiomes dans une déduction Hypothèses dans une déduction Les règles d un système de déduction naturelle Règles de la logique des propositions Règles de la logique des prédicats Autre formulation des preuves Les systèmes hilbertiens Axiomes pour la logique des propositions Exemple de preuve Axiomes pour la logique des prédicats Le calcul des séquents Les séquents Les axiomes et les règles d inférence La structure des règles Le calcul des séquents classique Les règles structurelles Règles structurelles et linéarité Les règles logiques de la logique des propositions Les règles logiques de la logique des prédicats Exemple de démonstration Le calcul des séquents intuitionniste Les règles structurelles intuitionnistes Les règles logiques de la logique des propositions Les règles logiques de la logique des prédicats La logique intuitionniste est constructive 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 III ÉLIMINATION DES COUPURES 57 1 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 Degrés d une formule, d une coupure, d une preuve La proposition principale Le théorème IV THÉORIE DES TYPES 67 1 Le paradoxe de Curry Note historique L approche de Curry
143 Le paradoxe La solution proposée Théorie des ensembles et théorie des types La théorie des types en Logique Combinatoire Les types en informatique L approche de Curry Définition des types Affectation de type Les formules Le type d une application Le type de K Le type de S Non unicité du schéma de types d un terme Schéma de types d une application Exemple : déduction d un schéma de types de I Introduction aux variables Nouvelles formules Nouveaux axiomes 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 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 V L ISOMORPHISME DE CURRY-HOWARD 87 1 Traduire le calcul des séquents La traduction Propriétés de la traduction La coupure en déduction naturelle L isomorphisme, version simple Correspondance formule-type Correspondance preuve-inférence de type Quelles conséquences? Étendons l isomorphisme à la conjonction Étendons l isomorphisme à la disjonction Étendons l isomorphisme à la négation Les types dépendants L isomorphisme et la quantification universelle L isomorphisme et la quantification existentielle Utilisation informelle L isomorphisme en table
144 Conclusions VI RÉALISABILITÉ La réalisabilité de Kleene Le langage d EON La partialité La logique Les termes Les prédicats Le système formel De nouvelles règles L égalité L égalité faible Les entiers Définition de la réalisabilité Réalisabilité des formules négatives Réalisabilité et prouvabilité q-réalisabilité Synthèse de programmes fonctionnels Exemple de synthèse Axiome de récurrence Réalisation de l axiome de récurrence Réalisation des formules atomiques La preuve (presque formelle) Lien avec le langage PROLOG VII LE SYSTÈME AF L alphabet Les termes Les formules atomiques Les formules Méta-définitions Modèles de la logique du second ordre Modèle et satisfaction Conséquence et validité Le schéma de compréhension Formules équationnelles Axiomes et règles d inférences Le système AF Les règles de typages Isomorphisme de Curry-Howard Réalisabilité dans AF Théorème d extension Modèle standard Type de données dans AF Programmation dans AF Les booléens Les entiers Produit cartésien de types de données Union disjointe de types de données
145 Résultats utiles La fonction prédécesseur Remarques INDEX 137
146 146
Réalisabilité et extraction de programmes
Mercredi 9 mars 2005 Extraction de programme: qu'est-ce que c'est? Extraire à partir d'une preuve un entier x N tel que A(x). π x N A(x) (un témoin) (En fait, on n'extrait pas un entier, mais un programme
Chapitre 2. Eléments pour comprendre un énoncé
Chapitre 2 Eléments pour comprendre un énoncé Ce chapitre est consacré à la compréhension d un énoncé. Pour démontrer un énoncé donné, il faut se reporter au chapitre suivant. Les tables de vérité données
Logique. Plan du chapitre
Logique Ce chapitre est assez abstrait en première lecture, mais est (avec le chapitre suivant «Ensembles») probablement le plus important de l année car il est à la base de tous les raisonnements usuels
Suites numériques 3. 1 Convergence et limite d une suite
Suites numériques 3 1 Convergence et limite d une suite Nous savons que les termes de certaines suites s approchent de plus en plus d une certaine valeur quand n augmente : par exemple, les nombres u n
avec des nombres entiers
Calculer avec des nombres entiers Effectuez les calculs suivants.. + 9 + 9. Calculez. 9 9 Calculez le quotient et le rest. : : : : 0 :. : : 9 : : 9 0 : 0. 9 9 0 9. Calculez. 9 0 9. : : 0 : 9 : :. : : 0
6. Les différents types de démonstrations
LES DIFFÉRENTS TYPES DE DÉMONSTRATIONS 33 6. Les différents types de démonstrations 6.1. Un peu de logique En mathématiques, une démonstration est un raisonnement qui permet, à partir de certains axiomes,
Introduction à l étude des Corps Finis
Introduction à l étude des Corps Finis Robert Rolland (Résumé) 1 Introduction La structure de corps fini intervient dans divers domaines des mathématiques, en particulier dans la théorie de Galois sur
Logique : ENSIIE 1A - contrôle final
1 Logique : ENSIIE 1A - contrôle final - CORRIGÉ Mardi 11 mai 2010 - Sans documents - Sans calculatrice ni ordinateur Durée : 1h30 Les exercices sont indépendants. Exercice 1 (Logique du premier ordre
Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques :
MTH EN JEN 2013-2014 Elèves de seconde, première et terminale scientifiques : Lycée Michel Montaigne : HERITEL ôme T S POLLOZE Hélène 1 S SOK Sophie 1 S Eteindre Lycée Sud Médoc : ROSIO Gauthier 2 nd PELGE
Date : 18.11.2013 Tangram en carré page
Date : 18.11.2013 Tangram en carré page Titre : Tangram en carré Numéro de la dernière page : 14 Degrés : 1 e 4 e du Collège Durée : 90 minutes Résumé : Le jeu de Tangram (appelé en chinois les sept planches
Méthode universitaire du commentaire de texte
Méthode universitaire du commentaire de texte Baptiste Mélès Novembre 2014 L objectif du commentaire de texte est de décrire la structure argumentative et de mettre au jour les concepts qui permettent
Algorithmique et Programmation Fonctionnelle
Algorithmique et Programmation Fonctionnelle RICM3 Cours 9 : Lambda-calcul Benjamin Wack Polytech 2014-2015 1 / 35 La dernière fois Typage Polymorphisme Inférence de type 2 / 35 Plan Contexte λ-termes
Fibonacci et les paquerettes
Fibonacci et les paquerettes JOLY Romain & RIVOAL Tanguy Introduction Quand on entend dire que l on peut trouver le nombre d or et la suite de Fibonacci dans les fleurs et les pommes de pin, on est au
Exercices - Polynômes : corrigé. Opérations sur les polynômes
Opérations sur les polynômes Exercice 1 - Carré - L1/Math Sup - Si P = Q est le carré d un polynôme, alors Q est nécessairement de degré, et son coefficient dominant est égal à 1. On peut donc écrire Q(X)
Faut-il tout démontrer?
Faut-il tout démontrer? Introduction et énoncé du problème L acte de démontrer consiste à mettre en ordre logique, à disposer de façon rationnelle et déductive des propositions afin d assurer que la conclusion
DOCM 2013 http://docm.math.ca/ Solutions officielles. 1 2 10 + 1 2 9 + 1 2 8 = n 2 10.
A1 Trouvez l entier positif n qui satisfait l équation suivante: Solution 1 2 10 + 1 2 9 + 1 2 8 = n 2 10. En additionnant les termes du côté gauche de l équation en les mettant sur le même dénominateur
Chapitre 2 Le problème de l unicité des solutions
Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)
SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique
SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique DOMAINE P3.C3.D1. Pratiquer une démarche scientifique et technologique, résoudre des
Image d un intervalle par une fonction continue
DOCUMENT 27 Image d un intervalle par une fonction continue La continuité d une fonction en un point est une propriété locale : une fonction est continue en un point x 0 si et seulement si sa restriction
Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)
Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Complexité des problèmes Introduire la notion de complexité d un problème Présenter
Informatique Machines à calculer en théorie et en pratique
Licence Physique-Chimie Histoire des Sciences Informatique Machines à calculer en théorie et en pratique Notes de Cours 1 Introduction Étymologie En Allemagne (1957) le terme «Informatik» est créé par
Algorithme. Table des matières
1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............
Limites finies en un point
8 Limites finies en un point Pour ce chapitre, sauf précision contraire, I désigne une partie non vide de R et f une fonction définie sur I et à valeurs réelles ou complees. Là encore, les fonctions usuelles,
ÉPREUVE COMMUNE DE TIPE 2008 - Partie D
ÉPREUVE COMMUNE DE TIPE 2008 - Partie D TITRE : Les Fonctions de Hachage Temps de préparation :.. 2 h 15 minutes Temps de présentation devant le jury :.10 minutes Entretien avec le jury :..10 minutes GUIDE
LES GENERATEURS DE NOMBRES ALEATOIRES
LES GENERATEURS DE NOMBRES ALEATOIRES 1 Ce travail a deux objectifs : ====================================================================== 1. Comprendre ce que font les générateurs de nombres aléatoires
Utilisation des tableaux sémantiques dans les logiques de description
Utilisation des tableaux sémantiques dans les logiques de description IFT6281 Web Sémantique Jacques Bergeron Département d informatique et de recherche opérationnelle Université de Montréal [email protected]
Probabilité. Table des matières. 1 Loi de probabilité 2 1.1 Conditions préalables... 2 1.2 Définitions... 2 1.3 Loi équirépartie...
1 Probabilité Table des matières 1 Loi de probabilité 2 1.1 Conditions préalables........................... 2 1.2 Définitions................................. 2 1.3 Loi équirépartie..............................
Calculabilité Cours 3 : Problèmes non-calculables. http://www.irisa.fr/lande/pichardie/l3/log/
Calculabilité Cours 3 : Problèmes non-calculables http://www.irisa.fr/lande/pichardie/l3/log/ Problèmes et classes de décidabilité Problèmes et classes de décidabilité Nous nous intéressons aux problèmes
CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»
Corrigé Cours de Mr JULES v3.3 Classe de Quatrième Contrat 1 Page 1 sur 13 CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!» «Correction en rouge et italique.» I. Les nombres décimaux relatifs.
Qu est-ce qu une problématique?
Fiche méthodologique préparée par Cécile Vigour octobre 2006 1 Qu est-ce qu une problématique? Trois étapes : 1. Définition de la problématique 2. Qu est-ce qu une bonne problématique? 3. Comment problématiser?
Probabilités sur un univers fini
[http://mp.cpgedupuydelome.fr] édité le 7 août 204 Enoncés Probabilités sur un univers fini Evènements et langage ensembliste A quelle condition sur (a, b, c, d) ]0, [ 4 existe-t-il une probabilité P sur
Probabilités conditionnelles Loi binomiale
Exercices 23 juillet 2014 Probabilités conditionnelles Loi binomiale Équiprobabilité et variable aléatoire Exercice 1 Une urne contient 5 boules indiscernables, 3 rouges et 2 vertes. On tire au hasard
Rappels sur les suites - Algorithme
DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................
LES RESEAUX SOCIAUX SONT-ILS UNE MODE OU UNE REELLE INVENTION MODERNE?
LES RESEAUX SOCIAUX SONT-ILS UNE MODE OU UNE REELLE INVENTION MODERNE? Hugo Broudeur 2010/2011 2ieme année Télécom SudParis SOMMAIRE Introduction... 3 A) Des réseaux sociaux pour tout le monde... 4 1)
CHOIX OPTIMAL DU CONSOMMATEUR. A - Propriétés et détermination du choix optimal
III CHOIX OPTIMAL DU CONSOMMATEUR A - Propriétés et détermination du choix optimal La demande du consommateur sur la droite de budget Résolution graphique Règle (d or) pour déterminer la demande quand
Intégration et probabilités TD1 Espaces mesurés Corrigé
Intégration et probabilités TD1 Espaces mesurés Corrigé 2012-2013 1 Petites questions 1 Est-ce que l ensemble des ouverts de R est une tribu? Réponse : Non, car le complémentaire de ], 0[ n est pas ouvert.
Chapitre 1 I:\ Soyez courageux!
Chapitre 1 I:\ Soyez courageux! Pour ne rien vous cacher, le langage d'assembleur (souvent désigné sous le terme "Assembleur", bien que ce soit un abus de langage, puisque "Assembleur" désigne le logiciel
UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?
Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version
Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?
Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version
Calcul fonctionnel holomorphe dans les algèbres de Banach
Chapitre 7 Calcul fonctionnel holomorphe dans les algèbres de Banach L objet de ce chapitre est de définir un calcul fonctionnel holomorphe qui prolonge le calcul fonctionnel polynômial et qui respecte
Principe et règles d audit
CHAPITRE 2 Principe et règles d audit 2.1. Principe d audit Le principe et les règles d audit suivent logiquement l exposé précédent. D abord, comme dans toute branche de l activité d une entreprise, l
COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE
COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE Le cours de la première année concerne les sujets de 9ème et 10ème années scolaires. Il y a bien sûr des différences puisque nous commençons par exemple par
Il y a trois types principaux d analyse des résultats : l analyse descriptive, l analyse explicative et l analyse compréhensive.
L ANALYSE ET L INTERPRÉTATION DES RÉSULTATS Une fois les résultats d une investigation recueillis, on doit les mettre en perspective en les reliant au problème étudié et à l hypothèse formulée au départ:
Glossaire des nombres
Glossaire des nombres Numérisation et sens du nombre (4-6) Imprimeur de la Reine pour l'ontario, 008 Nombre : Objet mathématique qui représente une valeur numérique. Le chiffre est le symbole utilisé pour
Systèmes déductifs DEA D INFORMATIQUE UNIVERSITÉ BORDEAUX 1. Systèmes déductifs (Retoré) Plan Début Fin Préc. Suiv.
Systèmes déductifs DEA D INFORMATIQUE UNIVERSITÉ BORDEAUX 1 Plan 1 Liens avec d autres domaines de l informatique............... 3 2 La déduction naturelle de base (conjonction, implication)....... 4 3
Premiers pas avec Mathematica
Premiers pas avec Mathematica LP206 : Mathématiques pour physiciens I Année 2010/2011 1 Introduction Mathematica est un logiciel de calcul formel qui permet de manipuler des expressions mathématiques symboliques.
Calculs de probabilités
Calculs de probabilités Mathématiques Générales B Université de Genève Sylvain Sardy 13 mars 2008 1. Définitions et notations 1 L origine des probabilités est l analyse de jeux de hasard, tels que pile
V- Manipulations de nombres en binaire
1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,
«Je pense, donc je suis» est une grande découverte
6 «Je pense, donc je suis» est une grande découverte Cette affaire-là est assez claire. On lit dans le Discours de la méthode, Quatrième Partie : «[ ] Je me résolus de feindre que toutes les choses qui
Carl-Louis-Ferdinand von Lindemann (1852-1939)
Par Boris Gourévitch "L'univers de Pi" http://go.to/pi314 [email protected] Alors ça, c'est fort... Tranches de vie Autour de Carl-Louis-Ferdinand von Lindemann (1852-1939) est transcendant!!! Carl Louis
IUT de Laval Année Universitaire 2008/2009. Fiche 1. - Logique -
IUT de Laval Année Universitaire 2008/2009 Département Informatique, 1ère année Mathématiques Discrètes Fiche 1 - Logique - 1 Logique Propositionnelle 1.1 Introduction Exercice 1 : Le professeur Leblond
Algèbre binaire et Circuits logiques (2007-2008)
Université Mohammed V Faculté des Sciences Département de Mathématiques et Informatique Filière : SMI Algèbre binaire et Circuits logiques (27-28) Prof. Abdelhakim El Imrani Plan. Algèbre de Boole 2. Circuits
Initiation à la Programmation en Logique avec SISCtus Prolog
Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées
Qu est-ce qu une probabilité?
Chapitre 1 Qu est-ce qu une probabilité? 1 Modéliser une expérience dont on ne peut prédire le résultat 1.1 Ensemble fondamental d une expérience aléatoire Une expérience aléatoire est une expérience dont
choisir H 1 quand H 0 est vraie - fausse alarme
étection et Estimation GEL-64943 Hiver 5 Tests Neyman-Pearson Règles de Bayes: coûts connus min π R ( ) + ( π ) R ( ) { } Règles Minimax: coûts connus min max R ( ), R ( ) Règles Neyman Pearson: coûts
Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications
Université Paris-Dauphine DUMI2E 1ère année, 2009-2010 Applications 1 Introduction Une fonction f (plus précisément, une fonction réelle d une variable réelle) est une règle qui associe à tout réel x au
Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2
éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........
Gestion des Clés Publiques (PKI)
Chapitre 3 Gestion des Clés Publiques (PKI) L infrastructure de gestion de clés publiques (PKI : Public Key Infrastructure) représente l ensemble des moyens matériels et logiciels assurant la gestion des
Probabilités. C. Charignon. I Cours 3
Probabilités C. Charignon Table des matières I Cours 3 1 Dénombrements 3 1.1 Cardinal.................................................. 3 1.1.1 Définition............................................. 3
Fondements de l informatique Logique, modèles, et calculs
Fondements de l informatique Logique, modèles, et calculs Cours INF423 de l Ecole Polytechnique Olivier Bournez Version du 20 septembre 2013 2 Table des matières 1 Introduction 9 1.1 Concepts mathématiques........................
Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS = 7 10 1 + 5 10 2 + 2 10 3
8 Systèmes de numération INTRODUCTION SYSTÈMES DE NUMÉRATION POSITIONNELS Dans un système positionnel, le nombre de symboles est fixe On représente par un symbole chaque chiffre inférieur à la base, incluant
Suis-je toujours le même?
CONCEPTION ET MISE EN PAGE : PAUL MILAN Suis-je toujours le même? Introduction Avant de répondre à la question, il faut comme toujours en philosophie bien en comprendre le problème. Le " je suis " fait
eduscol Ressources pour la voie professionnelle Français Ressources pour les classes préparatoires au baccalauréat professionnel
eduscol Ressources pour la voie professionnelle Ressources pour les classes préparatoires au baccalauréat professionnel Français Présentation des programmes 2009 du baccalauréat professionnel Ces documents
I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES
I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES Théorème - Définition Soit un cercle (O,R) et un point. Une droite passant par coupe le cercle en deux points A et
Transmission d informations sur le réseau électrique
Transmission d informations sur le réseau électrique Introduction Remarques Toutes les questions en italique devront être préparées par écrit avant la séance du TP. Les préparations seront ramassées en
Cours de mathématiques
DEUG MIAS premier niveau Cours de mathématiques année 2003/2004 Guillaume Legendre (version révisée du 3 avril 2015) Table des matières 1 Éléments de logique 1 1.1 Assertions...............................................
LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION
LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION DES NOMBRES par Jean-Luc BREGEON professeur formateur à l IUFM d Auvergne LE PROBLÈME DE LA REPRÉSENTATION DES NOMBRES On ne conçoit pas un premier enseignement
CHAPITRE 5. Stratégies Mixtes
CHAPITRE 5 Stratégies Mixtes Un des problèmes inhérents au concept d équilibre de Nash en stratégies pures est que pour certains jeux, de tels équilibres n existent pas. P.ex.le jeu de Pierre, Papier,
IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Première étape : créer le fichier de données - extraire les données de PMB et les transférer dans Excel
A.-M. Cubat Démo (Apli) : imprimer des cartes de lecteurs ou une «planche-contact» - avec les codes-barres Page 1 Première étape : créer le fichier de données - extraire les données de PMB et les transférer
Probabilités sur un univers fini
[http://mp.cpgedupuydelome.fr] édité le 10 août 2015 Enoncés 1 Proailités sur un univers fini Evènements et langage ensemliste A quelle condition sur (a,, c, d) ]0, 1[ 4 existe-t-il une proailité P sur
Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.
Université Montpellier-II UFR des Sciences - Département Informatique - Licence Informatique UE GLIN302 - Programmation Applicative et Récursive Cours No 3 : Identificateurs, Fonctions, Premières Structures
TSTI 2D CH X : Exemples de lois à densité 1
TSTI 2D CH X : Exemples de lois à densité I Loi uniforme sur ab ; ) Introduction Dans cette activité, on s intéresse à la modélisation du tirage au hasard d un nombre réel de l intervalle [0 ;], chacun
FORMATION CONTINUE SUR L UTILISATION D EXCEL DANS L ENSEIGNEMENT Expérience de l E.N.S de Tétouan (Maroc)
87 FORMATION CONTINUE SUR L UTILISATION D EXCEL DANS L ENSEIGNEMENT Expérience de l E.N.S de Tétouan (Maroc) Dans le cadre de la réforme pédagogique et de l intérêt que porte le Ministère de l Éducation
Correction de l examen de la première session
de l examen de la première session Julian Tugaut, Franck Licini, Didier Vincent Si vous trouvez des erreurs de Français ou de mathématiques ou bien si vous avez des questions et/ou des suggestions, envoyez-moi
Intelligence artificielle appliquée à l automatique
Intelligence artificielle appliquée à l automatique par Sylviane GENTIL Professeur à l École nationale supérieure d ingénieurs électriciens Institut national polytechnique de Grenoble 1. Définitions et
Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer
Pour commencer Exercice 1 - Ensembles de définition - Première année - 1. Le logarithme est défini si x + y > 0. On trouve donc le demi-plan supérieur délimité par la droite d équation x + y = 0.. 1 xy
CAC, DAX ou DJ : lequel choisir?
CAC, DAX ou DJ : lequel choisir? 1. Pourquoi cette question Tout trader «travaillant 1» sur les indices s est, à un moment ou un autre, posé cette question : «je sais que la tendance est bien haussière
Structures algébriques
Structures algébriques 1. Lois de composition s Soit E un ensemble. Une loi de composition interne sur E est une application de E E dans E. Soient E et F deux ensembles. Une loi de composition externe
Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels.
Cette partie est consacrée aux nombres. Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels. L aperçu historique vous permettra
Continuité d une fonction de plusieurs variables
Chapitre 2 Continuité d une fonction de plusieurs variables Maintenant qu on a défini la notion de limite pour des suites dans R n, la notion de continuité s étend sans problème à des fonctions de plusieurs
Relation entre deux variables : estimation de la corrélation linéaire
CHAPITRE 3 Relation entre deux variables : estimation de la corrélation linéaire Parmi les analyses statistiques descriptives, l une d entre elles est particulièrement utilisée pour mettre en évidence
Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.
Exo7 Matrice d une application linéaire Corrections d Arnaud odin. Exercice Soit R muni de la base canonique = ( i, j). Soit f : R R la projection sur l axe des abscisses R i parallèlement à R( i + j).
Plan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position
Plan du cours : Le problème : naviguer efficacement une structure de données Ce qui ne marche pas Ce qui marche : les de Huet Exemples Comment dériver des pour tout type de données Pour en savoir plus
Synthèse «Le Plus Grand Produit»
Introduction et Objectifs Synthèse «Le Plus Grand Produit» Le document suivant est extrait d un ensemble de ressources plus vastes construites par un groupe de recherche INRP-IREM-IUFM-LEPS. La problématique
Cours 1 : Qu est-ce que la programmation?
1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas [email protected] Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre
Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation
IFIPS S7 - informatique Université Paris-Sud 11 1er semestre 2009/2010 Théorie des Graphes Cours 3: Forêts et Arbres II / 1 Forêts et arbres II Théorème 1.1. Les assertions suivantes sont équivalentes
Feuille TD n 1 Exercices d algorithmique éléments de correction
Master Sciences, Technologies, Santé Mention Mathématiques, spécialité Enseignement des mathématiques Algorithmique et graphes, thèmes du second degré Feuille TD n 1 Exercices d algorithmique éléments
Dualité dans les espaces de Lebesgue et mesures de Radon finies
Chapitre 6 Dualité dans les espaces de Lebesgue et mesures de Radon finies Nous allons maintenant revenir sur les espaces L p du Chapitre 4, à la lumière de certains résultats du Chapitre 5. Sauf mention
De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que
Introduction. On suppose connus les ensembles N (des entiers naturels), Z des entiers relatifs et Q (des nombres rationnels). On s est rendu compte, depuis l antiquité, que l on ne peut pas tout mesurer
Table des matières. Introduction
Table des matières 1 Formalisation des virus informatiques 2 1.1 Les machines de Turing........................ 2 1.2 Formalisation de Fred Cohen..................... 2 1.2.1 Définition d un virus informatique..............
Le nombre d or et Fibonacci
Août 2004, Bordeaux Pentagone et nombre d or Irrationalité Séries géométriques Equation Remarques et exercice Le pentagramme magique se retrouve partout dans la nature et hors de la nature est le symbole
Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1
Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-
Probabilités. I Petits rappels sur le vocabulaire des ensembles 2 I.1 Définitions... 2 I.2 Propriétés... 2
Probabilités Table des matières I Petits rappels sur le vocabulaire des ensembles 2 I.1 s................................................... 2 I.2 Propriétés...................................................
Les indices à surplus constant
Les indices à surplus constant Une tentative de généralisation des indices à utilité constante On cherche ici en s inspirant des indices à utilité constante à définir un indice de prix de référence adapté
3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes
PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason
Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
La fonction exponentielle
DERNIÈRE IMPRESSION LE 2 novembre 204 à :07 La fonction exponentielle Table des matières La fonction exponentielle 2. Définition et théorèmes.......................... 2.2 Approche graphique de la fonction
Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte
Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes
