You are on page 1of 34

BAZE DE CUNOS

 TINT
E

Sinteza 2-3:

Semantici ale programelor Horn.

Nicolae T
 andareanu

Facultatea de Matematica-Informatica,

Universitatea din Craiova,

str.A.I.Cuza 13, 1100-Craiova, Romania

e-mail: ntand@oltenia.ro

1
2 N. T
 andareanu: Sinteza 2-3

1 Obiective
Obiectivele acestui capitol sunt urmatoarele:

 ^ntelegerea conceptului de semantica a unui program logic


 ^ntelegerea conceptului de semantica a celui mai mic model pentru
programe Horn

 ^ntelegerea conceptului de semantica de punct x pentru programele


Horn

 ^nsusirea metodei de calcul a semanticii de punct x si implicit a


semanticii celui mai mic model, cu ajutorul puterilor unui operator

2 Semantici ale programelor logice


Conceptul de semantica a unui program logic are la baza conceptele de
model, model minimal si cel mai mic model. Un model Herbrand al unui
program ne permite sa de nim o anumita semantica prin intermediul
careia orice formula peste baza programului poate evaluata din punct
de vedere a valorii de adevar. Pentru precizarea acestei idei sa consideram
ca P este un program logic peste baza B . Consideram un model Herbrand
I pentru P . Modelului I putem sa-i asociem o relatie notata cu j=I ,
de nita astfel: pentru orice formula ground ' peste baza B , P j=I '
N. T
 andareanu: Sinteza 2-3 3

