Logique du premier ordre

Une introduction

Florent Capelli

12 Février 2025

Les limites de la logique propositionnelle

Un syllogisme

  • SI Tous les chiens savent nager (P)
  • ET Médor est un chien (Q)
  • ALORS Médor sait nager (R)

Est-ce que ce raisonnement vous paraît valide ?

Est-ce que P ∧ Q ⇒ R est un théorème de la logique propositionnelle ?

  • P VRAI, Q VRAI et R FAUX
  • P ∧ Q ⇒ R est FAUX, donc ce n’est pas un théorème.

Un encodage peu fidèle

  • SI Tous les chiens savent nager (P)
  • ET Médor est un chien (Q)
  • ALORS Médor sait nager (R)

P, Q, R ne sont pas des propositions indépendantes.

Un nouvel encodage

  • Deux animaux Médor et Rex.
  • Variables propositionnelles :
    • C_Médor signifie “Médor est un chien”
    • N_Médor signifie “Médor sait nager”.
    • Pareil pour C_Rex, N_Rex
  • Tous les chiens savent nager: (C_RexN_Rex) ∧ (C_MédorN_Médor).
  • Médor est un chien: C_Médor

((C_RexN_Rex)∧(C_MédorN_Médor)∧C_Médor) ⇒ N_Médor

Est-ce un théorème de la logique propositionnelle ?

Preuve : par résolution, voir tableau !

Limite de cet encodage

  • Trois animaux Médor, Rex, Pat.
  • Mêmes variables propositionnelles (avec C_Pat, N_Pat)

((C_RexN_Rex)∧(C_MédorN_Médor)∧(C_PatN_Pat)∧C_Médor) ⇒ N_Médor

Toujours un théorème de la logique propositionnelle.

Quid du cas où on a 10, 100, 1000, N, animaux ?

Une formulation au premier ordre

  • Tout les chiens savent nager: ∀x(Chien(x) Nage(x)).
  • Médor est un chien: Chien(Médor)

(∀x(Chien(x) Nage(x)) Chien(Médor)) Nage(Médor).

  • On a un quantificateur universel ∀x(…)
  • Des prédicats unaires Chien(·) et Nage(·)
  • Des constantes : Médor.
  • Des connecteurs logiques : ,

On verra que c’est un théorème de la logique du premier ordre.

Logique du premier ordre

Un autre exemple

Il existe des chats plus grands que certains chiens et il existe des chiens plus grands que certains chats.

Des quantificateurs

Des prédicats

Des connecteurs logiques

Formule du premier ordre :

(∃x(∃y(chat(x) chien(y) plusgrand(x,y)))) ∧
(∃p(∃q(chat(p) chien(q) plusgrand(q,p))))

Pareil que :

(∃x(∃y(chat(x) ∧ chien(y) ∧ plusgrand(x,y)))) ∧
(∃x(∃y(chat(x) ∧ chien(y) ∧ plusgrand(y,x))))

La syntaxe

On dispose d’un langage ℒ = (𝒞,𝒫,ℱ) avec :

  • des symboles 𝒞 de constantes c1, …, cn
    • ex: “Médor”, “Rex”
  • des symboles 𝒫 de prédicats avec leurs arités : P1(i1), …, Pm(im)
    • ex: Chien(1), Nage(1), Plusgrand(2), <(2)
    • arité : nombre d’éléments mis en relation dans le prédicat
    • on suppose souvent qu’on a un prédicat particulier “=” d’arité 2.
  • des symboles de fonctions avec leurs arités : f1(j1), …, fk(jk)
    • ex: cos (1),  + (2),  × (2)
    • Permettent de former des termes : cos (x+(4×z))

Les termes

On fixe ℒ = (𝒞,𝒫,ℱ) et un ensemble de variables X.

Sont des termes (déf inductive) :

  • les variables x ∈ X
  • les constantes c ∈ 𝒞
  • f(t1,…,tk) pour
    • f ∈ ℱ un symbole de fonction d’arité k
    • t1, …, tk sont des termes.

2 × cos (x + sin(y))

Abus de notation pour certains symboles d’arité 2 de fonction +(x,y) noté x+y. On parle de notation infixe.

Les atomes

On forme les atomes : P(t1,…,tk)

  • P ∈ 𝒫 un symbole de prédicat
  • t1, …, tk des termes.

DIVISE(9 × x, 3+3×y)

Les formules

