Documente Academic
Documente Profesional
Documente Cultură
Sinteza2 2 PDF
Sinteza2 2 PDF
TINT
E
Sinteza 2-2:
Nicolae T
andareanu
Facultatea de Matematica-Informatica,
e-mail: ntand@oltenia.ro
1
2 N. T
andareanu: Sinteza 2-2
1 Obiective
Obiectivele acestui capitol sunt urmatoarele:
^ntelegerea conceptelor de validitate si satisabilitate
^ntelegerea conceptelor de model si model Herbrand
^ntelegerea conceptului de consecinta logica
astfel ^nc^at
satisabila daca exista o structura astfel ^nc^at ' 2 sat ; altfel
spus, daca notam sat =
S sat atunci proprietatea lui ' de a
satisabila se poate scrie sub forma ' 2 sat
valida daca pentru orice structura avem ' 2 vd; daca notam
vd =
T vd atunci aceasta proprietate se mai scrie sub forma
' 2 vd
^In particular X poate un program logic apartin^and uneia din cele patru
categorii de programe prezentate ^n capitolul anterior.
P: 8>
>> r(a) _ r(b)
<
>>
>: p(f (x)) _ q(x; x) r (x)
Observam ca:
baza acestui program este B = (fa; bg; ff (1) g; fp(1); q(2) ; r(1) g)
k (f ) : D ! D , k (f )(x) = 2 x,
urmare trebuie sa vericam ca pentru orice asignare F : SV ! f0; 1; 2g
avem truth val ( 1 ; F ) = true si truth val ( 2 ; F ) = true.
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
8 N. T
andareanu: Sinteza 2-2
vd , 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
' = 8x(p(x) ! q(x))
= 8x(q(x) ! r(x))
= 8x(p(x) ! r(x))
Aplic^and teorema 3.1, trebuie sa vericam 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 9
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) = f (t) pentru orice t 2 D1
k1 (a) =a
pentru orice n 0 luam k1(p)(f n(a)) = true si k1(p)(f n(b)) =
f alse
Observam ca ^n ambele cazuri relatia data este vericata.
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 evi-
dent adevarata daca luam c = f s(b) pentru un s oarecare.
iar
Facem observatia ca ^n denitia 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 ) denita mai sus. Putem usor observa ca:
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 vericam ca ecare formula considerata mai sus este
^n vdI . Consideram pe r^and ecare situatie de mai sus:
: f j j g) = true pen-
truth valI ( q (x1 ; : : : ; xn ); F x1 c1 ; : : : ; xn cn
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 vericam ca
f j
truth valI (A(x1 ; : : : ; xk ); G x1 d1 ; : : : ; xk dk j g) = true
pentru orice d1; : : : ; dk 2 U HP .
Echivalent trebuie sa vericam 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 , ram^ane de vericat ca A(d1; : : : ; dk ) 2 vd sau echivalent,
k (A)(eval (d1 ; H ); : : : ; eval (dk ; H )) = true pentru orice asignare
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
truth val (A(x1 ; : : : ; xk ); F x1 c1 ; : : : ; xk ck j g) = true
18 N. T
andareanu: Sinteza 2-2
se mai scrie
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 B 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 '
pentru '. ^In particular orice model Herbrand al lui P este model pentru
'. Urm atoarele trei armatii sunt echivalente pe baza teoremelor 3.1 si
3.2 precum si a faptului ca P [ f:'g este o multime de clauze:
(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
'. Sa 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 de-
ducem ' 2 vdI . Asadar truth valI ('; F ) = true pentru orice F , deci
20 N. T
andareanu: Sinteza 2-2
:
truth valI ( '; F ) = f alse pentru orice F . Acest rezultat contrazice
faptul ca :' 2 vdI .
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.
Denitia 3.7 Un model Herbrand I al unui program logic P este:
cel mai mic model daca pentru orice model Herbrand J al lui
P avem I J
Perechea ' = fD'; k'), unde D' = f0; 1g, k'(a) = 0, k'(p)(0) = true,
k' (p)(1) = f alse este un model pentru P . ^Intr-adevar,
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
4 TEME
TEMA 1
1) Considerati programul P :
8
>
< p(x) _ q(g(x)) r (x)
>
: r(a)
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) Deniti 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
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 (x)
>: r(a)