daca si numai daca truth val ('; F ) = true. Astfel, sa consideram ca
I

exemplu programul P de mai jos:


8>
>> p(a)
<
>> q(a)
>: p(f (x)) q (x)
Universul Herbrand al acestui program este

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

iar baza Herbrand este BHP = fp(f n(a)); q(f n(a))gn0. Sa consideram
urmatoarele doua interpretari Herbrand:

I = fp(a); q (a); p(f (a))g

J = fp(a); q (a); p(f (a)); p(f (f (a)))g

Este usor de veri cat ca ambele interpretari sunt modele Herbrand pentru
programul P . Mai mult, I este cel mai mic model Herbrand pentru P .
^Intr-adevar, e K cel mai mic model Herbrand al lui P . Asadar P 
vd , deci
K

truth valK (p(a); F ) = true

truth valK (q (a); F ) = true

truth valK (8x(:q (x) _ p(f (x))); F ) = true


4 N. T
 andareanu: Sinteza 2-3

Din primele doua relatii rezulta p(a) 2 K si q(a) 2 K . Din a treia relatie
avem
truth valK (:q (x) _ p(f (x)); F fxjcg) = true

pentru orice c 2 UHP . ^In particular vom avea adevarata aceasta relatie
pentru c = a. Dar q(a) 2 K , deci

truth valK (:q (x); F fxjag) =

:truth val (q(x); F fxjag) = :true = false


K

Asadar trebuie sa avem truth val (p(f (x)); F fxjag) = true. Aceasta
K

proprietate are loc numai daca p(f (a)) 2 K . Rezulta ca I  K . Dar K
este cel mai mic model Herbrand al lui P , deci K  I si ^n consecinta
I = K.
Observam ca avem urmatoarele proprietati referitoare la cele doua
modele I si J si formula ' = :p(f (f (a))):
 IJ
 P j=I '
 P 6j=J '
^Intr-adevar, truth val ('; F ) = :truth val (p(f (f (a)); F ) = :false =
I I

true si truth val ('; F ) = :truth val (p(f (f (a)); F ) = :true =
J J

false. Astfel putem concluziona ca formula ' este deductibila din P ^n
N. T
 andareanu: Sinteza 2-3 5

raport cu semantica de nita de I , dar nu este deductibila ^n raport cu


semantica de nita de J .
Sa observam ca ^n raport cu o semantica precizata putem calcula val-
oarea de adevar a oricarei formule peste baza B a programului P . De
exemplu, sa consideram SV = fx; yg si formula '(x) = 9y(p(f (f (x))) ^
q (y )). Nu exista nici o asignare F : SV ! UHP pentru care '(x)
sa aiba valoarea true ^n raport cu semantica de nita de I . ^Intr-adevar,
truth val ('(x); F ) = true daca si numai daca exista c 2 UHP astfel
I

^nc^at truth val (p(f (f (x))) ^ q(y); F fyjcg) = true. Este evident ca va
I

trebui sa luam c = a, deoarece aceasta este singura alegere a lui c pen-
tru care truth val (q(y); F fyjcg) = true. Mai departe, constatam ca
I

p(f (f (d))) 2= I pentru orice d 2 UHP . Nu acelasi lucru putem spune ^n
semantica de nita de J . ^Intr-adevar, asignarea F fxja; yjag are propri-
etatea ca truth val ('(x); F ) = true.
J

Putem de ni functia raspuns a unui program logic P ^n raport cu


semantica de nita de I  BHP . Daca w 2 F ORM (B; SV ) atunci de nim
8
>> yes daca P j=I w; w formula ground
>>
>>
><
AnsI (P; w) = > no daca P 6j=I w; w formula ground sau AssignI (w) = ;
>>
>>
>>
: AssignI (w) altfel
6 N. T
 andareanu: Sinteza 2-3

unde AssignI (w) = fF j truth val (w; F ) = trueg.


I

Pentru formula considerata mai ^nainte avem:

AnsI (P; '(x)) = no

AnsJ (P; '(x)) = fF fxja; y jagg.

Dupa modul de abordare si modul de calcul a semanticii unui program


logic, exista mai multe categorii de semantici:

1) semantica celui mai mic model

2) semantica de punct x

3) semantica de model stabil

4) semantica bine fondata

Din punct de vedere intuitiv a de ni o semantica pentru un program


logic ^nseamna a speci ca un anumit model Herbrand I a programului
respectiv. Pentru ecare tip de semantica enumerat mai sus trebuie pre-
cizata ^n mod corespunzator aceasta multime I . De ^ndata ce se cunosc
elementele lui I , se poate calcula valoarea de adevar a oricarei formule
peste baza programului prin utilizarea functiei truth val . I

^In acest capitol vom studia semantica celui mai mic model si seman-
tica de punct x pentru programele Horn.
N. T
 andareanu: Sinteza 2-3 7

3 Semantica celui mai mic model pentru


programe Horn

^In clasi carea programelor logice prezentata ^n capitolul anterior, pro-
gramele Horn sunt cele mai simple din punct de vedere sintactic. O piesa
de cunostinte data se poate usor transpune ^ntr-un asemenea program si
orice persoana care citeste un program Horn poate intui^ntelesul regulilor
prezentate. Problema care apare este aceea ca uneori modelarea unei piese
de cunostinte se face satisfacator printr-un program Horn, alteori mode-
larea este nesatisfacatoare. La analiza acestui fenomen se tine seama de
pierderea de semni catie a lumii prezentate ^ntr-un model sau altul. Une-
ori, chiar atunci c^and cunoastem tipul programului logic ^n care dorim sa
transpunem piesa de cunostinte, trebuie sa de nim clauzele programului
^n asa fel ^nc^at deductia obtinuta sa e c^at mai aproape de lumea mode-
lata. Pentru a evidentia acest aspect sa consideram urmatoarea piesa de
cunostinte:

Ana este mama lui Petre si a lui George. O persoana X este fratele
lui Y daca X si Y au aceeasi mama.

Evident, un exemplu de program logic care sa modeleze aceasta piesa


8 N. T
 andareanu: Sinteza 2-3

de cunostinte este urmato- rul:


8
>> mama(ana; petre)
><
>> mama(ana; george)
>: frate(X; Y ) mama(Z; X ); mama(Z; Y )
Dar acest program nu modeleaza su cient de bine piesa considerata. ^Intr-
adevar, pe baza acestui program putem deduce ca Petre este fratele
lui George si George este fratele lui Petre, dar mai deducem ca Pe-
tre este fratele lui Petre si George este fratele lui George. Un asemenea
rationament ar permite sa a rmam ca orice persoana este fratele acelei
persoane. Pentru ca sa excludem o astfel de deductie, ^n locul ultimei
clauze se considera clauza
frate(X; Y ) mama(Z; X ); mama(Z; Y ); X 6= Y

Pentru a evidentia un alt aspect al modelarii prin programe logice, sa


consideram de asemenea urmatoarea piesa de cunostinte:
O societate de transport rutier ST R organizeaza deplasari directe
de la Bucuresti la Craiova, de la Bucuresti la Iasi, de la Craiova la
Timisoara si de la Iasi la Cluj. Exista o deplasare de la localitatea
6 Y si exista o deplasare directa de la
X la localitatea Y daca X =
X la Y sau exista cel putin o escala Z ^n drumul de la X la Y
Problema care se pune este de a modela piesa considerata astfel ^nc^at
un pasager sa poata a a daca se poate deplasa de la localitatea X la
N. T
 andareanu: Sinteza 2-3 9

localitatea Y cu societatea ST R.
Piesa de cunostinte considerata se poate modela ^n urmatorul program
logic:
8
>> direct(bucuresti; craiova)
>>
>> direct(bucuresti; iasi)
>>
>< direct(craiova; timisoara)
>> direct(iasi; cluj )
>>
> deplasare(X; Y ) X = 6 Y; direct(X; Y ):
>>
>: deplasare(X; Y ) X =6 Y; direct(X; Z ); deplasare(Z; Y ):
Notam cu P acest program Horn. De obicei predicatele standard 6=; <; >
; : : : se numesc predicate built-in, iar multimea acestora se noteaza cu
BI . Ele sunt de nite ^n cadrul softwareului cu care se lucreaza si intere-
seaza numai predicatele de nite de utilizator. De aceea, baza programului
P este B = (SC ; ;; SP ) unde

SC = fbucuresti; craiova; iasi; timisoara; cluj g


SP = fdirect(2) ; deplasare(2) g
^In de nitiv, a de ni semantica unui program logic ^nseamna sa de nim
si/sau sa calculam tot ceea ce este adevarat^n virtutea faptelor cunoscute
si a utilizarii regulilor enuntate ^n program. Astfel, intuitiv observam ca
urmatoarele a rmatii sunt adevarate relativ la programul P :
10 N. T
 andareanu: Sinteza 2-3

- exista transporturi direct de la Bucuresti la Craiova, de la Bu-


curesti la Iasi, de la Craiova la Timisoara si de la Iasi la Cluj

- exista o deplasare de la Bucuresti la Timisoara si exista o deplasare


de la Bucuresti la Cluj

- nu putem deduce ca exista o deplasare de la Craiova la Cluj si


prin urmare, putem considera ca nu exista o deplasare de la Craiova
la Cluj; ^n asemenea rationament spunem ca utilizam negatia prin
esec.

Tratarea formalizata a semanticii programelor Horn se face prin de nirea


semanticii celui mai mic model, introdusa de Van Emden si Kowalski.
Ea se noteaza cu LMS (P ), initialele provin de la least model semantics,
P este programul Horn considerat si ea se de neste astfel:

De nitia 3.1 Fie P un program Horn cu baza B . Multimea

LMS (P ) = fp(c1 ; : : : ; cn ) 2 BHP j P j= p(c1 ; : : : ; cn )g

se numeste semantica celui mai mic model pentru P .

Din de nitia data se constata ca LMS (P )  BHP . Prin urmare LMS (P )
este o interpretare Herbrand. Sa consideram structura LMS(P ) atasata
acestei interpretari. Pentru orice atom ground p(c1; : : : ; cn) peste baza
B avem truth val (p(c1 ; : : : ; cn); F ) = true daca si numai daca
LMS (P )
N. T
 andareanu: Sinteza 2-3 11

p(c1 ; : : : ; cn) 2 LMS (P ). De aceea, valoarea de adevar a oricarui element


din LMS (P ) este true ^n raport cu semantica celui mai mic model si este
false pentru orice atom ground din afara lui LMS (P ).
Teorema care urmeaza justi ca denumirea semanticii de mai sus.
Teorema 3.1 (Van Emden, Kowalski)
Fie P un program Horn. Notam cu MH (P ) multimea tuturor modelelor
Herbrand pentru P . Atunci:
T
LMS (P ) = W 2MH (P ) W

LMS (P ) 2 MH (P )
T
Proof. Sa notam I = W 2MH (P ) W si sa veri cam ca I 2 MH (P ).
Echivalent, aceasta revine la a veri ca ca structura I = (UHP ; kI )
atasata lui I este un model pentru P , adica pentru orice ' 2 P avem
' 2 vd . Deoarece P este un program Horn, este su cient sa consideram
I

pentru ' numai doua cazuri:


1) ' = p(t1; : : : ; pn) 2 BHP \ P
Tin^and seama de de nitia lui I avem urmatoarele relatii echiva-
lente:
 truth val ('; F ) = kI (p)(t1 ; : : : ; tn) = true pentru orice F
I

 p(t1; : : : ; tn) 2 I
 p(t1; : : : ; tn) 2 W pentru orice W 2 MH (P )
12 N. T
 andareanu: Sinteza 2-3

 kW (p)(t1 ; : : : ; pn) = true pentru orice W 2 MH (P )


 truth val ('; F ) = true pentru orice W 2 MH (P ),
W

iar ultima evaluare este adevarata deoarece pentru orice W 2


MH (P ) avem P  vdW , deci ^n particular ' 2 vd . W

2) ' este clauza A(x1 ; x2 ) B (x1 ; x2), adica ' = 8x1 8x2 [A(x1 ; x2 )
B (x1 ; x2 )]. Va trebui sa veri cam ca

truth valI (A(x1 ; x2 ) _ :B (x1 ; x2 ); F fx1 jc1 ; x2 jc2 g) = true

pentru orice c1; c2 2 UHP .


Echivalent, trebuie sa veri cam ca pentru orice c1 ; c2 2 UHP avem
kI (A)(c1 ; c2 ) _ :kI (B )(c1 ; c2 ) = true (1)
Tin^and seama de de nitia lui I avem:
^
kI (A)(c1 ; c2 ) = kW (A)(c1 ; c2 ) (2)
W 2MH (P )
^
kI (B )(c1 ; c2 ) = kW (B )(c1 ; c2 ) (3)
W 2MH (P )
Pe de alta parte, daca W este arbitrar ^n MH (P ) atunci
truth valW (A(x1 ; x2 ) _ :B (x1 ; x2 ); Gfx1 jc1 ; x2 jc2 g) = true

pentru orice c1; c2 2 UHP , ceea ce ^nseamna ca pentru orice W 2


MH (P ) si orice c1 ; c2 2 UHP avem

kW (A)(c1 ; c2 ) _ :kW (B )(c1 ; c2 ) = true (4)


N. T
 andareanu: Sinteza 2-3 13

Fie c1 si c2 doua elemente arbitrare ^n UHP . Avem doua cazuri
posibile:
1) pentru orice W 2 MH (P ) avem kW (A)(c1; c2) = true; ^n acest
caz kI (A)(c1; c2) = true
2) exista W 2 MH (P ) astfel ^nc^at kW (A)(c1 ; c2) = false; ^n acest
caz din (4) avem kW (B )(c1 ; c2) = false, deci kI (B )(c1 ; c2) = false
si prin urmare (1) este adevarata.

