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 qui le calcule) Extraire à partir d'une preuve. π x N y N A(x, y) un programme f : N N t.q. A(x, f (x)) pour tout x N.
Extraction de programme: pourquoi? Intérêt pratique: Fabriquer un algorithme à partir d'une preuve. Intérêt philosophique: Un début d'explication du mystère de la déraisonnable ecacité des mathématiques (E. Wigner) Intérêt ludique: Quel programme peut bien se cacher derrière la preuve du théorème XXX dûe à YYY? Mais l'extraction de programme n'est pas toujours possible...
Une existence sans témoin Théorème Il existe deux nombres irrationnels a et b tels que a b est rationnel. Preuve. On raisonne par cas suivant que 2 2 Q ou non. Si 2 2 Q, on prend a = b = 2. Si 2 2 / Q, on pose a = 2 2, b = 2, et il vient a b = ( 2 2) 2 = 2 2 2 = 2 2 = 2. De cette preuve on ne peut pas extraire un couple (a, b) tel que a, b / Q et a b Q
Une disjonction sans alternative Théorème Ou bien e + π est transcendant, ou bien e π est transcendant. Preuve. Par l'absurde. Supposons S = e + π et P = e π algébriques. On considère l'équation du second degré à coecients algébriques: x 2 Sx + P = 0 Les nombres e et π, qui sont les solutions de cette équation, sont donc algébriques. Contradiction. Cette preuve ne dit pas quelle alternative est vraie!
Existence d'une fonction non calculable Soient: Halt(x) x est le code de Gödel d'une machine de Turing qui termine (sur le ruban vide) A(x, y) (Halt(x) y = 1) ( Halt(x) y = 0) Théorème Pour tout x N, il existe y N tel que A(x, y). Preuve. On raisonne par cas suivant que Halt(x) ou non. Si Halt(x), on prend y = 1. Si Halt(x), on prend y = 0. Ici, la fonction f à extraire est bien dénie... mais non calculable.
La logique intuitionniste (LJ) Brouwer (Luitzen Egbertus Jan, 18811966) Point de vue philosophique: Le rejet de principes non-constructifs tels que le tiers-exclus: A A le raisonnement par l'absurde (déduire A de l'absurdité de A) l'axiome du choix, ou du moins certaines formes (Zorn) Techniquement: La déduction naturelle (Prawitz 1964) Basée sur des séquents asymétriques, de la forme Γ A On a l'inclusion stricte: LJ LK
Logique intuitionniste: ce qu'on conserve/ce qu'on perd En logique: On conserve les implications... A A (Double négation) (A B) ( B A) (Contraposition) ( A B) (A B) (Implication matérielle)... mais les réciproques sont perdues Lois de Morgan: (A B) A B (A B) A B ( x A(x)) x A(x) ( x A(x)) x A(x)
Logique intuitionniste: ce qu'on conserve/ce qu'on perd En algèbre: On conserve toute l'algèbre de base (1er cycle)...... mais on perd une partie de la théorie spectrale En topologie: On conserve la topologie générale...... mais il faut entièrement la reformuler! Topologie sans points, Espaces formels En combinatoire: Y a-t-il quoi que ce soit qui disparaisse?
Logique intuitionniste: ce qu'on conserve/ce qu'on perd En analyse: On conserve l'existence de R...... mais on perd son unicité (à isomorphisme près) Le maximum d'une fonction continue sur un compact n'est plus toujours atteint...... mais on peut toujours l'approcher à ε près. On conserve la mesure (et l'intégrale) de Lebesgue...... pourvu qu'on utilise la bonne construction de R!
Logique intuitionniste: ce qu'on gagne 1 La propriété de la disjonction: D'une preuve de A B (sans hypothèse), on peut extraire une preuve de A ou une preuve de B.. π A B. π 1 A ou. π 2 B 2 La propriété du témoin: D'une preuve de x A(x) (sans hypothèse), on peut extraire un témoin t et une preuve de A(t).. π x A(x) t +. π A(t) 3 Fonctions récursives: Les fonctions dont on peut démontrer l'existence sont toutes calculables
Une critique de la logique classique Signication de A = valeur de vérité de A? Les propositions 2 + 2 = 4 et x, y, z, n N (n > 2 x n + y n z n ) Alfred Tarski ont-elles réellement la même signication? La prouvabilité commute avec, mais pas avec. Les quanticateurs, : (D {0; 1}) {0; 1} ne sont pas des fonctions calculables dès que le domaine D est inni. Quel est le statut de la notion de démonstration?
L'interprétation de Brouwer-Heyting-Kolmogorov (BHK) Le cahier des charges du constructivisme: Signication de A Ensemble des preuves de A L.E.J. Brouwer A. Heyting A.N. Kolmogorov (noté Φ(A)) Démontrer A exhiber une preuve π Φ(A) Signication des connecteurs: Φ(A B) Φ(A) Φ(B) (produit cartésien) Φ(A B) Φ(A) + Φ(B) (union disjointe) Φ(A B) Φ(A) Φ(B) (espace des fonctions) La signication des quanticateurs est un peu plus complexe...
L'interprétation de BHK: Exemple 1 Question: qu'est-ce qui prouve A B B A? A B B A? Réponse: fun (x, y) (y, x)
L'interprétation de BHK: Exemple 2 Question: qu'est-ce qui prouve (A B) (B C) (A C)? (A B) (B C) (A C)? Réponse: fun (f, g) fun x g(f (x))
L'interprétation de BHK: Exemple 3 Rappel: A B A + B Inl of A Inr of B Question: qu'est-ce qui prouve (A B) (B A)? (A + B) (B + A)? Réponse: function Inl(x) Inr(x) Inr(y) Inl(y)
Réalisabilité: les principes On se donne un langage de programmation P: Fonctions récursives (Kleene) λ-calcul, λµ-calcul, etc. PCF, Caml non typé, LISP,... On interprète chaque formule A de la théorie considérée par un ensemble de programmes Φ(A) En suivant les principes de l'interprétation de BHK... adaptés au langage considéré p A p réalise A p Φ(A) On montre que si A est prouvable, alors A est réalisable Le réalisateur p A est construit par induction sur la preuve de A En pratique, il s'agit surtout de vérier que les axiomes de la théorie sont réalisables. S.C. Kleene
Réalisabilité dans le calcul des prédicats intuitionniste Interprétation des connecteurs: Φ(A B) = { p q Φ(A) p q Φ(B) } Φ(A B) = { p p (p 1 Φ(A), p } 2 Φ(B)) Φ(A B) = { p p Inl(p 1 Φ(A)) p Inr(p } 2 Φ(B)) Φ( ) = ( A A ) Interprétation des quanticateurs: Φ( x A(x)) = Φ(A(d)) d D Φ( x A(x)) = d D [D = domaine de la quantication] Φ(A(d)) [ou presque... :-)]
Réalisation de l'égalité Le prédicat d'égalité x = y est interprété par: Par exemple: Φ(x = y) = { P si x = y sinon fun p? p x y [s(x) = s(y) x = y] fun p? p x [s(x) = 0 ] où s désigne la fonction successeur sur N (*) (*) Ou plus généralement toute fonction injective n'admettant pas 0 dans son image.
Réalisation des quantications numériques On introduit un prédicat de relativisation Nat(x) pour distinguer les quantications numériques: N x P(x) x (Nat(x) P(x)) N x A(x) x (Nat(x) P(x)) On pose: Φ(Nat(x)) = { {p p x} si x N sinon Les réalisateurs de N x P(x) calculent le témoin: p N x P(x) ssi p (n, q) avec q A(n)
Un dernier exercice... Soit iter un programme tel que: iter (a, f ) 0 a iter (a, f ) (n + 1) f n (iter (a, f ) n) (n N) Le comportement de iter n'a pas besoin d'être déni dans les autres cas. On considère un prédicat P(x) quelconque. 1 Montrer que si { a P(0) f N x (P(x) P(s(x))) alors pour tout n N on a: iter (a, f ) n P(n) 2 En déduire que iter P(0) N x (P(x) P(s(x))) N x P(x)
Réalisation des preuves de l'arithmétique de Heyting Les transparents précédents donnent les grandes lignes de la réalisabilité dans l'arithmétique de Heyting (HA) (= arithmétique intuitionniste du premier ordre) Théorème (Kleene): Si A est prouvable dans HA, alors A est réalisable par un programme p P. Propriété du témoin: Si p N x P(x), alors p (n, q) avec q P(n) La réalisabilité dans HA s'étend très facilement: Au second ordre: HA2 ( analyse intuitionniste) À l'ordre supérieur: HAω
Conclusion Réalisabilité Un sous-produit mathématique du programme philosophique intuitionniste Principe: Formule Ensemble de réalisateurs Généralisation des notions de valeur de vérité et de modèle Une technique très exible Réalisabilité classique (Krivine) BHK étendue au tiers-exclus backtracking Nécessite un langage de programmation avec des continuations Mais on perd (en général) la propriété d'extraction du témoin Réalisabilité en théorie des ensembles Friedman 73, McCarty 84, Krivine 01, Miquel 03,...