Sunteți pe pagina 1din 26

BAZE DE CUNOS

 TINT
E
Sinteza 2-2:
Modele si consecinta logica.

Nicolae T
 andareanu

Facultatea de Matematica-Informatica,
Universitatea din Craiova,
str.A.I.Cuza 13, 1100-Craiova, Romania
e-mail: ntand@oltenia.ro

N. T
 andareanu: Sinteza 2-2

1 Obiective
Obiectivele acestui capitol sunt urmatoarele:

 ^ntelegerea conceptelor de validitate si satis abilitate


 ^ntelegerea conceptelor de model si model Herbrand
 ^ntelegerea conceptului de consecinta logica

2 Satis abilitate si validitate.


Din punct de vedere formal, termenii si formulele sunt stringuri care respecta anumite reguli de constituire. Ele sunt categorii abstracte daca nu
sunt luate ^n considerare ^n raport cu o structura. De ^ndata ce structura
este xata, prin intermediul functiilor eval si truth val aceste categorii
abstracte pot interpretate. Prin functia eval termenul devine o entitate
bine precizata a domeniului structurii. Prin functia truth val formula
capata o valoare de adevar. ^In cazul logicii bivalente aceasta valoare este
true sau f alse. O formul
a data poate capata valori de adevar diferite
prin interpretari diferite. Dupa modul cum se comporta o formula ^n raport cu o anumita structura sau ^n raport cu toate structurile posibile,
formulele sunt de mai multe categorii. Aceasta clasi care este prezentata
^n de nitia care urmeaza.
De nitia 2.1 O formula ' se numeste:

N. T
 andareanu: Sinteza 2-2

 satis abila ^n structura 

daca exista o asignare F

D SV

astfel ^nc^at
truth val ('; F )

= true

notam aceasta proprietate cu ' 2 sat

 satis abila daca exista o structura  astfel ^nc^at ' 2 sat ; altfel
S sat atunci proprietatea lui ' de a
spus, daca notam sat =


satis abila se poate scrie sub forma ' 2 sat

 valida ^n structura  daca pentru orice asignare F 2 DSV avem


truth val ('; F ) = true; not
am aceasta proprietate cu ' 2 vd
 valida daca pentru orice structura  avem ' 2 vd; daca notam
T vd atunci aceasta proprietate se mai scrie sub forma
vd =
'

2 vd

De nitia 2.2 Fie X o multime de formule. O structura  se spune ca


este un model pentru X daca X

 vd.

^In particular X poate un program logic apartin^and uneia din cele patru
categorii de programe prezentate ^n capitolul anterior.
Exemplul 2.1 Consideram urmatorul program logic disjunctiv pozitiv

N. T
 andareanu: Sinteza 2-2

8>
>> r(a) _ r(b)
<
>>
>: p(f (x)) _ q(x; x)

P:

r (x)

Observam ca:

baza acestui program este B

universul Herbrand este


U HB

= (fa; bg; ff (1) g; fp(1); q(2) ; r(1) g)

= fa; b; f (a); f (b); : : : ; f n(a); f n(b); : : :g

baza Herbrand este BHB

= fp(x); q(x; y); r(x)gx;y2UHB

 = (D; k), unde


D = f0; 1; 2g, k (a) = 2, k (b) = 0,
k (f ) : D ! D , k (f )(x) = 2 x,
k (r ) : D ! ftrue; f alseg, k (r )(0) = true,
k (r )(1) = f alse, k (r )(2) = f alse,
k (p) : D ! ftrue; f alseg, k (p)(x) = f alse dac
a si numai daca
x = 1,
k (q ) : D  D ! D , k (q )(x; y ) = true dac
a si numai daca x 6= y .
Sa veri cam ca  este un model pentru P . Pentru aceasta sa notam
cu 1 , respectiv 2 cele doua formule ale lui P , adica 1 = r(a) _ r(b)
si 2 = 8x(p(f (x)) _ q (x; x) _ :r(x)). Observam ca SV = fxg si prin
Consideram structura

N. T
 andareanu: Sinteza 2-2

: SV ! f0; 1; 2g
val ( 2 ; F ) = true.

urmare trebuie sa veri cam ca pentru orice asignare F


avem truth val ( 1 ; F ) = true si truth

1) truth

val (r (a)

_ r(b); F )=

truth val (r (a); F )


k (r )(k (a))

_ truth

val (r (b); F ) =

_ k(r)(k(b)) = k(r)(2) _ k(r)(0) = f alse _ true = true

2) truth val(
f0; 1; 2g avem

2; F )

