Sunteți pe pagina 1din 36

Curs 6

2017-2018 Programare Logică


1 / 38
Logica de ordinul I - sintaxa

Limbaj de ordinul I L
unic determinat de τ = (R, F, C, ari)
Termenii lui L, notaţi TrmL , sunt definiţi inductiv astfel:
orice variabilă este un termen;
orice simbol de constantă este un termen;
dacă f ∈ F, ar(f) = n şi t1 , . . . , tn sunt termeni, atunci f(t1 , . . . , tn ) este termen.
Formulele atomice ale lui L sunt definite astfel:
dacă R ∈ R, ar(R) = n şi t1 , . . . , tn sunt termeni, atunci R(t1 , . . . , tn ) este
formulă atomică.
Formulele lui L sunt definite astfel:
orice formulă atomică este o formulă
dacă φ este o formulă, atunci ¬φ este o formulă
dacă φ şi ψ sunt formule, atunci φ ∨ ψ, φ ∧ ψ, φ → ψ sunt formule
dacă φ este o formulă şi x este o variabilă, atunci ∀x φ, ∃x φ sunt formule

3 / 38
Logica de ordinul I - semantică

O structură este de forma A = (A, FA , RA , CA ), unde


A este o mulţime nevidă
FA = {fA | f ∈ F} este o mulţime de operaţii pe A;
dacă f are aritatea n, atunci fA : An → A.
RA = {RA | R ∈ R} este o mulţime de relaţii pe A;
dacă R are aritatea n, atunci RA ⊆ An .
CA = {cA ∈ A | c ∈ C}.
O interpretare a variabilelor lui L în A (A-interpretare) este o funcţie I : V → A.
Inductiv, definim interpretarea termenului t în A sub I notat tA
I .
Inductiv, definim când o formulă este adevărată în A în interpretarea I notat A, I  φ.
În acest caz spunem că (A, I) este model pentru φ.
O formulă φ este adevărată într-o structură A, notat A  φ, dacă este adevărată în A
sub orice interpretare. Spunem că A este model al lui φ.
O formulă φ este adevărată în logica de ordinul I, notat  φ, dacă este adevărată în
orice structură. O formulă φ este validă dacă  φ.
O formulă φ este satisfiabilă dacă există o structură A şi o A-interpretare I astfel încât
A, I  φ.
4 / 38
Enunţ. Formă prenex. Formă Skolem

Un enunţ este o formulă fără variabile libere.

Pentru orice formulă φ există un enunţ în formă prenex α astfel


încât φ  α.

Pentru orice enunţ în formă prenex α există un enunţ în formă


Skolem αsk astfel încât
α este satisfiabilă dacă şi numai dacă αsk este satisfiabilă.

5 / 38
Validitate şi satisfiabilitate

Dacă φ este o formulă atunci


φ este validă dacă şi numai dacă ¬φ nu este satisfiabilă.

Vom arăta că pentru a verifica validitatea/satisfiabilitatea este suficient


să ne uităm la o singură structură.

6 / 38
Modele Herbrand

7 / 38
Universul Herbrand

Fie L un limbaj de ordinul I.


Presupunem că are cel puţin un simbol de constantă!
Dacă nu are, adăugăm un simbol de constantă.

Universul Herbrand este mulţimea TL a tututor termenilor fără variabile.

Exemplu
Fie L un limbaj de ordinul I cu un simbol de funcţie f de aritate 2 şi două
simboluri de constantă a şi b.
Universul Herbrand pentru limbajul L este mulţimea:

a, b, f(a, b), f(f(a, b), b), f(f(a, a), f(b, b)), . . .

8 / 38
Structură Herbrand

O structură Herbrand este o structură H = (TL , FH , RH , CH ), unde


pentru orice simbol de constantă c, cH = c
pentru orice simbol de funcţie f de aritate n,
f H (t1 , . . . , tn ) = f (t1 , . . . , tn )

Atenţie! Într-o structură Herbrand nu fixăm o definiţie pentru relaţii:


pentru orice simbol de relaţie R de aritate n, RH (t1 , . . . , tn ) ⊆ (TL )n

9 / 38
Structură Herbrand

Exemplu
Fie L un limbaj de ordinul I cu un simbol de funcţie f de aritate 1, un
simbol de constantă a şi un simbol de relaţie R de aritate 2.
O structură Herbrand H = (TL , FH , RH , CH ) unde
TL = {a, f(a), f(f(a)), . . .}
aH = a ∈ TL
fT
H (t) = f(t)
RH = {(a, a), (f(a), f(a)), (f(f(a)), f(f(a))), . . .}

