Documente Academic
Documente Profesional
Documente Cultură
Sinteza2 1 PDF
Sinteza2 1 PDF
TINT
E
Sinteza 2-1:
Nicolae T
andareanu
Facultatea de Matematica-Informatica,
e-mail: ntand@oltenia.ro
1
2 N. T
andareanu
1 Obiective
Obiectivele acestui capitol sunt urmatoarele:
SC T ERM (B; SV )
SV T ERM (B; SV )
Fundamentele programelor logice 5
Deseori vom spune despre un element din T ERM (B; SV ) ca este un
termen peste B [ SV .
Analiz^and denitia 2.1 putem spune ca termenii peste o baza B si o
multime de variabile SV se obtin astfel:
f (x; y; x); g (f (a; b); a); f (x; z ); h(x; g (a)); f (c; g (x))
pentru motive cum sunt: nu se respecta aritatea unui simbol de functie asa
cum este ea precizata ^n denirea multimii SF , se utilizeaza simboluri de
variabile care nu sunt ^n multimea SV , se utilizeaza simboluri de functii
care nu sunt ^n SF sau se utilizeaza constante care nu apar ^n SC .
' ! = ((:') _ )
8 N. T
andareanu
^n timp ce
8xp(x; g(a)); p(x; b) ! (9yq(y)); :q(f (a; b)) _ :p(f (x; y); g(x))
sunt formule corecte ^n F ORM (B; SV ), iar urmatoarele expresii nu sunt
formule corecte:
9xf (x; y); p(8x; a); q(p(x; y))
deaorece cuanticatorul existential nu se aplica unui termen, expresia 8x
din primul argument al celei de a doua expresii nu este un termen, iar
la a treia expresie simbolul de predicat q se aplica unui atom si nu unui
termen.
9xq(x). Aceasta este o formula corecta deoarece p(x; g(y)) si 9xq(x)
sunt formule corecte. Facem precizarea ca ^n formula p(x; g(y)) ^ 9xq(x)
variabilele x si y din subformula p(x; g(y)) sunt variabile libere si mai
mult, acestea sunt singurele variabile libere care apar. Vom conveni ca
^n scrierea cuanticatorilor din formule sa utilizam parantezele pentru
a preciza subformula careia i se aplica cuanticatorul. Astfel, formula
9x(q(x) ^ p(x; y)) precizeaza ca se aplica cuanticatorul existential for-
mulei q(x) ^ p(x; y). ^In acelasi timp, scrierea de forma 9xq(x) ^ p(x; y)
va reprezenta notatia fara paranteze a formulei 9x(q(x)) ^ p(x; y).
Denitia 2.5 O formula care nu are variabile libere se numeste formula
ground.
si ^n aceasta notatie se sub^antelege ca toate variabilele care apar sunt
cuanticate universal. Vom considera ca ^n aceasta scriere A1; : : : ; Am
sunt atomi, iar B1; : : : ; Bn sunt literali.
^In general se utilizeaza urmatoarea terminologie:
Denitia 2.8 Un program logic este o multime nita de reguli si fapte.
De cele mai multe ori vom considera un program logic P fara sa
specicam explicit baza acestuia. Evident, exista mai multe baze B si
mai multe multimi SV astfel ^nc^at P F ORM (B; SV ). Cea mai mica
baza cu aceasta proprietate va considerata si numita baza programului
P . Completari cu privire la acest concept se gasesc ^n exercitiile de la
sf^arsitul acestui capitol.
pentru ecare p 2 SP ,
14 N. T
andareanu
Denitia data mai sus precizeaza explicit modul ^n care se evalueaza o
variabila si un termen. ^In mod implicit denitia arata cum se evalueaza
o constanta. ^Intr-adevar, daca a 2 SC atunci am convenit sa consideram
pe a ca simbol de functie de aritate zero. Aceasta ^nseamna ca aplic^and
denitia data avem:
eval (a; F ) = k(a)
x ! y = ((:x) _ y )
16 N. T
andareanu
_ true false
true true true
false true false
Tabelul 1: Operatia _
x ! y = (x ! y) ^ (y ! x)
truth val ( ; F )
Fundamentele programelor logice 17
:truth val(9x:'; F )
Pe de alta parte avem urmatorul lant de relatii echivalente:
:truth val(9x:'; F ) = true
truth val (9x:'; F ) = false
Sa consideram baza B = (fag; ff (1)g; fp(2) ; q(2) g), SV = fx; y; zg si o
structura = (D; k) peste baza B . Fie F o asignare oarecare de variabile.
Expresiile = p(x; y) _ q(f (z); x) si = q(f (z); x) _ p(x; y) sunt formule
peste B [ SV . Evalu^and valorile de adevar ale acestor formule obtinem:
truth val (; F ) =
truth val (; F )
Fundamentele programelor logice 19
Asadar formulele si sunt distincte din punct de vedere sintactic, dar
au aceleasi valori de adevar^n raport cu orice structura si orice asignare
de variabile.
4 Entitati Herbrand
Exista doua entitati Herbrand si ele joaca un rol deosebit de important ^n
programarea logica: univers Herbrand si baza Herbrand. Aceste entitati
sunt prezentate ^n cele ce urmeaza.
20 N. T
andareanu
x _ y = :(:x ^ :y )
x ! y = :x _ y
x ! y = (x ! y) ^ (y ! x)
Observam ca un limbaj de ordin zero nu are variabile si nici cuanticatori.
Lipsa cuanticatorilor se justica prin lipsa simbolurilor de predicate.
Valoarea de adevar a unei formule se obtine cu ajutorul unei functii v :
A ! ftrue; falseg, care se extinde la functia v : L ! ftrue; falseg,
unde L este limbajul tuturor formulelor corecte, astfel:
v (x ^ y ) = v (x) ^ v (y )
v (:x) = :v (x)
Astfel, daca luam v(p) = true, v(q) = false, v(r) = false atunci v(p^
q ) = v (p) ^ v (q )= true ^ false=false, v (:q ^:r ^ p) = v (:q ) ^ v (:r) ^ v (p)
=:v(q) ^:v(r):v(p)= :false ^:false ^ true= true ^ true ^ true= true.
Sa consideram acum un exemplu de limbaj de ordinul 1. Consideram
baza B = (SC ; SF ; SP ), unde SC = fag; SF = ff g; SP = fp; qg, f este
un simbol unar, p si q sunt simboluri binare. Universul Herbrand UHB
este multimea
fa; f (a); f (f (a)); : : :g
Notam f n(a) = f (f (f : : : (f (a)) : : :)), unde simbolul f apare de n ori.
Fundamentele programelor logice 23
F : fx; y; z g !N
24 N. T
andareanu
Observam ca:
truth val (p(x; f (y )); F fxjcg) =
Fundamentele programelor logice 25
Dar
truth val (:p(x; f (y )); F fxjcg) =
:truth val(p(x; f (y)); F fxjcg) =
:k(p)(eval(x; F fxjcg); eval(f (y); F fxjcg)) =
:k(p)(c; k(f )(F (y))) = :k(p)(c; k(f )(8)) =
:k(p)(c; 11)
26 N. T
andareanu
Asadar truth val(9x:p(x; f (y)); F ) = true daca si numai daca ex-
ista c 2 N astfel ^nc^at k(p)(c; 11) = false. Dar k(p)(c; 11) = false daca
si numai daca c nu divide pe 11. ^In concluzie,
daca si numai daca exista un numar natural c care nu divide pe 11, ceea
ce este adevarat.
6 TEME
Tema 1
Exercitiul nr. 1
Fie SC = fa; bg, SF = ff (1) ; g(2)g, SP = fp(2) g. Fie B = (SC ; SF ; SP ).
Vericati ca:
c) :p(f (a); g (a; a)) si 9xp(x; g (x; y )) sunt formule peste B
Exercitiul nr. 2
Fie B o baza. Aratati ca T GB este cea mai mica multime care satisface
proprietatile:
Fundamentele programelor logice 27
SC T GB
Exercitiul nr. 3
Consideram un program logic P si notam cu SV multimea variabilelor
cuanticate universal ^n P . Fie
B1 = (SC 1 ; SF 1 ; SP 1 ); B2 = (SC 2 ; SF 2 ; SP 2 )
= (SC 1 \ SC 2 ; SF 1 \ SF 2 ; SP 1 \ SP 2) satisface
Demonstrati ca B
proprietatea P F ORM (B; SV ), deci B este o baza a lui P .
Demonstrati ca exista cea mai mica baza B ^n raport cu v astfel
^nc^at sa avem relatia P F ORM (B; SV ).
28 N. T
andareanu
Tema 2
Exercitiul nr. 4
Se consideram urmatorul program logic P :
8
>> p(a)
><
>> p(b)
>:
q (f (x)) p(x)
a) A
ati tipul lui P ^n clasicarea programelor logice
Exercitiul nr. 5
Dati exemple de doua programe logice diferite care sa aiba aceeasi baza
(^n consecinta acelasi univers Herbrand si aceeasi baza Herbrand).
Exercitiul nr. 6
Consideram urmatorul program logic P :
8
>> zbor(x; y) zbor direct(x; y)
>>
>< zbor(x; y) zbor direct(x; z); zbor(z; y)
>> zbor direct(a; b)
>>
>: zbor direct(b; c)
a) Calculati baza B a programului P
Fundamentele programelor logice 29
Exercitiul nr. 7
Demonstrati urmatoarele relatii:
Tema 3
Exercitiul nr. 8
Fie SC = fag, SF = ff (1) g, SP = fp(2) ; q(2) g. Consideram structura
30 N. T
andareanu
= (N; k), unde N este multimea numerelor naturale, iar k este denit
astfel:
k(f ) : N! N , k(f )(n) = n + 3;
k(p) : N ! ftrue; falseg, unde
8
>> true daca n < 2m
><
k(p)(n; m) = >
>>
: false altfel
k(a) = 2
Consideram SV = fx; y; zg si asignarea F (x)
= 2; F (y) = 5; F (z) =
6. Calculati truth val pentru F denit mai sus si formulele p(a; a),
9xp(x; f (y)), 9xp(x; f (z)), 9xp(x; f (x)), 8xq(x; y), 9xq(f (a); x).
Exercitiul nr. 9
Aratati ca urmatoarele formule sunt logic echivalente:
Tema 4
Exercitiul nr. 10
Consideram p(1) 2 SP . Aratati ca:
1) 8xp(x) 8yp(y)
2) 8xp(y) p(y)
3) :8xp(x) 9x:p(x)
4) :9xp(x) 8x:p(x)
5) p(x) ::p(x)
Exercitiul nr. 11
Pentru orice ; 2 F ORM (B; SV ) aratati ca
1) :( _ ) : ^ :
2) :( ^ ) : _ :
3) ::
Exercitiul nr. 12
Pentru ecare din formulele de mai jos gasiti o clauza logic echivalenta: