Documente Academic
Documente Profesional
Documente Cultură
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
N. T
andareanu: Sinteza 2-3
1 Obiective
Obiectivele acestui capitol sunt urmatoarele:
N. T
andareanu: Sinteza 2-3
daca si numai daca truth val ('; F ) = true. Astfel, sa consideram ca
exemplu programul P de mai jos:
I
8>
>> p(a)
<
>> q(a)
>: p(f (x))
q (x)
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 vericat 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
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) =
Asadar trebuie sa avem truth val (p(f (x)); F fxjag) = true. Aceasta
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))):
K
IJ
P j=I '
P 6j=J '
^Intr-adevar, truth val ('; F ) = :truth val (p(f (f (a)); F ) = :false =
true si truth val ('; F ) = :truth val (p(f (f (a)); F ) = :true =
false. Astfel putem concluziona ca formula ' este deductibila din P ^n
I
N. T
andareanu: Sinteza 2-3
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
N. T
andareanu: Sinteza 2-3
N. T
andareanu: Sinteza 2-3
N. T
andareanu: Sinteza 2-3
8
>> mama(ana; petre)
><
>> mama(ana; george)
>: frate(X; Y ) mama(Z; X ); mama(Z; Y )
Dar acest program nu modeleaza sucient de bine piesa considerata. ^Intradevar, pe baza acestui program putem deduce ca Petre este fratele
lui George si George este fratele lui Petre, dar mai deducem ca Petre este fratele lui Petre si George este fratele lui George. Un asemenea
rationament ar permite sa armam 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
X la localitatea Y daca X =
6 Y si exista o deplasare directa de la
X la Y sau exista cel putin o escala Z ^n drumul de la X la Y
N. T
andareanu: Sinteza 2-3
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 denite ^n cadrul softwareului cu care se lucreaza si intereseaza numai predicatele denite de utilizator. De aceea, baza programului
P este B = (SC ; ;; SP ) unde
10
N. T
andareanu: Sinteza 2-3
- exista transporturi direct 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 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 denirea
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 deneste astfel:
Denitia 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 denitia 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
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 justica 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:
LMS (P ) = W 2MH (P ) W
LMS (P ) 2 MH (P )
2 MH (P ).
12
N. T
andareanu: Sinteza 2-3
2) ' este clauza A(x1 ; x2 ) B (x1 ; x2), adica ' = 8x1 8x2 [A(x1 ; x2 )
B (x1 ; x2 )]. Va trebui sa vericam ca
truth valI (A(x1 ; x2 ) _ :B (x1 ; x2 ); F fx1 jc1 ; x2 jc2 g) = true
(1)
W 2MH (P )
W 2MH (P )
kW (A)(c1 ; c2 )
(2)
kW (B )(c1 ; c2 )
(3)
(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 vericat 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:
14
N. T
andareanu: Sinteza 2-3
asadar LMS (P ) = I .
Corolarul 3.1 LMS (P ) este cel mai mic model Herbrand pentru programul 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 algoritm pentru calculul lui LMS (P )
N. T
andareanu: Sinteza 2-3
15
Denitia 4.1 O latice L este o multime partial ordonata cu proprietatea ca pentru orice x; y 2 L exista supfx; y g si exista inf fx; y g.
[ : L L ! L; x [ y = supfx; yg
\ : L L ! L; x [ y = inf fx; yg
:
Relatia duala este tot o relatie partiala de ordine. Putem usor observa
ca un element t0 este un majorant pentru multimea Q ^n relatia duala daca si numai daca t0 este un minorant pentru Q ^n relatia initiala.
La fel, conceptul de minorant ^n relatia duala este conceptul de majorant ^n relatia initiala. Pentru acest motiv cele doua concepte se numesc
concepte duale: dualul conceptului de minorant este conceptul de majorant si dualul conceptului de majorant este conceptul de minorant.
Tot asa conceptele de inmum si supremum sunt concepte duale. Se observa 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
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.
N. T
andareanu: Sinteza 2-3
17
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
x; y; z 2 L
x [ (x \ y ) = x; x \ (x [ y ) = x pentru orice x; y 2 L
19
N. T
andareanu: Sinteza 2-3
:L !L
2L
= 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.
x
Propozitia 4.2 Cel mai mic punct x al unui operator, daca exista, este
20
N. T
andareanu: Sinteza 2-3
unic.
21
N. T
andareanu: Sinteza 2-3
X avem supF 2 X .
= supT (X )
!L
se
pentru orice
T (y ).
22
N. T
andareanu: Sinteza 2-3
! L denim:
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 transnita c^ateva proprietati
ale puterilor unui operator, necesare denirii semanticii de punct x a
unui program Horn.
Propozitia 4.4 Pentru orice ordinal avem T " lfp(T )
Proof.
24
N. T
andareanu: Sinteza 2-3
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 " ( +
Proof. Fie cel mai mic ordinal cu Card() > Card(L). Presupunem
26
N. T
andareanu: Sinteza 2-3
!L
" !.
este un
! 2BH
astfel: TP (I )
este multimea tuturor atomilor ground p(c1 ; : : : ; cn) pentru care exista
p(t1 ; : : : ; tn )
Sa observam ca operatorul TP denit 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
27
N. T
andareanu: Sinteza 2-3
tura I = (UHP ; kI ) este un model pentru P . Sa vericam incluziunea TP (I ) I . Consideram un element p(c1; : : : ; cn) 2 TP (I ). Aceasta ^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 programul P , avem
truth valI (8x1 : : : 8xs [p(t1 ; : : : ; tn )
B1 ; : : : ; Bk ]; F ) = true
28
N. T
andareanu: Sinteza 2-3
= true
Din conditia fB1; : : : ; Bk g I deducem truth val (Bi; F ) = true
pentru ecare i 2 f1; : : : ; kg, deci truth val (p(t1 ; : : : ; tn); F ) = true
sau echivalent, p(c1; : : : ; cn) 2 I .
Reciproc, sa consideram ca TP (I ) I si sa vericam ca I = (UHP ; kI )
este un model pentru programul P . Fie
I
B1 ; : : : ; Bk ]
(5)
29
N. T
andareanu: Sinteza 2-3
deci
p(c1 ; : : : ; cn) 2 I
Propozitia 4.11 Operatorul TP atasat unui program Horn este un operator continuu.
Proof. Trebuie sa vericam ca supTP (X ) = TP (supX ) pentru orice
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 exista 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 justica denitia semanticii de punct x data ^n
denitia de mai jos:
Denitia 4.7 Fie P un program Horn si TP operatorul atasat lui P ca
^n denitia 4.6. Semantica de punct x a programului P este notata
cu LF S (P ) si este denita 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.
31
N. T
andareanu: Sinteza 2-3
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)
\
W 2MH (P )
32
N. T
andareanu: Sinteza 2-3
nA [ nB = c:m:m:d:c:(nA ; nB )
nA \ nB = c:m:m:m:c:(nA ; nB )
8
>> p(a)
><
> p(b)
>:
q (f (x))
p(x)
8
>> p(a; b)
>>
>< p(c; b)
>> p(x; z)
>>
>: p(x; y)
TEMA 4
p(x; y ); p(y; z )
p(y; x)
33
N. T
andareanu: Sinteza 2-3
8
>> p(a) p(x); q(x)
>>
>> p(f (x)) p(x)
><
>> p(b)
>> q(b)
>>
>: q(f (x)) q(x)
8>
>> p(c; b)
>>
< p(a; c)
>> p(x; z)
>>
>: p(x; a)
p(x; y ); p(y; z )
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; y)
8
>> p(a; b)
><
>> p(x; z)
>:
p(x; y )
34
N. T
andareanu: Sinteza 2-3
8>
>> p(c; c)
<
>> p(a; c)
>: p(x; b)
p(x; y ); p(y; y )