10 / 38
Model Herbrand

O interpretare Herbrand este o interpretare H : V → TL


O structură Herbrand H este model al unei formule φ dacă H  φ.
În acest caz spunem că H este model Herbrand al lui φ.

Exemplu
Fie L un limbaj de ordinul I cu un simbol de funcţie f de aritate 1, un
simbol de constantă a şi un simbol de relaţie R de aritate 2.
O structură Herbrand H = (TL , FH , RH , CH ) unde
TL = {a, f(a), f(f(a)), . . .}
aH = a ∈ TL
fT
H (t) = f(t)
RH = {(a, a), (f(a), f(a)), (f(f(a)), f(f(a))), . . .}

H  ∀x R(x, x).

11 / 38
Model Herbrand

Exemplu
Fie L un limbaj de ordinul I cu un simbol de funcţie f de aritate 1, un
simbol de constantă a şi un simbol de relaţie R de aritate 2.
O structură Herbrand H = (TL , FH , RH , CH ) unde
TL = {a, f(a), f(f(a)), . . .}
aH = a ∈ TL
fT
H (t) = f(t)
RH = {(a, f(a)), (f(a), f(f(a))), (f(f(a)), f(f(f(a)))), . . .}

H ̸ ∀x R(x, x).

12 / 38
Model Herbrand

Exemplu
Considerăm structura Herbrand în care toate simbolurile de relaţie
sunt adevărate peste tot, adică
pentru orice simbol de relaţie R de aritate n, RH = (TL )n .
Această structură este model pentru orice mulţime de formule
atomice.
Exerciţiu: De ce?

13 / 38
Interpretări

Fie φ este o formulă, t ∈ TL un termen fără variabile şi x ∈ V.


Reamintim că φ[x/t] este formula obţinută înlocuind în φ toate apariţiile
libere ale lui x cu t, i.e. φ[x/t] = {x/t}φ.

Propoziţia 1
Fie A o structură, I : V → A o interpretare şi a = tA
I . Atunci

1 pentru orice termen u avem u[x/t]A A


I = uIx←a
2 pentru orice formulă φ avem
A, I  φ[x/t] dacă şi numai dacă A, Ix←a  φ

Intuitiv, a schimba evaluarea I atribuind variabilei x valoarea a ∈ A este


acelaşi lucru cu a înlocui variabila x cu un termen t a cărui interpretare
prin I este a.

14 / 38
Interpretări Herbrand

Propoziţia 2
Fie H o structură Herbrand, H : V → TL o interpretare Herbrand, x ∈ V
şi t ∈ TL un termen fără variabile. Sunt adevărate:
1 tH
H =t
2 H, H  φ[x/t] dacă şi numai dacă H, Hx←t  φ

Demonstraţie
1 prin inducţie structurală pe termeni.
2 Următoarele echivalenţe sunt adevărate
H, H  φ[x/t] ddacă H, Hx←tH
H
 φ ddacă H, Hx←t  φ

Prima echivalenţă rezultă din Propoziţia 1, iar a doua rezultă din


punctul 1.

15 / 38
Teorema lui Herbrand

Teorema lui Herbrand


Fie n ≥ 0 şi φ = ∀xk . . . ∀x1 ψ un enunţ în forma Skolem.
Atunci φ are un model dacă şi numai dacă are un model Herbrand.

Demonstraţie
Dacă φ are un model Herbrand atunci este, evident, satisfiabilă. Vom
demonstra afirmaţia inversă.
Fie A un model pentru φ, adică A  φ. Vrem să construim un model
Herbrand H pentru φ, ceea ce revine la a da o interpretare pentru
simbolurile de relaţii.

16 / 38
Teorema lui Herbrand

Demonstraţie (cont.)
Dacă R ∈ R şi ari(R) = n definim

(t1 , . . . , tn ) ∈ RH dacă şi numai dacă A  R(t1 , . . . , tn ) (∗)

Demonstrăm prin inducţie după k ≥ 0 că

oricare ar fi φ = ∀xk . . . ∀x1 ψ un enunţ în forma Skolem,


A  φ implică H  φ

17 / 38
Teorema lui Herbrand

Demonstraţie (cont.)
Pasul de bază k = 0. În acest caz φ = ψ şi φ nu are variabile libere.
Deci φ este formată din formule atomice care conţin doar termeni
fără variabile. Aplicând (∗) rezultă că A  φ implică H  φ.

