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:
N. T
andareanu: Sinteza 2-2
D SV
astfel ^nc^at
truth val ('; F )
= true
satisabila daca exista o structura astfel ^nc^at ' 2 sat ; altfel
S sat atunci proprietatea lui ' de a
spus, daca notam sat =
2 vd
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:
N. T
andareanu: Sinteza 2-2
: SV ! f0; 1; 2g
val ( 2 ; F ) = true.
1) truth
val (r (a)
_ r(b); F )=
_ truth
val (r (b); F ) =
2) truth val(
f0; 1; 2g avem
2; F )
pentru c
k (p)(2)
=1
=2
pentru c
k (p)(0)
pentru c
k (p)(1)
=0
Sa mai observam ca daca luam aceeasi structura , dar ^n care modicam
pe k(b) lu^and k(b)
N. T
andareanu: Sinteza 2-2
admite cel putin un model; ^n caz contrar multimea X se numeste in-
consistenta.
N. T
andareanu: Sinteza 2-2
k (p) : R
altfel
Structura considerata este un model pentru multimea X . Vericarea acestei proprietati se reduce la vericarea urmatoarelor relatii, care nu arata
alteceva dec^at faptul ca relatia pe multimea numerelor reale este o
relatie de ordine:
f alse
c3
Denitia 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= ',
Teorema 3.1 Fie X o multime de formule ground si ' o formula ground.
Avem X
Proof. Presupunem ca X j= '. Prin absurd sa presupunem ca X [f:'g
N. T
andareanu: Sinteza 2-2
'
= 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
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)
(4)
(5)
astfel
(6)
_ :k(p)(c1 ) = true
(7)
k (r )(c2 )
_ :k(q)(c2 ) = true
(8)
k (p)(d)
^ :k(r)(d) = true
(9)
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)
=a
pentru orice
true
f alse
truth
val1 ('; F )
= truth
val1 (p(a); F )
11
N. T
andareanu: Sinteza 2-2
k1 (p)(k1 (a))
truth
= k1(p)(a) = true
truth
val1 ( ; F )
iar
12
N. T
andareanu: Sinteza 2-2
BHB .
= (U HB ; kI ), unde:
2 SF , kI (f ) : U HBn ! U HB
denita prin
= f (t1; : : : ; tn)
denita 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 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:
evalI (x; F )
evalI (a; F )
evalI (t; F )
= f (a; b) pentru a; b 2 SC
= t pentru orice t 2 U HB
8
>> true
><
>>
>:
f alse
= kI (p)(t1; : : : ; tn)=
8
>> true
><
>>
>:
f alse
daca
altfel
= kI (p)(F (x)) =
p(F (x))
2I
14
N. T
andareanu: Sinteza 2-2
8
>> true daca p(F (x1); : : : ; F (xn)) 2 I
><
>>
>: f alse altfel
2 U HB avem p(c) 2 I
true
15
N. T
andareanu: Sinteza 2-2
_ A2 (y1; : : : ; yr )
A1 (x1 ; : : : ; xs )
_ A2 (y1; : : : ; yr )
A3 (z1 ; : : : ; zq )
unde
= true
2) Notam ' = 8x1 : : : 8xn :q(x1 ; : : : ; xn). Sunt echivalente urmatoarele armatii:
= true
16
N. T
andareanu: Sinteza 2-2
f j
f j
j g) = true pen-
j g) = f alse pen-
= true
f j
j g) = true pen-
f j
j g) =
f alse
pen-
= k(q)(eval(c1; H ); : : : ; eval(cn; H ))
17
N. T
andareanu: Sinteza 2-2
= true
f j
j g) = true
= true
f j
j g) = true
18
N. T
andareanu: Sinteza 2-2
true
_ A2 (y1; : : : ; yr )
A3 (z1 ; : : : ; zq )
se mai scrie
A1 (x1 ; : : : ; xs )
stabilirea deductiei P
j= '
19
N. T
andareanu: Sinteza 2-2
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
Demonstratie. Daca
j=
'
(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.
Denitia 3.7 Un model Herbrand I al unui program logic P este:
al lui
p(a)
logic.
este o multime
nu este un program
21
N. T
andareanu: Sinteza 2-2
Perechea '
k' (p)(1)
^ truth
^ truth
9:
val' ( x p(x); F )
9:
val' ( x p(x); F )
9:
= true
daca si numai daca exista c 2 D' astfel ^nc^at truth val' (p(x); F fxjcg) =
f alse.
= true
p(a)
2I
9:
U HB
= true
astfel ^nc^at
f j g) = f alse
22
N. T
andareanu: Sinteza 2-2
Deoarece U HB
f j g) = true
4 TEME
TEMA 1
1) Considerati programul P :
8
>
< p(x) _ q(g(x))
>
: r(a)
r (x)
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(a)
a)
r (x)
U HP
HBP
b)
25
N. T
andareanu: Sinteza 2-2
c)
TEMA 7
Consideram programul P :
8
>
< p(x) _ q(g(x))
>
: r(a)
r (x)
=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