Logique du premier ordre

Théories et modèles

Florent Capelli

14 Février 2024

Rappels

Langages et interprétations

  • Langage ℒ = (𝒞,𝒫,ℱ)
    • 𝒞 constantes “Médor”, “0” etc.
    • 𝒫 prédicats avec arité : “Aime(2)”, “Chien(1)”, “=(2)”
    • fonctions avec arité : “+(2)”, “cos(1)”, “sqrt(1)”
  • -interprétation :
    • un domaine U
    • un élément c ∈ U pour chaque c ∈ 𝒞
    • une relation P ⊆ Uk pour chaque P ∈ 𝒫
    • une fonction f: Uk → U pour chaque f ∈ ℱ

Termes et formules

LPO(ℒ): logique du premier ordre sur le langage

  • Termes : composer des fonctions et des constantes, s’interprétera comme une valeur du domaine
    • f(0,x,y,g(2,z))
  • Atomes : appliquer un prédicat à des termes, s’interprétera par une valeur booléenne vrai/faux
    • P(t1,…,tk) par exemple 2x + y < 3z.
    • t1 = t2
  • Formules : construites depuis les atomes avec des quantificateurs, connecteurs logiques ou atomes
    • P(t1,…,tk)
    • FG▫ ∈ {∧,∨, ⇒ }
    • ¬F
    • x(F),
    • x(F)

Valeur d’une formule

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

  • Atomes
    • val(P(t1,…,tk),e,ℐ) = 1 ssi (val(t1,e,ℐ),…,val(tk,e,ℐ)) ∈ P.
    • val(t1=t2,e,ℐ) = 1 ssi val(t1,e,ℐ) = val(t2,e,ℐ).
  • 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.

Exercice d’échauffement

On définit l’interprétation I:

  • le domaine est
  • + est interprété par f(a,b) = a × b
  • × est interprété par g(a,b) = ab
  • a ≺ b est interprété par a2 + b ≥ 1

Question :

  • Que vaut val((3+(2×x))×y,[x=2,y=3],I) ?
  • Et val(Φ,I)Φ = ∃x(∀y(x+yx×y)) ?

Quelques observations sur LPO

Dualité ∀,∃

D’un point de vue expressivité, on a besoin que d’un quantificateur :

 ⊨ ∀x(F) ⇔ ¬∃xF)  ⊨ ∃x(F) ⇔ ¬∀xF)

Autrement dit, pour toute interprétation ,

  • ℐ ⊨ ∀x(F) si et seulement si ℐ ⊨ ¬∃xF)
  • ℐ ⊨ ∃x(F) si et seulement si ℐ ⊨ ¬∀xF)

Démonstration : ces formules ont la même valeur.

Logique propositionnelle

Soit ℒ = (𝒞,𝒫,ℱ) un langage avec:

  • ℱ = ∅
  • 𝒞 = ∅
  • 𝒫  ne contient que des prédicats d’arité 0.

LPO(ℒ) c’est la logique propositionnelle (voir exercice 3)!

Quelque soit l’interprétation :

  • Valeur d’un prédicat P d’arité 0 c’est 0 si P = ∅, soit 1 si P = {∅}.
  • Valeur de F ∧ G, F ∨ G, F ⇒ G, ¬F: pareil qu’en logique propositionnelle
  • x(F), x(F)? x n’apparaît pas dans F donc val(∀x(F),e,ℐ) = val(F,ℐ)

Substitution : un exemple côté modèle

Constantes 0, 1, prédicat . I une interprétation sur le domaine U.

Si I ⊨ ∀x(0≤x) alors I ⊨ (0≤1) ?

  • Oui : si val(∀x(0≤x)) alors pour toute valeur u ∈ U, 0IIu. En particulier u = 1I.
  • Peut-on le voir directement dans les formules ?

Substitution : côté formule

On a envie de dire : si I ⊨ ∀x(F) alors on peut remplacer x par n’importe quel terme dans la formule ! Notion de substitution

  • F = (0≤x)
  • t = f(0,1)

On note F[x:=t] pour 0 ≤ f(0,1)

Tentative: Soit F une formule, x une variable libre de F et t un terme. On note F[x:=t] la formule obtenue en remplaçant toutes les occurrences de x par le terme t.

Attention aux captures

F = ∀x(P(x,y)).

Qu’est-ce que F[y:=f(x)]?

On serait tenter d’écrire F[y:=f(x)] ≡ ∀x(P(x,f(x))).