Presupunem afirmaţia adevărată pentru k − 1 şi o demonstrăm


pentru k. Dacă notăm α = ∀xk−1 . . . ∀x1 ψ atunci φ = ∀xk α.
Observăm că α nu satisface ipoteza de inducţie deoarece poate
conţine xk ca variabilă liberă.
Fie t ∈ TL un termen fără variabile. Observăm că α[xk /t] este enunţ
în formă Skolem, deci A  α[xk /t] implică H  α[xk /t] din ipoteza
de inducţie.

18 / 38
Teorema lui Herbrand

Demonstraţie (cont.)
A  φ implică
A, I  φ pentru orice interpretare I, ceea ce implică
A, Ixk ←a  α pentru orice a ∈ A. Aplicând Propoziţia 1 obţinem
A, I  α[xk /t] pentru orice t ∈ TL .
Deoarece I a fost o interpretare arbitrară, am demonstrat că
A  α[xk /t] pentru orice t ∈ TL .
Aplicând ipoteza de inducţie obţinem
H  α[xk /t] pentru orice t ∈ TL , adică
H, H  α[xk /t] pentru orice t ∈ TL şi orice interpretarea H.
Folosind Propoziţia 2 obţinem
H, Hxk ←t  α pentru orice t ∈ TL şi orice interpretare H, deci
H, H  ∀xk α pentru orice interpretare H, adică H  φ 
19 / 38
Teorema lui Herbrand

Teorema lui Herbrand


Fie n ≥ 0 şi φ = ∀xk . . . ∀x1 ψ un enunţ în forma Skolem.
Atunci φ are un model dacă şi numai dacă are un model Herbrand.

Teorema lui Herbrand reduce problema satisfiabilităţii la găsirea unui


model Herbrand.

20 / 38
Teorema lui Herbrand

Exemplu
Fie L un limbaj cu R = {P, R}, C = {c1 , c2 , c3 } şi ari(P) = ari(R) = 1.
Cercetaţi satisfiabilitatea formulelor:
φ = ∀x ∀y (P(x) ∧ R(y) → P(y))
Ştim că este suficient să găsim un model Herbrand.
Considerăm structura Herbrand H cu
TL = {c1 , c2 , c3 }
PH = {c1 } şi RH = {c1 }

Se observă că H  φ, deci φ este satisfiabilă.

21 / 38
Teorema lui Herbrand

Exemplu (cont.)
ψ = (P(c1 ) → R(c3 )) ∧ (¬P(c1 ) → P(c2 )).
Formulele atomice sunt asemănătoare variabilelor din calculul
propoziţional. Putem scrie interpretările Herbrand într-un tabel

P(c1 ) R(c3 ) P(c2 ) ψ


0 0 0 0
0 0 1 1
0 1 0 0
… … … …
Observăm că formula este adevărată într-o interpretare în care P(c2 )
este adevărată, iar P(c1 ) şi R(c3 ) sunt false.
Considerăm structura Herbrand H cu
TL = {c1 , c2 , c3 }
PH = {c2 } şi RH = {c2 }
Se observă că H  ψ, deci ψ este satisfiabilă. 22 / 38
Teorema lui Herbrand

Exemplu
Fie L un limbaj cu R = {P, R}, C = ∅ şi ari(P) = ari(R) = 1. Cercetaţi
validitatea formulei
χ = ∀x ∀y ∀z (¬(P(x) → R(z)) ∨ ¬(¬P(x) → P(y)))

A cerceta validitatea lui χ este echivalent cu a cerceta


satisfiabilitatea lui ¬χ
¬χ = ∃x ∃y ∃z ((P(x) → R(z)) ∧ (¬P(x) → P(y)))

Determinăm forma Skolem: Lsk = L ∪ {c1 , c2 , c3 }


(¬χ)sk = (P(c1 ) → R(c3 )) ∧ (¬P(c1 ) → P(c2 ))

Din exerciţiul anterior ştim că (¬χ)sk este satisfiabilă, deci ¬χ este


satisfiabilă. În concluzie, χ nu este adevărată în logica de ordinul I,
i.e ̸ χ.
23 / 38
Universul Herbrand al unei formule

Fie φ un enunţ în forma Skolem, adică φ = ∀x1 . . . ∀xn ψ.