On construit inductivement les formules :

  • un atome P(t1,…,tk) est une formule
  • Combiner des formules F1, F2 avec des connecteurs logiques
    • F1 ∧ F2,
    • F1 ∨ F2,
    • ¬F1,
    • F1 ⇒ F2
  • Quantification pour x ∈ X une variable et F une formule :
    • x(F)
    • x(F)

x(∀y((Chien(x)∧Humain(y))⇒Ami(x,y))

Variables libres et liées

Un quantificateur a une portée : ∀x(F).

  • Entre ( et ), la variable x est dite liée.
  • Sinon, une variable est dire libre.

  • ∀x(A(x,y)) : y est libre.
  • ∀x(A(x) ∧ ∃y(B(x,y))) : aucune variabe libre (formule close).

Cas pathologiques

  • ∀x(A(x) ∧ ∀x(B(x))) : équivalent à ∀x(A(x) ∧ ∀y(B(y)))
  • ∀x(A(x,y)) ∧ B(x): x, y sont libres… équivalent à ∀z(A(z,y)) ∧ B(x) mais pas équivalent à ∀y(A(x,y)) ∧ B(x). On aurait une capture.

On essaiera autant que faire de ne pas réutiliser le même symbole de variable dans deux quantificateurs différents ou hors de sa portée.

Sémantique

Interprétation

Étant donné un langage ℒ = (𝒞,𝒫,ℱ), une -interprétation est :

  • un ensemble non-vide U appelé le domaine,
  • pour chaque constante c ∈ 𝒞, un élément c ∈ U du domaine
  • pour chaque prédicat P ∈ 𝒫 d’arité k (sauf =), une relation P ⊆ Uk.
  • pour chaque fonction f ∈ ℱ d’arité k, une fonction f : Uk → U.

𝒞 = {0}, 𝒫 = { ≤ }, ℱ = {+, × } interprété (voir tableau) par

  • ,
  • ,
  • ,
  • {0, 1} (avec + interprété par le xor)
  • (2X,∅,⊆,∪,∩)

Valeur d’un terme

Soit ℒ = (𝒞,𝒫,ℱ) un langage, et une -interprétation sur le domaine U.

On suppose qu’on a une fonction e : X → U qui donne une valeur aux variables. On l’appelle : l’environnement.

La valeur d’un terme t est définie inductivement :

  • si t est un symbole de constante c ∈ 𝒞: val(t,e,ℐ) = c

  • si t est une variable x: val(t,e,ℐ) = e(x)

  • si t est de la forme f(t1,…,tk) alors val(t,ℐ) = f(val(t1,ℐ),…,val(tk,ℐ))

Valeur d’une formule

On définit inductivement la valeur val(Φ,e,I) d’une formule Φ par rapport à une interprétation et un environnement e

  • Atomes
    • val(P(t1,…,tk),e,ℐ) = 1 si (val(t1,e,ℐ),…,val(tk,e,ℐ)) ∈ P. Sinon val(P(t1,…,tk),e,ℐ) = 0.
  • Connecteurs logiques
    • val(FG,e,ℐ) = 1 ssi val(F,e,ℐ) = 1 et val(G,e,ℐ) = 1
    • val(FG,e,ℐ) = 1 ssi val(F,e,ℐ) = 1 ou bien val(G,e,ℐ) = 1
    • valF,e,ℐ) = 1 ssi val(F,e,ℐ) = 0
    • val(FG,e,ℐ) = 1 ssi val(F,e,ℐ) = 0 ou bien val(G,e,ℐ) = 1.
  • Quantificateurs
    • val(∀x(F),e,ℐ) = 1 ssi val(F,e[x:=a],ℐ) = 1 quelque soit a ∈ U
    • val(∃x(F),e,ℐ) = 1 ssi val(F,e[x:=a],ℐ) = 1 pour au moins un a ∈ U.

Modèle et validité

On a les mêmes notions qu’en logique propositionnelle :

  • Une -interprétation est un modèle de Φ si val(Φ,ℐ) = 1. On notera ℐ ⊨ Φ
  • Une formule Φ est valide si pour toute -interprétation , ℐ ⊨ Φ. On notera  ⊨ Φ.
  • Φ est une conséquence logique de Ψ si pour tout tel que ℐ ⊨ Ψ on a ℐ ⊨ Φ. On notera Ψ ⊨ Φ.

Logique propositionnelle et premier ordre

Définir logique propositionnelle comme un fragment du premier ordre.