On a une capture de la variable x du terme f(x) par le quantificateur universel.

On évite cela en renommant le quantificateur : F[y:=f(x)] ≡ ∀z(P(z,f(x))).

Pour y une variable libre de F et t un terme, on note F[x:=t] la formule obtenue en renommant toutes les variables liées de F qui sont libres dans t par des noms de variables distincts et qui n’apparaissent pas ailleurs dans la formule ni dans t puis on remplace toutes les occurrence de x par t.

Petit exercice

Soit F une formule du premier ordre, XF les variables libres de F, y ∈ XF et t un terme dont les variables (libres) sont Xt.

Quelles sont les variables libres de F[x:=t] ?

  1. Cela dépend des variables liées de F.
  2. (XF\{x})
  3. (XFXt) \ {x}
  4. (XF\{x}) ∪ Xt

Substitution et universalité

Si  ⊨ ∀x(F) alors  ⊨ ∀Xt(F[x:=t])

Cela ne serait pas vrai si on autorisait à remplacer avec capture :

  • y(P(x,y)
  • On peut avoir xyP(x,y) sans avoir yyP(y,y)

Théories

Pertinence des choix de symboles

Soit le langage avec les constantes {P, F, C} et le prédicat <.

On définit l’interprétation I sur {0, 1, 2} par

  • PI = 0
  • FI = 1
  • CI = 2
  • 0 < 1, 1 < 2 et 2 < 0.

A-t-on I ⊨ ∀xyz.(x<yy<z) ⇒ x < z ?

Non: PI < FI et FI < CI mais PI ≮ CI.

Un problème de spécification

Choix du symbole < : on veut imposer que < soit un ordre total !

  1. Transitivité : Tr = ∀xyz.(x<yy<z) ⇒ x < z.
  2. Totalité : Tot = ∀xy.(x<yy<xx=y)
  3. Antisymétrie : Ant = ∀xy.¬(x<yy<x)

Tous les modèles qui respectent Tr, Tot et Ant interprète < comme un ordre total !

On dit que T = {Tr, Tot, Ant} est la théorie des ordres totaux.

Théories : définitions

Une -théorie T est un ensemble (pas nécessairement fini) de LPO(ℒ).

  • Un élément A ∈ T s’appelle un axiome
  • Un modèle I de T est une interprétation de telle que I ⊨ A pour tout A ∈ T (noté I ⊨ T).

Une théorie T peut être comprise comme une spécification des éléments de . Un modèle de T comme une implémentation de cette spécification.

Par exemple: ℕ ⊨ TT est la théorie des ordres totaux (interprétation “naturelle”), mais aussi (ℕ2,<lex) etc.

Théorie des ordres denses

Langage : prédicat <, pas de fonction, pas de constantes.

  • < est un ordre total
    1. Transitivité : Tr = ∀xyz.(x<yy<z) ⇒ x < z.
    2. Totalité : Tot = ∀xy.(x<yy<xx=y)
    3. Antisymétrie : Ant = ∀xy.¬(x<yy<x)
  • < est dense
    1. xyz.x < y ⇒ (x<zz<y)
  • < est non borné
    1. xy.x < y
    2. xy.y < x

L’ensemble de ces axiomes forment To, la théorie des ordres denses.

(ℚ,<) ⊨ To mais pas (ℤ,<) ⊨ To

Arithmétique

Un certain nombre de théories ont eu pour but de formaliser l’arithmétique dans .

  • Arithmétique de Presburger
  • Arithmétique de Robinson
  • Arithmétique de Peano

Exemple : Arithmétique de Presburger

Arithmétique sans multiplication, Pres :

  • x¬(0=x+1)
  • xy.x + 1 = y + 1 ⇒ x = y
  • x.x + 0 = x
  • xy.(x+y) + 1 = x + (y+1)
  • Schéma de récursion : pour toute formule P(x) (x variable libre), on a un axiome (P(0)∧∀x(P(x)⇒P(x+1))) ⇒ ∀y.P(y)

On a une infinité d’axiomes !

Cela suffit à prouver que + est commutatif, associatif ie:

  • Pres ⊨ ∀xy.x + y = y + x
  • Pres ⊨ ∀xyz.(x+y) + z = x + (y+z)

Théories et décidabilité

On s’intéresse au problème suivant : étant donné une théorie T et une formule F, peut-on décider si T ⊨ F ?

La plupart du temps : indécidable

Décidable pour certaines théories, notamment :

  • Ordre dense
  • Presburger

To be continued