Definim T(φ), universul Herbrand al formulei φ, astfel:
dacă c este o constantă care apare în φ atunci c ∈ T(φ),
dacă φ nu conţine nicio constantă atunci alegem o constantă
arbitrară c şi considerăm că c ∈ T(φ),
dacă f este un simbol de funcţie care apare în φ cu ari(f) = n şi
t1 , . . . , tn ∈ T(φ) atunci f(t1 , . . . , tn ) ∈ T(φ).

Exemplu
pt. φ1 = ∀x ∀y (P(x) ∧ R(y) → P(y)) avem T(φ1 ) = {c}
pt. φ2 = ∀x(¬P(x) ∧ P(f(c))) avem T(φ2 ) = {c, f(c), f(f(c)), . . .}

Intuitiv, T(φ) este mulţimea termenilor care se pot construi folosind


simbolurile de funcţii care apar în φ.

24 / 38
Extensia Herbrand a unei formule

Fie φ un enunţ în forma Skolem, adică φ = ∀x1 . . . ∀xn ψ.


Definim extensia Herbrand a lui φ astfel

H(φ) = {ψ[x1 /t1 , . . . , xn /tn ] | t1 , . . . , tn ∈ T(φ)}

Exemplu
φ1 = ∀x ∀y (P(x) ∧ R(y) → P(y))
T(φ1 ) = {c}
H(φ1 ) = {P(c) ∧ R(c) → P(c)}

φ2 = ∀x(¬P(x) ∧ P(f(c)))
T(φ2 ) = {c, f(c), f(f(c)), . . .}
H(φ2 ) = {¬P(c) ∧ P(f(c)), ¬P(f(c)) ∧ P(f(c)),
¬P(f(f(c))) ∧ P(f(c)), ¬P(f(f(f(c)))) ∧ P(f(c)), . . .}

25 / 38
Extensia Herbrand al unei formule

Fie φ un enunţ în forma Skolem, adică φ = ∀x1 . . . ∀xn ψ.

Teoremă
Sunt echivalente:
φ este satisfiabilă,

φ are un model Herbrand H cu proprietatea că RH ⊆ T(φ)n pentru


orice relaţie R ∈ R cu ari(R) = n care apare în φ,

mulţimea de formule H(φ) este satisfiabilă.

26 / 38
Extensia Herbrand al unei formule

Exemplu
φ1 = ∀x ∀y (P(x) ∧ R(y) → P(y))
T(φ1 ) = {c}
H(φ1 ) = {P(c) ∧ R(c) → P(c)}
H(φ1 ) este satisfiabilă: PH = RH = {c}

φ2 = ∀x(¬P(x) ∧ P(f(c)))
T(φ2 ) = {c, f(c), f(f(c)), . . .}
H(φ2 ) = {¬P(c) ∧ P(f(c)), ¬P(f(c)) ∧ P(f(c)),
¬P(f(f(c))) ∧ P(f(c)), ¬P(f(f(f(c)))) ∧ P(f(c)), . . .}
H(φ2 ) nu este satisfiabilă: conţine formula ¬P(f(c)) ∧ P(f(c)).

27 / 38
Logica de ordinul I

Cercetarea validităţii poate fi redusă la cercetarea satisfiabilităţii.

Cercetarea satisfiabilităţii unei formule poate fi redusă la cercetarea


satisfiabilităţii unui enunţ în forma Skolem.

Teorema lui Herbrand reduce verificarea satisfiabilitătii unui enunţ în


forma Skolem la verificarea satisfiabilităţii în universul Herbrand.

În situaţii particulare Teorema lui Herbrand ne dă o procedură de


decizie a satisfiabilităţii, dar acest fapt nu este adevărat în general:
dacă limbajul L conţine cel putin o constantă şi cel puţin un simbol
de funcţie f cu ari(f) ≥ 1 atunci universul Herbrand TL este infinit.

28 / 38
Decidabilitate şi semi-decidabilitate

29 / 38
Probleme decidabile şi semi-decidabile

O problemă de decizie este o problemă cu răspuns binar T/F.

Este n număr prim?

O problemă de decizie D(x) este decidabilă dacă există un algoritm


care, pentru orice intrare x, întoarce T când D(x) este adevărată şi F
când D(x) este falsă.

O problemă de decizie D(x) este semi-decidabilă (recursiv


enumerabilă) dacă există un algoritm care, pentru orice intrare x,
întoarce T când D(x) este adevărată, dar este posibil să nu se
termine când D(x) este falsă.

D(n) = ”n este număr prim” este decidabilă.

30 / 38
1
Problema validităţii

