Logique du premier ordre

Systèmes de preuves

Florent Capelli

05 Mars 2025

Formes normales de LPO

Formes normales de la logique propositionnelle

En logique propositionnelle, toute formule F(X) peut se mettre sous forme :

  • CNF iji, j est un litéral de la forme x ∈ X ou ¬x ∈ X.
  • DNF iji, j est un litéral de la forme x ∈ X ou ¬x ∈ X.

Démonstration

  1. soit par la table de vérité
  2. soit algorithmiquement :
    • pousser les négations vers le bas (Negation Normal Form via De Morgan)
    • trouver les arbres de preuves (voir tableau)

Forme Prénexe

Une formule de la LPO est sous forme prénexe si les quantificateurs sont au début :

Q1x1, …, Qnxn.G(x1,…,xn,y1,…,yp)

Qi vaut soit soit .

Avantages

  • Lecture plus facile des variables libres et liées
  • Interprétation : sémantique liée aux jeux (alterner entre blocs et )
  • Nombre d’alternances ∀,∃: mesure de complexité d’une formule (hiérarchie polynomiale PH)

Mise sous forme normale prénexe

Pour tout Φ ∈ LPO, il existe Ψ en forme prénexe telle que  ⊨ Φ ⇔ Ψ

Algorithme

On fait remonter les quantificateurs syntaxiquement :

Négation ¬∃x(F) devient xF).
¬∀x(F) devient xF).
Opérateur ∧,∨ x(F) ∘ G devient x(FG).
x(F) ∘ G devient x(FG)
x(F) ⇒ G devient x(FG).
x(F) ⇒ G devient x(FG)
F ⇒ ∃x(G) devient x(FG)
F ⇒ ∀x(G) devient x(FG)

Same old shit

Attention aux captures

x(xy) ∧ (xz) ≢ ∀x((xy) ∧ (x ⇒ z))

Mais

x(xy) ∧ (xz) ≡ ∀u(uy) ∧ (xz) ≡ ∀u((uy)∧(xz))

Exercice

Mettre sous forme prénexe

  1. x(P(x)) ⇒ ∃x(Q(x))
  2. x(Q(x)) ⇒ (∀x(∀z(P(x,z))∧∃z(R(x,z))))

Application : Skolemisation

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)

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 II′ ⊨ Φ.

Systèmes de preuve

Rappel : théorie

Une théorie T est un ensemble de formule de la LPO appelés axiomes.

Rappel : Modèles et théorème

Pour Φ ∈ LPO sur le langage

  • I ⊨ Φ pour I une interprétation de L si val(Φ,I) = 1
    • on dit que I est un modèle de Φ
  •  ⊨ Φ si pour toute interprétation I de L on a I ⊨ Φ
    • on dit que Φ est un théorème de LPO
  • T ⊨ I pour une théorie T si I respecte tous les axiomes de T
    • on dit que Φ est un modèle de T
  • T ⊨ Φ , pour tout modèle I de T, I ⊨ Φ.
    • on dit que Φ est un théorème de la théorie T

Théorème de la logique propositionnelle

Comment prouver que F = (pq) ⇒ (pq) est un théorème ?

  • On peut montrer que c’est vrai dans toutes les interprétations
p q F
0 0 1
0 1 1
1 0 1
1 1 1
  • On peut montrer que ¬F est contradictoire en utilisant la résolution

¬F = p ∧ q ∧ ¬p ∧ ¬q : contradiction sur p et ¬p.

Théorème de la logique du premier ordre

Comment prouver que xy(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 :

    • fixer une interprétation I
    • calculer val(F,I)?
      • Choisir x := a, y := b.
      • Valeur de (p(a)∧q(a,b)) ⇒ (p(a)∨q(a,b)) ?
      • Toujours 1 quelque soit la valeur de p(a) ∈ {0, 1} et q(a,b) ∈ {0, 1} puisque c’est une formule propositionnelle!

On fait un raisonnement dans les modèles (sémantique) ! A-t-on un équivalent à la résolution ?

Un système de preuve

On souhaiterait manipuler uniquement la syntaxe de la formule en utilisant un système de preuve :

  • Déduction naturelle (Gentzen, 1934) : se généralise à LPO
  • Calcul des séquents (LK)
  • Résolution du premier ordre

Calcul des séquences

On manipule logiquement des séquents:

A1, …, Am ⊢ B1, …, Bn

Intuitivement cela veut dire : A1 ∧ … ∧ Am ⇒ B1 ∨ … ∨ Bn.

Les règles

Axiome

A ⊢ A

Axiome

Groupe structurel

Γ ⊢ Δ

Γ, 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!

Groupe Logique

Connecteurs logiques

Γ ⊢ 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

Quantificateur

Γ, 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 Γ

La coupure

Γ ⊢ 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 !

Démonstration !

Axiome

¬A ⊢ ¬A

¬A ⊢ ¬A, B

¬A, A ⊢ B

Axiome

¬B ⊢ ¬B

A, ¬B ⊢ ¬B

A ⊢ B, ¬B

B⇒¬A), A ⊢ B

B⇒¬A) ⊢ (AB)

 ⊢ (¬B⇒¬A) ⇒ (AB)

Complétude et correction

  • LK est correct: si  ⊢ Φ a une preuve alors Φ est un théorème de LPO!
  • LK est complet: tout théorème de LPO a une preuve dans LK.

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.

Un peu de théorie des modèles pour se détendre

Complétude et théories

Soit T une théorie (un ensemble d’axiome, pas forcément finis).

  • on dit que T est contradictoire si on peut trouver un ensemble fini d’axiomes T′ ⊆ T tels que T′ ⊢ False, ie, on peut prouver syntaxiquement que T est “absurde”

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 !)

Théorème de compacité

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 :

  • T une théorie de l’arithmétique
  • On ajoute un symbole
  • Les axiomes ∞ > 0, ∞ > s(0), …, ∞ > s(s(...s(0))) … pour tout n ∈ ℕ.
  • Pour un sous ensemble fini T de T, on a un modèle ! (choisir M suffisamment grand).

Donc T a un modèle.

On peut construire des arithmétiques avec des symboles bizarres ! Ce sont des modèles non standards.

Le théorème d’incomplétude

Soit T une théorie

  • récursive (on sait énumérer ses atomes)
  • suffisamment “puissante” pour encoder l’arithmétique.

Gödel a prouvé en 1935 qu’il existe une formule Φ ∈ LPO qui n’est pas démontrable dans T.

  • Φ est donc vraie dans au moins un modèle de T et fausse dans un autre.
  • En particulier, Φ peut être choisie comme une formule disant “T est consistante”.

TP

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 Γ