= true daca si numai daca pentru orice c 2

truth val (p(f (x))

_ q(x; x) _ :r(x); F fxjcg) = true

^In consecinta evem de analizat cazurile c = 0, c = 1 si c = 2.

pentru c
k (p)(2)




=1

avem k(p)(k(f )(1)) _ k(q )(1; 1) _ :k(r)(1)

=2

avem k(p)(k(f )(2)) _ k(q )(2; 2) _ :k(r)(2)

_ f alse _ :f alse = true

pentru c
k (p)(0)

avem k(p)(k(f )(0)) _ k(q )(0; 0) _ :k(r)(0)

_ f alse _ :true = true _ f alse = true

pentru c
k (p)(1)

=0

_ f alse _ :f alse = true

Sa mai observam ca daca luam aceeasi structura , dar ^n care modi cam
pe k(b) lu^and k(b)

= 1 atunci structura obtinuta nu mai este un model


pentru programul P deoarece truth val (r(a) _ r(b); F ) = f alse.

N. T
 andareanu: Sinteza 2-2

3 Consecinta logica si modele Herbrand.


La ^nceputul acestei sectiuni de nim conceptul de consecinta logica si
studiem legatura dintre consistenta si acest concept.
De nitia 3.1 O multime

de formule se numeste consistent


a daca

admite cel putin un model; ^n caz contrar multimea X se numeste in-

consistenta.

Deseori ^nt^alnim ^n cartile de matematica a rmatii de forma de nitia


T este consistenta. Din punct de vedere intuitiv aceasta ^nseamna ca
exista o lume de obiecte astfel ^nc^at relatiile stipulate ^n de nitie sa e
adevarate. Ca exemplu, foarte simplu si de foarte multe ori ^nt^alnit, vom
considera de nitia relatiei de ordine partiala. Se stie ca o asemenea relatie
este caracterizata de urmatoarele formule:
re exivitatea: 8xp(x; x))
antisimetria: 8x8y[p(x; y) ^ p(y; x) ! (x = y)]
tranzitivitatea: 8x8y8z[p(x; y) ^ p(y; z) ! p(x; z)]
Ce ^nseamna ca aceasta de nitie este consistenta? Aceasta ^nseamna ca
daca notam X = f 1 ; 2; 3 g, unde 1 , 2 si 3 reprezinta formulele de
mai sus, exista o structura  = (D; k) astfel ^nc^at X  vd. O asemenea
structura este  = (R; k), unde R este multimea numerelor reale, iar

N. T
 andareanu: Sinteza 2-2

 R ! ftrue; f alseg este de nita prin


8
>> true daca x  y
><
k (p)(x; y ) =
>>
>:

k (p) : R

altfel
Structura considerata este un model pentru multimea X . Veri carea acestei proprietati se reduce la veri carea urmatoarelor relatii, care nu arata
alteceva dec^at faptul ca relatia  pe multimea numerelor reale este o
relatie de ordine:
f alse

pentru orice numar real c: c  c


pentru orice numere reale c1 si c2 , daca c1  c2 si c2  c1 atunci
c1 = c2
pentru orice numere reale c1 ; c2 si c3, daca c1  c2 , c2  c3 atunci
c1

 c3

De nitia 3.2 Fie X o multime de formule si ' o formula. Spunem ca
formula ' este o consecint
a logica a multimii X si scriem X

j= ',

daca orice model pentru X este un model pentru '.

Teorema 3.1 Fie X o multime de formule ground si ' o formula ground.
Avem X

j= ' daca si numai daca X [ f:'g este inconsistenta.

Proof. Presupunem ca X j= '. Prin absurd sa presupunem ca X [f:'g