Vom analiza problema validităţii în logica de ordinul I, adică:


D(φ) = ”φ este validă”

În logica de ordinul I, problema validităţii D(φ)


este semi-decidabilă.

În logica de ordinul I, problema validităţii D(φ)


nu este decidabilă.

1 Referinţe

M. Huth, M. Ryan, Logic in Computer Science, 2009


http://www.cs.ox.ac.uk/people/james.worrell/lectures.html
31 / 38
Semi-decidabilitatea validităţii în logica de ordinul I

D(φ) ?

Teorema de compacitate - cazul propoziţional


În calculul propoziţional o mulţime de formule Γ este satisfiabilă dacă şi
numai dacă orice submulţime finită a sa este satisfiabilă.

Corolar
Fie φ un enunţ în forma Skolem (în logica de ordinul I) şi H(φ) extensia
sa Herbrand. Sunt echivalente:
φ nu este satisfiabilă,
există o submulţime finită a lui H(φ) care nu este satisfiabilă.

32 / 38
Semi-decidabilitatea validităţii în logica de ordinul I

D(φ) ?
Procedură de semi-decidabilitate pentru validitate
Intrare: φ enunţ

1 se determina ψ forma Skolem pentru ¬φ (ψ este (¬ϕ)sk )

2 fie {ψ1 , ψ2 , ψ3 , . . .} o enumerare pentru H(ψ)

3 pentru n = 1, 2, 3, . . . execută
dacă {ψ1 , . . . , ψn } nu este satisfiabilă atunci
{ Ieşire: φ este valid;
stop }

33 / 38
Nedecidabilitatea validităţii în logica de ordinul I

Problema corespondenţei lui Post (PCP)


Fie P = {(w1 , w′1 ), . . . , (wk , w′k )} cu wi , w′i ∈ {0, 1}+ . O soluţie
pentru P este o secvenţă de indici i1 , i2 , . . . , in cu n ≥ 1 astfel încât
wi1 · · · win = wi′1 · · · w′in .

Exemplu
1 10 011
P:
101 00 11
Secvenţa (1,3,2,3) este soluţie:

1 011 10 011 101110011


101 11 00 11 101110011

PCP este nedecidabiă (E.Post, 1946)


34 / 38
Nedecidabilitatea validităţii în logica de ordinul I

Teorema Church-Turing
Problema validităţii în logica de ordinul I este nedecidabilă.

Demonstraţie (schiţă)
Vom arăta că problema validităţii poate fi redusă la PCP:
fiind dată o problemă de corespondenţă P = {(w1 , w′1 ), . . . , (wk , w′k )}
există o formulă φP astfel încât
P are o soluţie dacă şi numai dacă  φP .

Definim L un limbaj de ordinul I cu F = {f0 , f1 }, R = {P}, C = {e},


ari(f0 ) = ari(f1 ) = 1 şi ari(P) = 2
Pentru b1 . . . bn ∈ {0, 1}+ definim fb1 ...bn := fbn (fbn−1 (· · · (fb1 (e)) · · · ))

35 / 38
Nedecidabilitatea validităţii în logica de ordinul I

Demonstraţie (schiţă)
Fie P = {(w1 , w′1 ), . . . , (wk , w′k )} o problemă de corespondenţă. Definim
∧k
φ1 := i=1 P(fwi (e), fw′i (e))
( ∧k )
φ2 := ∀x∀y P(x, y) → i=1 P(fwi (x), fw′i (y))
ψ := ∃zP(z, z)
φP := φ1 ∧ φ2 → ψ
Demonstrăm că  φP implică existenţa unei soluţii pentru P.
Definim un model A:
A = {0, 1}∗ , eA := λ, fA A
0 (v) := v0, f1 (v) := v1

PA = {(w, w′ ) | există n ≥ 1 şi i1 , . . . , in astfel încât }


w = wi1 · · · win şi w′ = w′i1 · · · w′in
Ştim A  φP şi observăm că A  φ1 ∧ φ2 . Rezultă A  ψ, deci P are o
soluţie. Cealaltă implicaţie este tehnică. 
36 / 38
Logica de ordinul I

În logica de ordinul I, problema validităţii este semi-decidabilă.

În logica de ordinul I, problema validităţii nu este decidabilă.

În logica de ordinul I, problema satsfiabilităţii nu este decidabilă.


De ce?

În logica de ordinul I, problema satisfiabilităţii nu este


semi-decidabilă. De ce?

37 / 38

S-ar putea să vă placă și