Conférences (Rapports L3) 1er Septembre
Assistants de preuves
Assia Mahboubi
Qu’est-ce qu’un théorème ? Ne pas négliger le caractère “social” du processus
Qu’est-ce qu’un programme informatique ? Comment le vérifier ? :
- Spécification ex: métro 14 à Paris ⟹ sans conducteur ⟹ vérification formelle
ex: conjecture de Goldbach faible :
tout entier $\geq 7$ est la somme de trois nbs premiers
ex: V. Voevodsky : affecté par le fait qu’un de ses artciles faux ait été publié du fait qu’il était médaillé Fields (2002)
- Leibniz : idée d’utiliser une “langue rigoureuse”
MAIS : Bourbaki contre ça (cf. “L’architecture des mathématiques”) : la vue d’ensemble de l’abstraction mathématique est perdue dans la vérification de preuve
MAIS : ce texte de B est incomplet : la tâche est réalisable sans que ce soit ennuyeux/stérilisant
Machine checking
Idée : écrire un programme unique qui permette de vérifier n’importe quelle preuve ⟹ appelé un assistant de preuve (AP)
Squelette d’un AP:
- Logique formelle : ∃ différentes
- Partie “assistant”
ex: Théorème des 4 couleurs, théorème de Kepler (oranges)
ex: Th de l’ordre impair :
Tout groupe d’ordre impair est résoluble
Tout groupe fini simple (sans ss-groupe distingué) de cardinal impair est cyclique
Théorie des types
Langage formel qui fonde les AP. Zermelo, et Russel (dans deux articles distincts)
ex: \(f : ℝ ⟶ ℝ, x \mapsto x+1\)
ex: \(ℙ_y(x) ≔ x \text{ is an odd multiple of } y\)
Attention au paradoxe du menteur !
Q’est-ce qu’un énoncé mathématique ? Un terme =
- une variable
- une fonction $𝜆 x \mapsto t$ OU $𝜆x.t$
- une fonction appliquée à un terme
- une constante
ex :
$𝜆x.t(u)$ donne $t$
\(𝛥 ≝ 𝜆x.x\) $𝛥$ appliqué à lui-même donne ?
Types = étiquettes \(𝜆x.x : 𝛼 → 𝛼\)
Pb : $𝛥$ pas typable
Ex:
\(𝛤 \vdash t : 𝛼 → 𝛽 \, , \, 𝛤 \vdash u : 𝛼\) donne (barre verticale) \(𝛤 \vdash t(u) : 𝛽\)
Règles sont formalisées : ex: Modus Ponens
Règle de l’implication : \(𝛤 𝛼 \vdash 𝛽\) donne \(𝛤 \vdash 𝛼 ⇒ 𝛽\)
⟹ Correspondance de Curry-Howard
Types dépendants
Familles de types qui dépendent de termes
Structure de donnée pour les énoncés mathématiques
ex: $A ⟹ B$ donne $A ⟶ B$
Comment passer de la logique formelle [Bas niveau] à (via l’assistant de preuve) une démo math [Haut niveau]
Il ne faut pas réinventer la roue ⟹ intérêt des bibli
Leave a comment