Systèmes de preuves
Florent Capelli
05 Mars 2025
En logique propositionnelle, toute formule F(X) peut se mettre sous forme :
Une formule de la LPO est sous forme prénexe si les quantificateurs sont au début :
Q1x1, …, Qnxn.G(x1,…,xn,y1,…,yp)
où Qi vaut soit ∀ soit ∃.
Pour tout Φ ∈ LPO, il existe Ψ en forme prénexe telle que ⊨ Φ ⇔ Ψ
On fait remonter les quantificateurs syntaxiquement :
Négation | ¬∃x(F) devient ∀x(¬F). |
¬∀x(F) devient ∃x(¬F). | |
Opérateur ∧,∨ | ∃x(F) ∘ G devient ∃x(F∘G). |
∀x(F) ∘ G devient ∀x(F∘G) | |
⇒ | ∃x(F) ⇒ G devient ∀x(F⇒G). |
∀x(F) ⇒ G devient ∃x(F⇒G) | |
F ⇒ ∃x(G) devient ∃x(F⇒G) | |
F ⇒ ∀x(G) devient ∀x(F⇒G) |
Attention aux captures
∀x(x∨y) ∧ (x⇒z) ≢ ∀x((x∨y) ∧ (x ⇒ z))
Mais
∀x(x∨y) ∧ (x⇒z) ≡ ∀u(u∨y) ∧ (x⇒z) ≡ ∀u((u∨y)∧(x⇒z))
Mettre sous forme prénexe
On peut “enlever” les variables existentiellement quantifiées d’une formule prénexe :
Φ ≡ ∀x1, …, ∀xn, ∃y, ∀z.ϕ(x1,…,xn,y,z)
Est “équivalent” à
Φ′ ≡ ∀x1, …, ∀xn, ∀z.ϕ(x1, …, xn, fy(x1,…,xn) , z)
où fy est un symbole de fonction frais.
fy construit un “témoin” pour la valeur y étant données les valeurs de x1, …, xn.
Pour tout I ⊨ Φ, on peut trouver une interprétation de fy pour construire I′ où I′ ⊨ Φ′.
Une théorie T est un ensemble de formule de la LPO appelés axiomes.
Pour Φ ∈ LPO sur le langage ℒ
Comment prouver que F = (p∧q) ⇒ (p∨q) est un théorème ?
p | q | F |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
¬F = p ∧ q ∧ ¬p ∧ ¬q : contradiction sur p et ¬p.
Comment prouver que ∀x∀y(p(x)∧q(x,y)) ⇒ (p(x)∨q(x,y)) est un théorème ?
Vrai dans toutes les interprétations ? Il y en a une infinité !
On peut :
On fait un raisonnement dans les modèles (sémantique) ! A-t-on un équivalent à la résolution ?
On souhaiterait manipuler uniquement la syntaxe de la formule en utilisant un système de preuve :
On manipule logiquement des séquents:
A1, …, Am ⊢ B1, …, Bn
Intuitivement cela veut dire : A1 ∧ … ∧ Am ⇒ B1 ∨ … ∨ Bn.
A ⊢ A
Axiome
Γ ⊢ Δ
Γ, A ⊢ Δ
Affaiblissement gauche
Γ ⊢ Δ
Γ ⊢ A, Δ
Affaiblissement droit
Γ ⊢ A, A, Δ
Γ ⊢ A, Δ
Contraction
Γ, A, A ⊢ Δ
Γ, A ⊢ Δ
Contraction
Γ, A, B ⊢ Δ
Γ, B, A ⊢ Δ
Échange
Γ ⊢ A, B, Δ
Γ ⊢ B, A, Δ
Échange
Rien d’étonnant : on manipule des listes de formules!
Γ ⊢ A, Δ
Γ, ¬A ⊢ Δ
¬ gauche
Γ, A ⊢ Δ
Γ ⊢ ¬A, Δ
¬ droit
Γ, A, B ⊢ Δ
Γ, A ∧ B ⊢ Δ
∧ gauche
Γ ⊢ A, Δ
Γ ⊢ B, Δ
Γ ⊢ A ∧ B, Δ
∧ droit
Γ ⊢ A, B, Δ
Γ ⊢ A ∨ B, Δ
∨ droite
Γ, A ⊢ Δ
Γ, B ⊢ Δ
Γ, A ∨ B ⊢ Δ
∨ gauche
Γ, A ⊢ B, Δ
Γ ⊢ A ⇒ B, Δ
⇒ droite
Γ ⊢ A, Δ
Γ, B ⊢ Δ
Γ, A ⇒ B ⊢ Δ
⇒ gauche
Γ, A[x:=t] ⊢ Δ
Γ, ∀x(A) ⊢ Δ
∀ gauche
Γ ⊢ A[x:=t], Δ
Γ ⊢ ∃x(A), Δ
∃ droit
Γ ⊢ A, Δ
Γ ⊢ ∀x(A), Δ
∀ droit si x n’est pas libre dans Δ ni Γ
Γ, A ⊢ Δ
Γ, ∃x(A) ⊢ Δ
∃ gauche si x n’est pas libre dans Δ ni Γ
Γ ⊢ A, Δ
Γ′, A ⊢ Δ′
Γ, Γ′ ⊢ Δ, Δ′
Coupure
En gros: A → B et A implique B!
C’est en général là que la “création” mathématique se passe !
Axiome
¬A ⊢ ¬A
¬A ⊢ ¬A, B
¬A, A ⊢ B
Axiome
¬B ⊢ ¬B
A, ¬B ⊢ ¬B
A ⊢ B, ¬B
(¬B⇒¬A), A ⊢ B
(¬B⇒¬A) ⊢ (A→B)
⊢ (¬B⇒¬A) ⇒ (A⇒B)
La correction n’est pas trop dure à montrer car les règles logiques sont compatibles avec la valeur.
La complétude est plus délicate et nécessite des outils plus poussés. Elle repose sur une forme de Skolémisation. C’est le théorème de complétude de Gödel.
Soit T une théorie (un ensemble d’axiome, pas forcément finis).
Le théorème de complétude dit : T n’est pas contradictoire si et seulement si elle admet un modèle !
Autrement dit, on peut prouver syntaxiquement tous les théorèmes d’une théorie (ie les choses vraies dans tous les modèles de T !)
La complétude permet d’établir un résultat intéressant :
Une théorie T a un modèle si et seulement si tout T′ ⊆ T fini a un modèle.
Ça donne des choses bizarres :
Donc T′ a un modèle.
On peut construire des arithmétiques avec des symboles bizarres ! Ce sont des modèles non standards.
Soit T une théorie
Gödel a prouvé en 1935 qu’il existe une formule Φ ∈ LPO qui n’est pas démontrable dans T.
TP d’aujourd’hui : forme prénexe et preuve dans LK!
A ⊢ A
Axiome
Γ ⊢ A, Δ
Γ′, A ⊢ Δ′
Γ, Γ′ ⊢ Δ, Δ′
Coupure
Γ ⊢ Δ
Γ, A ⊢ Δ
Affaiblissement gauche
Γ ⊢ Δ
Γ ⊢ A, Δ
Affaiblissement droit
Γ ⊢ A, A, Δ
Γ ⊢ A, Δ
Contraction
Γ, A, A ⊢ Δ
Γ, A ⊢ Δ
Contraction
Γ, A, B ⊢ Δ
Γ, B, A ⊢ Δ
Échange
Γ ⊢ A, B, Δ
Γ ⊢ B, A, Δ
Échange
Γ ⊢ A, Δ
Γ, ¬A ⊢ Δ
¬ gauche
Γ, A ⊢ Δ
Γ ⊢ ¬A, Δ
¬ droit
Γ, A, B ⊢ Δ
Γ, A ∧ B ⊢ Δ
∧ gauche
Γ ⊢ A, Δ
Γ ⊢ B, Δ
Γ ⊢ A ∧ B, Δ
∧ droit
Γ ⊢ A, B, Δ
Γ ⊢ A ∨ B, Δ
∨ droite
Γ, A ⊢ Δ
Γ, B ⊢ Δ
Γ, A ∨ B ⊢ Δ
∨ gauche
Γ, A ⊢ B, Δ
Γ ⊢ A ⇒ B, Δ
⇒ droite
Γ ⊢ A, Δ
Γ, B ⊢ Δ
Γ, A ⇒ B ⊢ Δ
⇒ gauche
Γ, A[x:=t] ⊢ Δ
Γ, ∀x(A) ⊢ Δ
∀ gauche
Γ ⊢ A[x:=t], Δ
Γ ⊢ ∃x(A), Δ
∃ droit
Γ ⊢ A, Δ
Γ ⊢ ∀x(A), Δ
∀ droit si x n’est pas libre dans Δ ni Γ
Γ, A ⊢ Δ
Γ, ∃x(A) ⊢ Δ
∃ gauche si x n’est pas libre dans Δ ni Γ