Cu aceasta am veri cat ca I = TW 2MH (P ) W 2 MH (P ) si prin urmare


I este cel mai mic model Herbrand pentru P .
Ram^ane sa demonstram ca LMS (P ) = I . Fie p(c1; : : : ; cn) 2 BHP . Avem
urmatoarele relatii echivalente:

 p(c1 ; : : : ; cn) 2 LMS (P )


 P j= p(c1; : : : ; cn)
 P [ f:p(c1 ; : : : ; cn)g este inconsistenta
 nu exista nici un model Herbrand pentru P [ f:p(c1; : : : ; cn)g
 kW (p)(c1; : : : ; cn) = true pentru orice W 2 MH (P )
 kI (p)(c1; : : : ; cn) = true
 p(c1 ; : : : ; cn) 2 I
14 N. T
 andareanu: Sinteza 2-3

asadar LMS (P ) = I .
Corolarul 3.1 LMS (P ) este cel mai mic model Herbrand pentru pro-
gramul Horn P .

Remarca 3.1 LMS (P ) nu depinde de ordinea ^n care sunt asezate clauzele
^n programul P

Remarca 3.2 Teorema lui Van Emden si Kowalski nu prezinta un al-
goritm pentru calculul lui LMS (P )

4 Semantica de punct x a programelor


Horn
4.1 Elemente de punct x
O multime partial ordonata este o pereche (P; ) unde P este o
multime nevida, iar  este o relatie binara pe multimea P astfel ^nc^at 
este re exiva, antisimetrica si tranzitiva.
Daca Q  P atunci un majorant pentru Q este un element z 2 P
astfel ^nc^at x  z pentru orice x 2 Q. Cel mai mic majorant pentru Q
(daca exista) se noteaza cu sup Q si se numeste supremumul multimii
Q. Dual apare conceptul de minorant pentru Q si cel mai mare minorant
al lui Q, numit in mumul lui Q si este notat inf Q (daca exista).
N. T
 andareanu: Sinteza 2-3 15

De nitia 4.1 O latice L este o multime partial ordonata cu propri-


etatea ca pentru orice x; y 2 L exista supfx; y g si exista inf fx; y g.

Deoarece ^ntr-o multime partial ordonata supremumul si in mumul unei


multimi sunt unic determinate, daca exista, putem de ni pentru o latice
L doua legi de compozitie, numite reuniune si intersectie:

[ : L  L ! L; x [ y = supfx; yg
\ : L  L ! L; x [ y = inf fx; yg
^Intr-o latice (L; ) putem de ni duala relatiei , pe care o notam
:
x  y daca si numai daca y  x

Relatia duala este tot o relatie partiala de ordine. Putem usor observa
ca un element t0 este un majorant pentru multimea Q ^n relatia du-
ala daca si numai daca t0 este un minorant pentru Q ^n relatia initiala.
La fel, conceptul de minorant ^n relatia duala este conceptul de majo-
rant ^n relatia initiala. Pentru acest motiv cele doua concepte se numesc
concepte duale: dualul conceptului de minorant este conceptul de ma-
jorant si dualul conceptului de majorant este conceptul de minorant.
Tot asa conceptele de in mum si supremum sunt concepte duale. Se ob-
serva ca ^n teoria laticilor este valabil principiul dualitatii: de ^ndata ce
este adevarata o anumita proprietate, este adevarata si duala ei, care
16 N. T
 andareanu: Sinteza 2-3

se obtine din proprietatea initiala ^nlocuind ecare notiune cu duala ei.


Astfel, duala proprietatii supremumul unei multimi, daca exista,
este unic determinat este proprietatea in mumul unei multimi, daca
exista, este unic determinat.

Propozitia 4.1 ^Intr-o latice L operatiile [ si \ satisfac proprietatile:

1) comutativitatea:

x [ y = y [ x; x \ y = y \ x

pentru orice x; y 2 L

2) asociativitatea:

x [ (y [ z ) = (x [ y ) [ z ; x \ (y \ z ) = (x \ y ) \ z

pentru orice x; y; z 2 L

3) legile de absorbtie:

x [ (x \ y ) = x; x \ (x [ y ) = x

pentru orice x; y 2 L

Proof.
1) Pentru orice x; y 2 L avem x [ y = supfx; yg = supfy; xg = y [ x;
dual se veri ca comutativitatea intersectiei.
N. T
 andareanu: Sinteza 2-3 17

2) Pentru a demonstra asociativitatea reuniunii se observa ca pentru


orice x; y; z 2 L avem
x [ (y [ z ) = supfx; y; z g
^Intr-adevar, x  x [ (y [ z) deoarece x [ (y [ z) = supfx; y [ zg, y 
y [ z  x [ (y [ z ), z  y [ z  x [ (y [ z ), deci x [ (y [ z ) este un majorant
pentru fx; y; zg. Fie t0 un alt majorant pentru multimea fx; y; zg:
x  t0 ; y  t0 ; z  t0

Deoarece y [ z = supfy; zg si t0 este un majorant pentru multimea


fy; zg rezulta ca y [ z  t0. Asadar t0 este un majorant pentru multimea
fx; y [ zg, deci x [ (y [ z)  t0 . ^In concluzie, x [ (y [ z) este cel mai
mic majorant pentru multimea fx; y; zg, deci x [ (y [ z) = supfx; y; zg.
Acum asociativitatea reuniunii rezulta imediat deoarece x [ (y [ z) =
supfx; y; z g = supfz; x; y g = z [ (x [ y ) = (x [ y ) [ z ^n baza comutativ-
itatii reuniunii.
Dual se demonstreaza ca x \ (y \ z) = inf fx; y; zg si prin urmare operatia
de intersectie este asociativa.
3) Avem x  x [ (x \ y) deoarece x [ (x \ y) = supfx; x \ yg.
Dar x \ y  x si deci x este un majorant pentru multimea fx; x \ yg.
Rezulta ca x [ (x \ y) = supfx; x \ yg  x. Prin antisimetrie rezulta ca
x = x [ (x \ y ). Dual se demonstreaza ca x = x \ (x [ y ).
Sa observam dualitatea relatiilor din Propozitia 4.1:
18 N. T
 andareanu: Sinteza 2-3

x [ y = y [ x; x \ y = y \ x

x [ (y [ z ) = (x [ y ) [ z ; x \ (y \ z ) = (x \ y ) \ z

x [ (x \ y ) = x; x \ (x [ y ) = x

^In consecinta, operatiile de reuniune si intersectie^ntr-o latice sunt operatii


duale.
Sa consideram tripletul (L; [; \)^n care [ : LL ! L, \ : LL !
L satisfac proprietatile:

x [ y = y [ x; x \ y = y \ x pentru orice x; y 2 L

x [ (y [ z ) = (x [ y ) [ z ; x \ (y \ z ) = (x \ y ) \ z pentru orice
x; y; z 2 L

x [ (x \ y ) = x; x \ (x [ y ) = x pentru orice x; y 2 L

Observam ca ^n acest context avem urmatoarea proprietate:

x [ y = y () x \ y = x

^Intr-adevar, daca x [ y = y atunci x \ y = x \ (x [ y) = x. Reciproc,


daca x \ y = x atunci x [ y = (x \ y) [ y = y [ (y \ x) = y.
De nim urmatoarea relatie binara:

x  y () x [ y = y
N. T
 andareanu: Sinteza 2-3 19

Aplic^and de doua ori legile de absorbtie constatam ca x = x [ (x \ (x [


x)) = x [ x pentru orice x 2 L si prin urmare relatia  este re exiva.
Daca x  y si y  x atunci x [ y = y, y [ x = x deci x = y ^n baza
comutativitatii operatiei [. Tranzitivitatea relatiei  se obtine imediat:
daca x  y si y  z atunci x [ y = y, y [ z = z deci x [ z = x [ (y [ z) =
(x [ y) [ z = y [ z = z.
Asadar (L; ) devine o multime partial ordonata. Putem usor veri ca
faptul ca ^n aceasta multime L exista supfx; yg si exista inf fx; yg pentru
orice x; y 2 L. Mai mult, supfx; yg = x [ y si inf fx; yg = x \ y. ^Intr-
adevar, x [ (x [ y) = (x [ x) [ y = x [ y deci x  x [ y. Similar
y  x [ y . Daca x  t0 si y  t0 atunci x [ t0 = t0 , y [ t0 = t0 , deci
(x [ y) [ t0 = x [ (y [ t0 ) = x [ t0 = t0 . Astfel x [ y este cel mai mic
majorant al multimii fx; yg, adica x [ y = supfx; yg. Similar, sau prin
dualitatea proprietatilor celor doua operatii de reuniune si intersectie
avem x \ y = inf fx; yg. ^In consecinta (L; [; \) este o latice.
De nitia 4.2 O latice (L; ) se numeste completa daca orice submul-
time nevida a ei are supremum si in mum. Un operator T :L !L
se numeste monoton daca din x  y rezulta T (x)  T (y ). Un element
x 2L se numeste punct x al operatorului T daca T (x)= x. Un
element x0 este un cel mai mic punct x al lui T daca T (x0 ) = x0 si
pentru orice a 2 L pentru care T (a) = a avem x0  a.

Propozitia 4.2 Cel mai mic punct x al unui operator, daca exista, este
20 N. T
 andareanu: Sinteza 2-3

unic.

Proof. Daca x0 ; y0 sunt cele mai mici puncte xe pentru T atunci


T (x0 ) = x0 , T (y0) = y0 , x0  y0 pentru ca x0 este un cel mai mic
punct x; y0  x0 pentru ca y0 este un cel mai mic punct x pentru T .
Prin antisimetria relatiei  rezulta x0 = y0.
Cel mai mic punct x al operatorului T , daca exista, ^l notam cu
lfp(T ).

Teorema 4.1 (Knaster-Tarski)


Fie (L; ) o latice completa. Daca T : L ! L este un operator monoton
atunci T admite lfp si

lfp(T ) = inf fx 2 L j T (x) = xg = inf fx 2 L j T (x)  xg

Proof. Notam

A = fx 2 L j T (x) = xg; B = fx 2 L j T (x)  xg

Vom arata la ^nceput ca A 6= ; si B 6= ;. ^Intr-adevar, L ind o latice


completa exista supL, pe care ^l notam cu 1. Evident T (1)  1 deoarece
1 este cel mai mare element al lui L. Astfel, 1 2 B . Notam g2 = infB ,
acest element exista pentru ca B 6= ;. Din de nitia elementului g2 rezulta
ca g2  x pentru orice x 2 B , deci T (g2)  T (x)  x pentru orice x 2 B .
Asadar T (g2) este un minorant pentru B , deci T (g2)  g2 si prin urmare
g2 2 B . Operatorul T este monoton deci T (T (g2 ))  T (g2 ), prin urmare
N. T
 andareanu: Sinteza 2-3 21

T (g2 )2 B . Deoarece g2 = infB si T (g2) 2 B rezulta ca g2  T (g2).


Asadar T (g2) = g2 , deci g2 2 A. Rezulta ca A =
6 ; si prin urmare exista
g1 = infA. Pentru orice x 2 A avem g1  x deci T (g1 )  T (x) = x.
Dar g1 este cel mai mare minorant pentru A, deci T (g1)  g1. Rezulta
ca g1 2 B , deci g2  g1 . Deoarece g1 = infA, rezulta ca g1  g2. Prin
urmare g1 = g2. Deoarece T (g2) = g2 si g2 = g1 rezulta T (g1) = g1 si
deci g1 este un punct x pentru T . Evident g1 este cel mai mic punct x
pentru T .
De nitia 4.3 Fie L o latice. O submultime X  L se numeste multime
dirijata daca pentru orice parte nita F  X avem supF 2 X .
De nitia 4.4 Fie L o latice completa. Un operator T : L !L se
numeste operator continuu daca T (supX ) = supT (X ) pentru orice
submultime dirijata X a lui L.

Propozitia 4.3 Orice operator continuu este monoton.

Proof. Presupunem ca x  y . Multimea X = fx; y g este dirijata, deci


T (y ) = T (supX ) = supT (X ) = supfT (x); T (y )g. Rezulta ca T (x) 
T (y ).
Remarca 4.1 Sa observam ca daca T : L ! L este un operator mono-
ton atunci supfT (X )g  T (supX ). ^Intr-adevar, pentru orice x 2 X
avem x  supX deci T (x)  T (supX ). Asadar T (supX ) este un majo-
rant pentru T (X ), deci supT (X )  T (supX ).
22 N. T
 andareanu: Sinteza 2-3

4.2 Puterile unui operator monoton si proprietati


ale acestora
Notam cu ; multimea vida. Ordinalele nite se noteaza cu 0; 1; 2; 3; : : : si
se de nesc astfel:
0=;
1 = f0g; 2 = f0; 1g; 3 = f0; 1; 2g, : : :
Se noteaza ! = f0; 1; 2; : : :g si acesta este primul ordinal in nit. Pentru
orice ordinal putem de ni + 1 = [ f g. Observam ca 0 + 1 = 1,
1+1 = 2, 2+1 = 3 etc. Pentru doua ordinale si de nim < daca si
numai daca 2 . Se poate demonstra ca pentru orice ordinal , numarul
+ 1 este cel mai mic ordinal care depaseste pe ^n relatia de nita mai
sus. Numarul + 1 se numeste succesorul lui . Un ordinal se numeste
ordinal limita daca nu exista un ordinal astfel ^nc^at = +1. Numarul
0 este primul ordinal limita. Urmatorul ordinal limita este !. Numerele
! + 1, ! + 2, : : : sunt ordinale succesoare. Urmatorul ordinal limita este
! + ! si acesta se noteaza cu !:2.
Consideram o latice completa L. Notam 0 = infL. ^In de nitia care
urmeaza de nim puterile ordinale ale unui operator.
De nitia 4.5 Pentru un operator monoton T : L ! L de nim:
T "0=0
N. T
 andareanu: Sinteza 2-3 23
8
>> T (T " ( 1)) daca este ordinal succesor
><
T " =>
>>:
supfT " j < g daca este ordinal limita
Observam ca puterile unui operator T : L ! L sunt elemente din L.
^In continuare vom demonstra prin inductie trans nita c^ateva proprietati
ale puterilor unui operator, necesare de nirii semanticii de punct x a
unui program Horn.
Propozitia 4.4 Pentru orice ordinal avem T "  lfp(T )

Proof.

 Pentru = 0 proprietatea este adevarata


 Presupunem ca proprietatea este adevarata pentru orice ordinal
< si sa aratam ca ea este adevarata pentru .

Daca este un ordinal succesor atunci T " = T (T " (


1))  T (lfp(T )) = lfp(T )
Daca este ordinal limita atunci T " = supfT " j <
g  lfp(T )

Propozitia 4.5 Pentru orice ordinal avem T "  T " ( + 1)

Proof.
24 N. T
 andareanu: Sinteza 2-3

 Pentru = 0 proprietatea este adevarata


 Presupunem ca proprietatea este adevarata pentru orice ordinal
< si sa aratam ca ea este adevarata pentru .

Daca este un ordinal succesor atunci T " = T (T " (


1))  T (T " )) = T " ( + 1)
Daca este un ordinal limita atunci T " = supfT " j <
g  supfT " ( + 1) j < g  T (supfT " j < g) =
T (T " ) = T " ( + 1)

Propozitia 4.6 Daca < atunci T "  T "


Proof. Demonstram proprietatea prin inductie dupa . Pentru = 1
proprietatea este evident adevarata.
 Presupunem ca este un ordinal succesor. Fie < , deci 
1. Prin ipoteza inductiva proprietatea este adevarata pentru
1, deci T "  T " ( 1). Prin propozitia 4.5 avem T "
( 1)  T " si prin urmare proprietatea este veri cata ^n acest
caz.
 Fie un ordinal limita. Fie < si un ordinal astfel ^nc^at
< < . Avem: T "  T " prin ipoteza inductiva si
T "  supfT " ) j < g = T "
N. T
 andareanu: Sinteza 2-3 25

Propozitia 4.7 Daca < si T " = T " atunci T " = lfp(T ).

Proof. ^In ipotezele propozitiei de demonstrat avem T "  T " ( +


1)  T " , deci T " = T " ( + 1) = T " . Asadar T " = T "
( + 1) = T (T " ) si astfel T " esste un punct x pentru T . Deoarece
lfp(T ) este cel mai mic punct x rezulta ca lfp(T )  T " . Aplic^and
propozitia 4.4 rezulta ca T " = lfp(T ).
Propozitia 4.8 Exista un ordinal astfel ^nc^at pentru orice  avem
T " = lfp(T ).

Proof. Fie cel mai mic ordinal cu Card( ) > Card(L). Presupunem
ca pentru orice < avem T " 6= lfp(T ). De nim functia h : ! L
prin h() = T " . Prin propozitia 4.7 rezulta ca functia h este injectiva,
ceea ce este imposibil prin alegerea lui . Asadar exista < astfel ^nc^at
T " = lfp(T ) Din monotonia operatorului T si propozitia 4.4 avem
lfp(T ) = T "  T "  lfp(T ), deci T " = lfp(T ). Fie  .

daca  atunci T "  T "  T " deci T " = T " =


T " = lfp(T )

daca > atunci T "  T " = lfp(T ); din propozitia 4.4


avem T "  lfp(T ), deci T " = lfp(T ).
26 N. T
 andareanu: Sinteza 2-3

Propozitia 4.9 Fie L o latice completa. Daca T : L !L este un


operator continuu atunci lfp(T ) = T " !.
Proof. Sa demonstram ca T " ! este un punct x pentru T . Multimea
fT " n j n 2 !g este dirijata deoarece T este monoton. Avem:
T (T " ! ) = T (supfT " n j n 2 ! g = supfT " (n + 1) j n 2 ! g =
supfT " n j n < ! g = T " ! .
Deoarece T " ! este punct x pentru T , rezulta ca lfp(T )  T " !. Prin
propozitia 4.4 avem T " !  lfp(T ), deci T " ! = lfp(T ).

4.3 De nitia semanticii de punct x pentru pro-


grame Horn
Consideram un program Horn P si baza sa Herbrand BHP . Multimea
(2BH ; ) a tuturor partilor lui BHP este o latice completa ^n raport cu
P

relatia de incluziune din teoria multimilor.


De nitia 4.6 De nim operatorul TP : 2BHP ! 2BH P astfel: TP (I )
este multimea tuturor atomilor ground p(c1 ; : : : ; cn) pentru care exista
p(t1 ; : : : ; tn ) B1 ; : : : ; Bk ^n P si exista o substitutie ground  astfel
^nc^at B1  2 I , : : :, Bk  2 I si p(t1 ; : : : ; tn ) = p(c1 ; : : : ; cn ).

Sa observam ca operatorul TP de nit mai sus este monoton, adica TP (I ) 
TP (J ) daca I  J . De asemenea, observam urmatoarea particularitate
a laticii L = 2BH : e X  L o multime dirijata si atomii ground
P
N. T
 andareanu: Sinteza 2-3 27

A1 ; : : : ; An ; avem fA1 ; : : : ; An g  supX daca si numai daca exista I 2 X


astfel ^nc^at fA1; : : : ; Ang  I . ^Intr-adevar, daca A1; : : : ; An 2 supX =
S I atunci exista i ; : : : ; i si exista I ; : : : ; I 2 X astfel ^nc^at A 2
I 2X 1 n i 1 i n i 1

Ii , : : :, Ai 2 Ii . Asadar fA1 ; : : : ; An g  supfIi ; : : : ; Ii g, iar ultima


1 n n 1 n

multime este din X deoarece X este dirijata.


Cu ajutorul operatorului TP putem caracteriza acele interpretari Her-
brand care sunt modele Herbrand pentru P . Aceasta caracterizare este
prezentata ^n propozitia urmatoare:
Propozitia 4.10 Fie P un program Horn. O interpretare Herbrand I a
lui P este un model Herbrand pentru P daca si numai daca TP (I )  I .

Proof. Presupunem ca I este un model Herbrand pentru P , deci struc-


tura I = (UHP ; kI ) este un model pentru P . Sa veri cam incluzi-
unea TP (I )  I . Consideram un element p(c1; : : : ; cn) 2 TP (I ). Aceas-
ta ^nseamna ca exista o formula 8x1 : : : 8xs [p(t1; : : : ; tn) B1 ; : : : ; Bk ]
a programului P si exista o substitutie ground  = fx1 jd1; : : : ; xsjdsg,
unde d1; : : : ; ds sunt elemente din UHP , astfel ^nc^at fB1 ; : : : ; Bk g  I
si p(t1; : : : ; tn) = p(c1 ; : : : ; cn). Deoarece I este un model pentru pro-
gramul P , avem
truth valI (8x1 : : : 8xs [p(t1 ; : : : ; tn ) B1 ; : : : ; Bk ]; F ) = true

pentru orice asignare F . Echivalent, aceasta ^nseamna ca


truth valI ([p(t1 ; : : : ; tn ) B1 ; : : : ; Bk ]; F fx1 jc1 ; : : : ; xs jcsg) = true
28 N. T
 andareanu: Sinteza 2-3

pentru orice c1; : : : ; cs 2 UHP . ^In particular vom avea


truth valI ([p(t1 ; : : : ; tn ) B1 ; : : : ; Bk ]; F fx1 jd1 ; : : : ; xs jdsg) = true
ceea ce ne conduce la urmatoarea evaluare
truth valI ([p(t1 ; : : : ; tn ) _ : : : _:B1 _ : : : _:Bk ]; F fx1 jd1 ; : : : ; xs jdsg) =
= true
Din conditia fB1; : : : ; Bk g  I deducem truth val (Bi; F ) = true I

pentru ecare i 2 f1; : : : ; kg, deci truth val (p(t1 ; : : : ; tn); F ) = true
I

sau echivalent, p(c1; : : : ; cn) 2 I .


Reciproc, sa consideram ca TP (I )  I si sa veri cam ca I = (UHP ; kI )
este un model pentru programul P . Fie
8x1 : : : 8xs [p(t1; : : : ; tn) B1 ; : : : ; Bk ]
o formula oarecare a programului P . Trebuie sa veri cam ca
truth valI (p(t1 ; : : : ; tn ) _ :B1 _ : : : _ :Bk ; F fx1 jd1 ; : : : ; xs jdsg) = true
(5)
pentru orice d1; : : : ; ds 2 UHP .
Consideram elementele d1; : : : ; ds 2 UHP . Fie  = fx1 jd1; : : : ; xsjdsg.
Notam p(c1; : : : ; cn) = p(t1; : : : ; tn). Avem de analizat doua cazuri:
1) Exista i 2 f1; : : : ; kg astfel ^nc^at Bi 2= I .
^In acest caz
truth valI (Bi ; F fx1 jd1; : : : ; xs jdsg) = false
N. T
 andareanu: Sinteza 2-3 29

deci
truth valI (:Bi ; F fx1 jd1; : : : ; xs jdsg) = true
si prin urmare (5) este adevarata.
2) Pentru orice i 2 f1; : : : ; kg avem Bi 2 I .
^In acest caz
p(c1 ; : : : ; cn ) 2 TP (I )
deci
p(c1 ; : : : ; cn) 2 I
deoarece TP (I )  I . Rezulta ca
truth valI (p(t1 ; : : : ; tn ); F fx1 jd1 ; : : : ; xs jdsg) = true

si prin urmare (5) este adevarata.

Propozitia 4.11 Operatorul TP atasat unui program Horn este un op-


erator continuu.

Proof. Trebuie sa veri cam ca supTP (X ) = TP (supX ) pentru orice
multime dirijata X . Fie X  L, X dirijata. Atomul p(c1; : : : ; cn) este ^n
TP (supX ) daca si numai daca exista o clauza p(t1 ; : : : ; tn ) B1 ; : : : ; Bk
^n programul P si exista o substitutie ground  astfel ^nc^at
fB1 ; : : : ; Bk g  supX
30 N. T
 andareanu: Sinteza 2-3

si p(t1 ; : : : ; tn) = p(c1 ; : : : ; cn). Dar X este o multime dirijata si prin
urmare conditia fB1 ; : : : ; Bk g  supX este echivalenta cu faptul ca ex-
ista I 2 X astfel ^nc^at fB1; : : : ; Bk g  I . ^In consecinta, p(c1; : : : ; cn) 2
TP (supX ) daca si numai daca exista I 2 X astfel ^nc^at p(c1 ; : : : ; cn) 2
TP (I ). Evident, ultima conditie este echivalenta cu faptul ca

p(c1 ; : : : ; cn) 2 supTP (X )

Aplic^and propozitia 4.9 rezulta ca exista cel mai mic punct x al
operatorului TP si se justi ca de nitia semanticii de punct x data ^n
de nitia de mai jos:
De nitia 4.7 Fie P un program Horn si TP operatorul atasat lui P ca
^n de nitia 4.6. Semantica de punct x a programului P este notata
cu LF S (P ) si este de nita prin

LF S (P ) = lfp(TP ) = TP " !

^ consecinta, ^n raport cu aceasta semantica orice atom din LF S (P )


In
are valoarea logica true si orice atom din BHP n LF S (P ) are valoarea
logica false.

Conform acestei de nitii putem spune ca semantica de punct x a unui


program Horn este data de cel mai mic punct x al operatorului atasat
programului.
N. T
 andareanu: Sinteza 2-3 31

Acum putem demonstra ca semantica de punct x a unui program


Horn coincide cu semantica celui mai mic model.
Teorema 4.2 (Van Emden, Kowalski)
Daca P este un program Horn atunci LMS (P ) = LF S (P ).

Proof. Fie TP operatorul atasat programului P . Conform teoremei lui


Knaster- Tarski avem:

lfp(TP ) = inf fI j I 2 2BHP ; TP (I )  I g

Aplic^and propozitia 4.10 vom avea


\
lfp(TP ) = inf fI 2 2BHP j I 2 MH (P )g = W
W 2MH (P )
deci LF S (P ) = LMS (P ).

5 TEME
TEMA 1
Considerati programul Horn P de mai jos:
8>
< int(0)
>: int(add(x; 1)) int(x)
unde SC = f0; 1g, SF = fadd(2) g, SP = fint(1) g.
a) Calculati LMS (P )
32 N. T
 andareanu: Sinteza 2-3

b) Aratati ca LMS (P ) este multime in nita


TEMA 2
Fie X = fp1; : : : ; png, unde p1; : : : ; pn sunt numere prime. Fiecarei
submultimi A  X i se asociaza un numar natural nA astfel: daca A =
fpi ; : : : ; pi g 6= ; atunci nA = pi : : : pi ; daca A = ; atunci nA = 1. Pe
1 s 1 s

multimea M = fnA j A 2 2X g de nim doua legi de compozitie:


nA [ nB = c:m:m:d:c:(nA ; nB )

nA \ nB = c:m:m:m:c:(nA ; nB )

Aratati ca (M; [; \) este o latice.


TEMA 3
1) Calculati semantica de punct x pentru programul:
8
>> p(a)
><
> p(b)
>:
q (f (x)) p(x)
2) Calculati semantica de punct x pentru programul:
8
>> p(a; b)
>>
>< p(c; b)
>> p(x; z) p(x; y ); p(y; z )
>>
>: p(x; y) p(y; x)
TEMA 4
N. T
 andareanu: Sinteza 2-3 33

1) Calculati semantica de punct x pentru programul:


8
>> p(a) p(x); q(x)
>>
>> p(f (x)) p(x)
><
>> p(b)
>> q(b)
>>
>: q(f (x)) q(x)
2) Calculati semantica de punct x pentru programul:
8>
>> p(c; b)
>>
< p(a; c)
>> p(x; z) p(x; y ); p(y; z )
>>
>: p(x; a) p(a; x); p(x; b)
TEMA 5
1) Calculati semantica de punct x pentru programul:
8
>> p(a; b)
>>
>< p(b; c)
>> p(x; z) p(x; a); p(a; z )
>>
>: p(x; y) p(y; x)
2) Calculati semantica de punct x pentru programul:
8
>> p(a; b)
><
>> p(x; z) p(x; b); p(b; z )
>:
p(x; y ) p(y; x)
34 N. T
 andareanu: Sinteza 2-3

3) Calculati semantica de punct x pentru programul:


8>
>> p(c; c)
<
>> p(a; c)
>: p(x; b) p(x; y ); p(y; y )

You might also like