este consistenta si e  un model pentru X [ f:'g. ^In particular :' 2

N. T
 andareanu: Sinteza 2-2

deci truth val(:'; F ) = true pentru orice F 2 DSV . Rezulta ca


truth val ('; F ) = f alse. Pe de alt
a parte  este un model pentru X si
deoarece X j= ' rezulta ca  este un model si pentru '. Aceasta^nseamna
ca truth val('; F ) = true pentru orice F 2 DSV , deci ' 2 vd. Acest
fapt contrazice proprietatea truth val('; F ) = f alse.
Reciproc, sa presupunem ca X [f:'g este inconsistenta. Fie  un model
pentru X . Avem :' 2= vd deoarece ^n cazul ca :' 2 vd,  ar
un model pentru X [ f:'g ceea ce este imposibil. Exista F 2 DSV
astfel ^nc^at truth val(:'; F ) = :truth val('; F ) = f alse. Asadar
truth val ('; F ) = true pentru cel putin o asignare F . T
 in^and seama
de faptul ca ' este formula ground, rezulta ca pentru orice F 2 DSV avem
truth val ('; F ) = true. Prin urmare ' 2 vd . ^In consecint
a, X j= '.
Sa aplicam aceasta teorema pentru a demonstra ca f'; g j= , unde
vd ,

'

= 8x(p(x) ! q(x))
= 8x(q(x) ! r(x))

= 8x(p(x) ! r(x))

Aplic^and teorema 3.1, trebuie sa veri cam ca multimea f'; ; :g este
inconsistenta. Prin absurd sa presupunem ca multimea este consistenta,
deci exista un model  = (D; k) pentru ea. Altfel spus, f'; ; :g  vd,
ceea ce ^nseamna ca pentru orice asignari F1 ; F2; F3 avem:
truth val ('; F1 )

= true

(1)

N. T
 andareanu: Sinteza 2-2
truth val ( ; F2 )

= true

(2)

= true

(3)

truth val ( ; F3 )

Din (1) si (2) rezulta ca pentru orice c1 2 D si c2 2 D avem
truth val (q (x)

_ :p(x); F1 fxjc1g) = true

(4)

truth val (r (x)

_ :q(x); F2 fxjc2g) = true

(5)

Avem ^nsa urmatoarele echivalente logice:

:  9x:(r(x) _ :p(x))  9x(p(x) ^ :r(x))


de unde rezulta ca (3) are loc daca si numai daca exista d 2
^nc^at
truth val (p(x) ^ :r (x); F3 fxjdg) = true

astfel
(6)

Aplic^and proprietatile functiei de evaluare semantica, relatiile (4), (5) si


(6) se mai scriu astfel:
k (q )(c1 )

_ :k(p)(c1 ) = true

(7)

k (r )(c2 )

_ :k(q)(c2 ) = true

(8)

k (p)(d)

^ :k(r)(d) = true

(9)

Deoarece c1 si c2 sunt elemente arbitrare ^n D, particularizam aceste


valori lu^and c1 = c2 = d. Din (9) rezulta k(p)(d) = true, k(r)(d) = f alse.
Din (7) rezulta k(q)(d) = true, iar din (8) deducem k(q)(d) = f alse.

10

N. T
 andareanu: Sinteza 2-2

Aceasta contradictie ne arata ca presupunerea facuta este falsa si prin
urmare multimea considerata este inconsistenta.
^In continuare vom semnala o proprietate importanta a relatiei de
consecinta logica. La prima vedere s-ar putea conchide ca pentru orice
formula ' avem X j= ' sau X j= :', ceea ce nu este adevarat. Pentru a
da un contraexemplu vom considera formulele
'

= p(a)
= 8x(p(x) ! p(f (x))

= 8xp(x)

Ne propunem sa aratam ca f'; g 6j=  si f'; g 6j= :. Pentru aceasta
vom arata ca multimile f'; ; :g si f'; ; g sunt multimi consistente.
Consideram D1 = fa; b; f (a); f (b); f (f (a)); f (f (b)); : : :g si structura 1 =
(D1 ; k1), unde
k1 (f )(t)
k1 (a)

= f (t) pentru orice t 2 D1

=a

pentru orice

 0 luam k1(p)(f n(a)) =

true

si k1(p)(f n(b)) =

f alse

Structura 1 este un model pentru f'; ; :g deoarece

 truth

val1 ('; F )

= truth

val1 (p(a); F )

11

N. T
 andareanu: Sinteza 2-2
k1 (p)(k1 (a))

 truth

= k1(p)(a) = true

= true daca si numai daca pentru orice c 2


D1 avem :k1 (p)(c) _ k1 (p)(f (c)) = true. Pentru a veri ca aceast
a
relatie avem de analizat urmatoarele doua cazuri:
val1 ( ; F )

daca c = f s(a) atunci k1(p)(f (c)) = true


daca c = f s(b) atunci k1(p)(c) = f alse, deci :k1 (p)(c) = true
Observam ca ^n ambele cazuri relatia data este veri cata.

 truth

val1 ( ; F )

= true daca si numai daca truth val1 (; F ) =


f alse; ultima relatie este adev
arata daca si numai daca exista
c 2 D1 astfel ^nc^
at k1(p)(c) = f alse; aceasta proprietate este evident adevarata daca luam c = f s(b) pentru un s oarecare.

Daca consideram 2 = (D2; k2), unde


D2

= fa; f (a); f (f (a)); : : : ; f s(a); : : :g

iar

 k2(f )(t) = f (t) pentru orice t 2 D2


 k2(a) = a
 k2(p)(t) = true pentru orice t 2 D2

12

N. T
 andareanu: Sinteza 2-2

atunci constatam ca 2 este un model pentru f'; ; g.


Prin rezultatul prezentat^n Teorema 3.1 vedem ca problema demonstrarii inconsistentei unei multimi de formule ^nchise este deosebit de importanta. Este di cil ^nsa sa aratam ca pentru o multime data de formule
nu exista un model. ^In rezolvarea acestei probleme utilizam conceptul de
model Herbrand, introdus ^n de nitia care urmeaza.
De nitia 3.3 Fie B o baza. O interpretare Herbrand peste baza B
este o submultime nevida I

BHB .

Daca X este o multime de for-

mule peste baza B atunci o interpretare Herbrand peste baza B o numim


interpretare Herbrand a multimii X .

Unei interpretari Herbrand I i se ataseaza structura de nita astfel:


De nitia 3.4 Hie B o baza si I o interpretare Herbrand peste B . De nim structura I

= (U HB ; kI ), unde:

i) pentru ecare f (n)


kI (f )(t1 ; : : : ; tn )

2 SF , kI (f ) : U HBn ! U HB

de nita prin

= f (t1; : : : ; tn)

ii) pentru ecare p(n)

2 SP , kI (p) : U HBn ! ftrue; f alseg este

de nita astfel:

8
>> true
><
kI (p)(t1 ; : : : ; tn )
>>
>: f alse

p(t1 ; : : : ; tn )

altf el

2I

13

N. T
 andareanu: Sinteza 2-2

Facem observatia ca ^n de nitia de mai sus numai kI (p) pentru p 2 PS
depinde de I (kI (f ) pentru f 2 SF nu depinde de I ).
Consideram ca avem o submultime I  BHB si structura atasata
I = (U HB ; kI ) de nita mai sus. Putem usor observa ca:

evalI (x; F )

= F (x) pentru orice x 2 SV si F 2 U HBSV

evalI (a; F )

= kI (a) = a pentru orice a 2 SC

evalI (f (a; b); F )

evalI (t; F )

truth valI (p(t1 ; : : : ; tn ); F )

= f (a; b) pentru a; b 2 SC

= t pentru orice t 2 U HB

8
>> true
><
>>
>:

f alse

= kI (p)(t1; : : : ; tn)=

daca p(t1 ; : : : ; tn) 2 I


altfel

pentru orice p(t1; : : : ; tn) 2 BHB

 pentru orice x 2 SV si p(1) 2 SP :


truth valI (p(x); F )

8
>> true
><
>>
>:

f alse

daca
altfel

= kI (p)(F (x)) =
p(F (x))

2I

14

N. T
 andareanu: Sinteza 2-2

si ^n general pentru p(n) 2 SP si x1 ; : : : ; xn 2 SV :


truth valI (p(x1 ; : : : ; xn ); F )

8
>> true daca p(F (x1); : : : ; F (xn)) 2 I
><
>>
>: f alse altfel

truth valI ( xp(x); F )

= true daca si numai daca exista c 2 U HB

truth valI ( xp(x); F )

astfel ^nc^at p(c) 2 I

2 U HB avem p(c) 2 I

true

daca si numai daca pentru orice

De nitia 3.5 O interpretare Herbrand

peste o baza B se numeste

model Herbrand pentru o multime X de formule peste B daca perechea

I = (U HB ; kI ) este un model pentru X , adica X  vdI .


Teorema 3.2 Fie

o multime de clauze. Exista un model pentru P

daca si numai daca exista un model Herbrand pentru P .

Proof. Daca exista un model Herbrand pentru P atunci exista un mod-

el pentru P . Ram^ane sa demonstram implicatia de la st^anga la dreapta.


Presupunem ca  = (D; k) este un model pentru P . Consideram interpretarea
I

= fp(t1; : : : ; tn) 2 BHP j p(t1 ; : : : ; tn) 2 vdg

15

N. T
 andareanu: Sinteza 2-2

structura I = (U HP ; kI ) si sa aratam ca I este un model pentru P .


Pentru simplitate vom considera ca P are clauze de forma urmatoare:
p(t1 ; : : : ; tn )
q (x1 ; : : : ; xn )
A(x1 ; : : : ; xk )
A1 (x1 ; : : : ; xs )

_ A2 (y1; : : : ; yr )

A1 (x1 ; : : : ; xs )

_ A2 (y1; : : : ; yr )

A3 (z1 ; : : : ; zq )

unde

fp; q; A; A1; A2; A3 g  SP , t1 ; : : : ; tn 2 U HP ,


fx1; : : : ; xi ; : : : ; y1; : : : ; yj ; : : : ; z1 ; : : : ; zq g  SV
Ne propunem sa veri cam ca ecare formula considerata mai sus este
^n vdI . Consideram pe r^and ecare situatie de mai sus:
1) p(t1; : : : ; pn) 2 BHP \ P  BHP \ vd = I , deci
truth valI (p(t1 ; : : : ; tn ); F )

= true

2) Notam ' = 8x1 : : : 8xn :q(x1 ; : : : ; xn). Sunt echivalente urmatoarele a rmatii:

truth valI ('; F )

= true

16

N. T
 andareanu: Sinteza 2-2

truth valI ( q (x1 ; : : : ; xn ); F x1 c1 ; : : : ; xn cn

truth valI (q (x1 ; : : : ; xn ); F x1 c1 ; : : : ; xn cn

tru orice c1; : : : ; cn 2 U HP


tru orice c1; : : : ; cn 2 U HP

f j

f j

j g) = true pen-

j g) = f alse pen-

 q(c1; : : : ; cn) 2= I pentru orice c1; : : : ; cn 2 U HP


Deoarece P  vd, ^n particular ' 2 vd deoarece ' 2 P . Rezulta
truth val ('; G) = true pentru orice asignare G. Sunt de asemenea echivalente urmatoarele a rmatii:





truth val ('; G)

= true

f j

j g) = true pen-

truth val ( q (x1 ; : : : ; xn ); G x1 d1 ; : : : ; xn dn

tru orice d1; : : : ; dn 2 D

f j

j g) =

truth val (q (x1 ; : : : ; xn ); G x1 d1 ; : : : ; xn dn

tru orice d1; : : : ; dn 2 D

f alse

pen-

 k(q)(d1; : : : ; dn) = f alse pentru orice d1; : : : ; dn 2 D


Prin absurd sa presupunem ca truth valI ('; F ) = f alse. Aceasta
^nseamna ca exista c1 ; : : : ; cn 2 U HP astfel ^nc^at q(c1; : : : ; cn) 2 I ,
deci q(c1; : : : ; cn) 2 vd. Echivalent, putem scrie ca
truth val (q (c1 ; : : : ; cn ); H ) = true

pentru orice asignare H . Dar


truth val(q (c1 ; : : : ; cn ); H )

= k(q)(eval(c1; H ); : : : ; eval(cn; H ))

17

N. T
 andareanu: Sinteza 2-2

Asadar exista c1; : : : ; cn 2 U HP astfel ^nc^at


k (q )(eval (c1 ; H ); : : : ; eval (cn ; H ))

= true

pentru orice asignare H . Sa luam o asignare H si sa notam e1 =


eval (c1 ; H ), : : :, en = eval (cn ; H ). Evident elementele e1 ; : : : ; en
sunt din D si k(q)(e1 ; : : : ; en) = true. Dar k(q)(d1; : : : ; dn) = f alse
pentru orice d1; : : : ; dn 2 D. Contradictia arata ca presupunerea
facuta nu este adevarata.
3) ' = 8x1 : : : 8xk A(x1 ; : : : ; xk ). Ne propunem sa veri cam ca

f j

j g) = true

truth valI (A(x1 ; : : : ; xk ); G x1 d1 ; : : : ; xk dk

pentru orice d1; : : : ; dk 2 U HP .


Echivalent trebuie sa veri cam ca kI (A)(d1; : : : ; dk ) = true pentru
orice d1; : : : ; dk 2 U HP . Dar kI (A)(d1; : : : ; dk ) = true daca si numai
daca A(d1; : : : ; dk ) 2 I = BHP \ vd. Deoarece A(d1; : : : ; dk ) 2
BHP , r
am^ane de veri cat ca A(d1; : : : ; dk ) 2 vd sau echivalent,
k (A)(eval (d1 ; H ); : : : ; eval (dk ; H )) = true pentru orice asignare
H : SV ! D . Dar eval (d1 ; H ); : : : ; eval (dk ; H ) sunt elemente
din D, iar ' 2 P  vd. Din conditia ' 2 vd rezulta ca
truth val ('; F )

= true

pentru orice F : SV ! D. Rezulta ca

f j

j g) = true

truth val (A(x1 ; : : : ; xk ); F x1 c1 ; : : : ; xk ck

18

N. T
 andareanu: Sinteza 2-2

pentru orice c1; : : : ; ck 2 D. Altfel spus, k(A)(c1; : : : ; ck ) =


pentru orice c1; : : : ; ck 2 D. ^In particular avem

true

k (A)(eval (d1 ; H ); : : : ; eval (dk ; H )) = true

4) Celelalte doua cazuri se veri ca similar cu cazul anterior, cu


observatia ca formula
A1 (x1 ; : : : ; xs )

_ A2 (y1; : : : ; yr )

A3 (z1 ; : : : ; zq )

se mai scrie
A1 (x1 ; : : : ; xs )

_ A2 (y1; : : : ; yr ) _ :A3 (z1; : : : ; zq )

Lasam ca exercitiu veri carea acestor cazuri.


Asa cum se^nt^ampla ^n domeniul clasic al bazelor de date, un program
logic poate interogat.
De nitia 3.6 Fie P un program logic. O interogare a lui P ^nseamna:

de nirea unei formule


'

= 9x1 : : : 9xn (B1 ^ : : : ^ Bm)

unde B1 ; : : : ; Bm sunt literali peste baza programului P , iar x1 ; : : : ; xn


sunt toate variabilele care apar ^n B1 ; : : : ; Bm

stabilirea deductiei P

j= '

19

N. T
 andareanu: Sinteza 2-2

Formula ' se numeste interogare.

Sa observam ca :'  8x1 : : : 8xn(:B1 _ : : : _ Bm ), deci :' este o clauza.
Ram^ane sa vedem ce posibilitati exista pentru stabilirea deductiei P j= '.
^In acest sens avem urmatoarea proprietate, care arata ca ^n cazul acestei
deductii ne putem restr^ange numai la modelele Herbrand ale lui P .
Propozitia 3.1 Fie

o baza si P un program logic peste B . Pentru

orice ^ntrebare ' peste B avem P

j= ' daca si numai daca orice model

Herbrand al lui P este model pentru '

Demonstratie. Daca

j=

atunci orice model al lui P este model


pentru '. ^In particular orice model Herbrand al lui P este model pentru
'. Urm
atoarele trei a rmatii sunt echivalente pe baza teoremelor 3.1 si
3.2 precum si a faptului ca P [ f:'g este o multime de clauze:
P

'

(a) P j= '
(b) P [ f:'g este inconsistenta
(c) nu exista nici un model Herbrand pentru P [ f:'g
Sa presupunem ca orice model Herbrand al lui P este model pentru
'. S
a demonstram ca (c) este adevarata. Prin absurd presupunem ca
exista un model Herbrand I pentru P [ f:'g. Aceasta ^nseamna ca
P [ f:'g  vdI . Conform presupunerii f
acute, din P  vdI deducem ' 2 vdI . Asadar truth valI ('; F ) = true pentru orice F , deci

20

N. T
 andareanu: Sinteza 2-2

:
= f alse pentru orice F . Acest rezultat contrazice
faptul ca :' 2 vdI .
truth valI ( '; F )

Se stie ca un program logic P este o multime nita de reguli si fapte.
Pentru orice ^ntrebare ', :' este un scop, deci :' 2= P . Astfel, reuniunea
P [ f:'g nu este una trivial
a, ci ^nseamna efectiv adaugarea clauzei :'
la multimea de clauze din P . Pe de alta parte, observam ca daca P
este un program logic atunci BHP este un model Herbrand pentru P .
Aceasta proprietatee se observa imediat daca tinem seama de faptul ca
orice instanta a unei clauze din P are forma A1 _ : : : _ Ak _:B1 _ : : : :Bs,
iar A1 ; : : : ; Ak 2 BHP . Multimea modelelor Herbrand ale unui program
logic este nevida. ^In aceasta multime trebuie cautat cel mai mic model,
deoarece acesta joaca un rol important ^n programarea logica.
De nitia 3.7 Un model Herbrand I al unui program logic P este:

 model minimal daca nu exista un model Herbrand I1 pentru P


astfel ^nc^at I1  I
 cel mai mic model daca pentru orice model Herbrand J
P avem I  J

al lui

Remarca 3.1 Teorema 3.2 nu este adevarata daca

oarecare de formule. ^Intr-adevar, sa consideram ca P

= f'g, unde ' =

p(a)

^ 9x:p(x). Evident, ' nu este o clauza, deci P

logic.

este o multime

nu este un program

21

N. T
 andareanu: Sinteza 2-2

Perechea '
k' (p)(1)

= fD'; k'), unde D' = f0; 1g, k'(a) = 0, k'(p)(0) = true,

= f alse este un model pentru P . ^Intr-adevar,


truth val' ('; F )
truth val' (p(a); F )
k' (p)(0)

^ truth

^ truth

9:

val' ( x p(x); F )

9:

val' ( x p(x); F )

Evalu^and truth val' (9x:p(x); F ) obtinem:

9:

truth val' ( x p(x); F )

= true

daca si numai daca exista c 2 D' astfel ^nc^at truth val' (p(x); F fxjcg) =
f alse.

Deoarece k' (p)(1) = f alse si k'(p)(0) = true, rezulta ca


truth val' ('; F )

Pentru multimea P considerata avem B

= true

= (fag; fg; fp(1)g), deci BHB =

fp(a)g. Consider^and o interpretare Herbrand I  BHB , vedem ca trebuie


sa luam I

truth valI (p(a); F )

p(a)

= BHB . Fie I = (U HB ; kI ) structura asociata. Avem:

2I

9:

= kI (p)(kI (a)) = kI (p)(a) = true pentru ca

truth valI ( x p(x); F )

U HB

= true

daca si numai daca exista c

astfel ^nc^at

f j g) = f alse

truth valI (p(x); F x c

22

N. T
 andareanu: Sinteza 2-2

Deoarece U HB

= fag si kI (p)(a) = true, rezulta ca

f j g) = true

truth valI (p(x); F x a

Asadar truth valI (9x:p(x); F )

= f alse pentru orice F . ^In con-

cluzie P nu admite nici un model Herbrand.

4 TEME
TEMA 1
1) Considerati programul P :

8
>
< p(x) _ q(g(x))
>
: r(a)

r (x)

Aratati ca P nu este inclus ^n vd.


2) Demonstrati ca ' este valida ^n  daca si numai daca 8x' este
valida ^n .
3) Demonstrati ca ' este valida daca si numai daca :' nu este satis abila.
TEMA 2
1) Fie ' o formula care nu este ^nchisa. Aratati ca daca P j= ' atunci
P [ f:'g este inconsistent
a. Aratati ca reciproca nu este adevarata.
2) De niti formula '  prin (:' _ ) ^ (' _ : ). Aratati ca
'  2 vd dac
a si numai daca truth val ('; F ) = truth val( ; F )
pentru orice F 2 DSV (unde D este domeniul lui ).

N. T
 andareanu: Sinteza 2-2

23

3) Fie p(1) 2 SP si c 2 SC . Fie formulele '1 = ((8x)p(x) ! p(c) si


'2 = (9x)[p(x) ! (8y )p(y )]. Demonstrati c
a f'1 ; '2g  vd.
TEMA 3
1) Fie p(1) ; r(1) simboluri de predicate. Aratati ca urmatoarele formule
sunt valide:
(8xp(x) _ 8xr(x)) ! 8x(p(x) _ r(x))
(8xp(x) ^ 8xr(x)) $ 8x(p(x) ^ r(x))
(9xp(x) _ 9xr(x)) $ 9x(p(x) _ r(x))

9x(p(x) ^ r(x)) ! (9xp(x) ^ 9xr(x))


8x:p(x) $ :9xp(x)
:8xp(x) $ 9x:p(x)
(8x(p(x) ! r(x)) ! (8xp(x) ! 8xr(x))
(9x(p(x) ! r(x)) $ (8xp(x) ! 9xr(x))
2) Fie q(2) un simbol de predicat. Aratati ca urmatoarele formule sunt
valide:

8x8yq(x; y) $ 8y8xq(x; y)
9x9yq(x; y) $ 9y9xq(x; y)

24

N. T
 andareanu: Sinteza 2-2

9x8yq(x; y) ! 8y9xq(x; y)
TEMA 4
Fie I o interpretare Herbrand nita. Fie  = I structura atasata.
Scrieti un program ^n SWI Prolog care sa calculeze valoarea functiei
truth val .
TEMA 5
Fie r(2) 2 SP .
1) Demonstrati ca formula (9y)(8x)r(x; y) ! (8x)(9y)r(x; y) este
valida.
2) Studiati ce fel de formula (sat ; sat; vd; vd) este formula
(8x)(9y)r(x; y) ! (9y)(8x)r(x; y)
TEMA 6
Consideram programul logic P :

8
>< p(x) _ q(g(x))
>: r(a)

a)

Calculati universul Herbrand


acestui program

r (x)

U HP

si baza Herbrand

HBP

Fie I = fp(a); r(g(a))g  HBP . De niti interpretarea Herbrand


I . Aratati ca I nu este un model Herbrand pentru P .

b)

25

N. T
 andareanu: Sinteza 2-2
c)

De niti un model Herbrand pentru P .

TEMA 7
Consideram programul P :

8
>
< p(x) _ q(g(x))
>
: r(a)

r (x)

1) Aratati ca  = (f0; 1g; k) unde


k (a)

=1

8
>< 0 daca x = 1
k (g )(x) =
>: 1 daca x = 0

8
>< f alse daca x = 0
k (p)(x) = k (q )(x) = k (r )(x) =
>: true daca x = 1
este un model Herbrand pentru P .
2) Se stie ca daca o multime S de clauze are un model atunci S
are un model Herbrand. Sa se aplice constructia respectiva pentru
a gasi un model Herbrand pentru P .
TEMA 8
Fie programul P de mai jos:

8
>> p(f (x)) q(x)
>>
>< p(x) _ q(x)
>> p(a)
>>
>: q(b)

26

N. T
 andareanu: Sinteza 2-2

1) Gasiti un model  pentru P .


2) Utilizati acest model pentru a gasi un model Herbrand pentru
P.

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