Sunteți pe pagina 1din 50

Curs 4

2015-2016

Programare Logica
1 / 33

Amintiri - Termeni (expresii)


Fie (S, ) o signatura multisortata si X o multime de variabile.

Definitie
Multimea S-sortata a termenilor cu variabile din X ,
T (X ),
este cea mai mica multime de siruri finite peste alfabetul
S
S
L = sS Xs w ,s w ,s {(, )} {, }
care verifica:
1

X T (X ),

Daca : s n , atunci T (X )s ,

Daca : s1 . . . sn s n si ti T (X )si , or. 1 i n, atunci


(t1 , . . . , tn ) T (X )s .
t T (X ) se numeste termen (expresie).
T = T ()
2 / 33

Amintiri - Inductia pe termeni

Fie (S, ) o signatura multisortata si X o multime de variabile.


Fie P o proprietate astfel ncat:
pasul initial:
P(x) = true, or. x X ,
P() = true, or. : s.
pasul de inductie:
pt. or. : s1 . . . sn s si or. t1 T (X )s1 , . . . , tn T (X )sn ,
daca P(t1 ) = . . . = P(tn ) = true, atunci P((t1 , . . . , tn )) = true.
Atunci P(t) = true, oricare t T (X ).

3 / 33

Amintiri - Algebra termenilor


Fie (S, ) o signatura multisortata si X o multime de variabile.

Definitie
Multimea S-sortata a termenilor T (X ) este o (S, )-algebra, numita
algebra termenilor cu variabile din X si notata tot T (X ), cu operatiile
definite astfel:
pt. or. : s din , operatia corespunzatoare este
T := T (X )s
pt. or. : s1 . . . sn s din , operatia corespunzatoare este
T : T (X )s1 ...sn T (X )s
T (t1 , . . . , tn ) := (t1 , . . . , tn )
or. t1 T (X )s1 , . . . , tn T (X )sn .
T algebra termenilor fara variabile (X = )

4 / 33

Amintiri - Algebra initiala

Definitie
I este (S, )-algebra initiala daca pentru orice (S, )-algebra B exista un
unic morfism f : I B.

Corolar
T este (S, )-algebra initiala.

5 / 33

Cuprins

1 Algebre libere

2 Congruente

6 / 33

Algebre libere

7 / 33

Algebra libera
Fie (S, ) o signatura multisortata si X o multime de variabile.

Definitie
O (S, )-algebra A = (AS , A ) este liber generata de X daca

8 / 33

Algebra libera
Fie (S, ) o signatura multisortata si X o multime de variabile.

Definitie
O (S, )-algebra A = (AS , A ) este liber generata de X daca
X AS , i.e. exista functia S-sortata incluziune a lui X n AS
iA : X , AS ,

8 / 33

Algebra libera
Fie (S, ) o signatura multisortata si X o multime de variabile.

Definitie
O (S, )-algebra A = (AS , A ) este liber generata de X daca
X AS , i.e. exista functia S-sortata incluziune a lui X n AS
iA : X , AS ,
pentru orice (S, )-algebra B = (BS , B ) si orice functie S-sortata
f : X BS , exista un unic (S, )-morfism f : A B astfel ncat
iA ; f = f .

8 / 33

Proprietati

Teorema
Daca A si B sunt liber generate de X , atunci A ' B.

9 / 33

Proprietati

Teorema
Daca A si B sunt liber generate de X , atunci A ' B.

Demonstratie
Fie A = (AS , A ) si B = (BS , B ) doua (S, )-algebre liber
generate de X .
Notam cu iA : X , AS si iB : X , BS functiile S-sortate incluziune
ale lui X n AS si, respectiv, BS .
Demonstratia are patru pasi:

9 / 33

Demonstratie (cont.)
1

Deoarece A este liber generata de X , exista un unic (S, )-morfism


f : A B astfel ncat iA ; f = iB .

Similar, deoarece B este liber generata de X , exista un unic


(S, )-morfism g : B A astfel ncat iB ; g = iA .

Avem iA ; (f ; g ) = (iA ; f ); g = iB ; g = iA si iA ; 1A = iA . Cum A este


liber generata de X , morfismele f ; g si 1A sunt unice cu proprietatea
de mai sus, deci f ; g = 1A .

Avem iB ; (g ; f ) = (iB ; g ); f = iA ; f = iB s i iB ; 1B = iB . Cum B este


liber generata de X , obtinem ca g ; f = 1B .

Din egalitatile obtinute la 3 si 4, deducem ca f si g sunt izomorfisme.




10 / 33

Evaluarea termenilor n algebre


Fie (S, ) o signatura multisortata si X o multime de variabile.

Teorema
Fie B = (BS , B ) o (S, )-algebra. Orice functie S-sortata
e : X BS
se extinde unic la un (S, )-morfism
e : T (X ) B.
e da interpretarea, evaluarea variabilelor n multimi S-sortate.
e da interpretarea, evaluarea termenilor n algebre.

11 / 33

Demonstratie.
Fie B o (S, )-algebra si e : X BS o functie S-sortata.
Demonstram ca exista un unic morfism e : T (X ) B astfel ncat
es (x) = es (x), or. x Xs .
Existenta. Definim e : T (X ) B prin inductie pe termeni:
(P(t) =
e (t) este definit).
pasul initial:
dac
a x Xs , atunci es (x) := es (x),
dac
a : s , atunci es () := B .

pasul de inductie: daca : s1 . . . sn s si


t1 T (X )s1 , . . . , tn T (X )sn astfel ncat es1 (t1 ), . . . , esn (tn )
definite, atunci es ((t1 , . . . , tn )) := B (
es1 (t1 ), . . . , esn (tn )).
Conform principiului inductiei pe termeni, e(t) este definit pentru orice
t T (X ). Evident, es (x) = es (x), or. x Xs .
Mai trebuie aratat ca e este morfism - exercitiu!
12 / 33

Demonstratie. (cont.)
Unicitatea. Fie g : T (X ) B un morfism astfel ncat gs (x) = es (x),
or. x Xs . Demonstram ca g = e prin inductie pe termeni:
(P(t) = gs (t) = es (t)).
pasul initial:
dac
a x Xs , atunci gs (x) = es (x) = es (x),
dac
a : s , atunci gs () = B = es ().

pasul de inductie: daca : s1 . . . sn s si


t1 T (X )s1 , . . . , tn T (X )sn astfel ncat
gs1 (t1 ) = es1 (t1 ), . . . , gsn (tn ) = esn (tn ), atunci
gs ((t1 , . . . , tn )) = B (gs1 (t1 ), . . . , gsn (tn )) =
B (
es1 (t1 ), . . . , esn (tn )) = es ((t1 , . . . , tn )).
Conform principiului inductiei pe termeni, gs (t) = es (t), oricare
t T (X )s , deci g = e.


13 / 33

Consecinta

Corolar
T (X ) este (S, )-algebra liber generata de X .

14 / 33

Consecinta

Corolar
T (X ) este (S, )-algebra liber generata de X .

O expresie este un element dintr-o algebra libera.


Pentru a evalua un termen t cu variabile din X ntr-o (S, )-algebra
B = (BS , B ), este suficient sa evaluam variabilele din X n BS , i.e.
sa definim o functie e : X BS .

14 / 33

Exemple
Exemplu
NATEXP = (S = {nat}, )
= {0 : nat, s : nat nat, + : nat nat nat, ? : nat nat nat}

X : Xnat = {x, y }

15 / 33

Exemple
Exemplu
NATEXP = (S = {nat}, )
= {0 : nat, s : nat nat, + : nat nat nat, ? : nat nat nat}

X : Xnat = {x, y }
TNATEXP (X ): TNATEXP (X )nat = {0, x, y , s(0), s(x), s(y ), s(s(0)), . . . ,
+(0, 0), +(0, x), +(x, y ), ?(0, +(s(0), 0)), . . .}

15 / 33

Exemple
Exemplu
NATEXP = (S = {nat}, )
= {0 : nat, s : nat nat, + : nat nat nat, ? : nat nat nat}

X : Xnat = {x, y }
TNATEXP (X ): TNATEXP (X )nat = {0, x, y , s(0), s(x), s(y ), s(s(0)), . . . ,
+(0, 0), +(0, x), +(x, y ), ?(0, +(s(0), 0)), . . .}

NATEXP-algebra A: multimea suport Anat = Z4 si operatiile obisnuite.

15 / 33

Exemple
Exemplu
NATEXP = (S = {nat}, )
= {0 : nat, s : nat nat, + : nat nat nat, ? : nat nat nat}

X : Xnat = {x, y }
TNATEXP (X ): TNATEXP (X )nat = {0, x, y , s(0), s(x), s(y ), s(s(0)), . . . ,
+(0, 0), +(0, x), +(x, y ), ?(0, +(s(0), 0)), . . .}

NATEXP-algebra A: multimea suport Anat = Z4 si operatiile obisnuite.


O interpretare a termenilor din TNATEXP (X ) n A

15 / 33

Exemple
Exemplu
NATEXP = (S = {nat}, )
= {0 : nat, s : nat nat, + : nat nat nat, ? : nat nat nat}

X : Xnat = {x, y }
TNATEXP (X ): TNATEXP (X )nat = {0, x, y , s(0), s(x), s(y ), s(s(0)), . . . ,
+(0, 0), +(0, x), +(x, y ), ?(0, +(s(0), 0)), . . .}

NATEXP-algebra A: multimea suport Anat = Z4 si operatiile obisnuite.


O interpretare a termenilor din TNATEXP (X ) n A
definim e : X Anat , e(x) := 1, e(y ) := 3

15 / 33

Exemple
Exemplu
NATEXP = (S = {nat}, )
= {0 : nat, s : nat nat, + : nat nat nat, ? : nat nat nat}

X : Xnat = {x, y }
TNATEXP (X ): TNATEXP (X )nat = {0, x, y , s(0), s(x), s(y ), s(s(0)), . . . ,
+(0, 0), +(0, x), +(x, y ), ?(0, +(s(0), 0)), . . .}

NATEXP-algebra A: multimea suport Anat = Z4 si operatiile obisnuite.


O interpretare a termenilor din TNATEXP (X ) n A
definim e : X Anat , e(x) := 1, e(y ) := 3
Exemple de interpretari ale termenilor:
e(+(x, y )) = A+ (e(x), e(y )) = 1 + 3 = 0(mod 4)

15 / 33

Exemple
Exemplu
NATEXP = (S = {nat}, )
= {0 : nat, s : nat nat, + : nat nat nat, ? : nat nat nat}

X : Xnat = {x, y }
TNATEXP (X ): TNATEXP (X )nat = {0, x, y , s(0), s(x), s(y ), s(s(0)), . . . ,
+(0, 0), +(0, x), +(x, y ), ?(0, +(s(0), 0)), . . .}

NATEXP-algebra A: multimea suport Anat = Z4 si operatiile obisnuite.


O interpretare a termenilor din TNATEXP (X ) n A
definim e : X Anat , e(x) := 1, e(y ) := 3
Exemple de interpretari ale termenilor:
e(+(x, y )) = A+ (e(x), e(y )) = 1 + 3 = 0(mod 4)
e(?(s(x), s(s(0)))) = A? (As (e(x)), As (As (A0 ))) =
(1 + 1) ? (0 + 1 + 1) = 2 ? 2 = 0(mod 4)
15 / 33

Exemple
Exemplu
STIVA = (S = {elem, stiva}, )
= {0 : elem, empty : stiva, push : elem stiva stiva,
pop : stiva stiva, top : stiva elem}
STIVA-algebra A:
Multimea suport: Aelem := N, Astiva := N
Operatii: A0 := 0, Aempty := , Apush (n, n1 . . . nk ) := nn1 . . . nk ,
Apop () := , Apop (n) := , Apop (n1 n2 . . . nk ) := n2 . . . nk , pt k 2
Atop () := 0, Atop (n1 . . . nk ) := n1 , pt. k 1
STIVA-algebra B:
Multimea suport: Belem := {0}, Bstiva := N
Operatii: B0 := 0, Bempty := 0, Bpush (0, n) := n + 1,
Bpop (0) := 0, Bpop (n) := n 1, pt. n 1, Btop (n) := 0

16 / 33

Exemple

Exemplu (Cont.)
X : Xelem = {x, y }, Xstiva = {s}
Fie t := push(x, push(y , s)) TSTIVA (X )stiva .
O interpretare a lui t n A:
e : X A, e(x) := 5, e(y ) := 3, e(s) := 6 7
e(t) = Apush (e(x), Apush (e(y ), e(s))) = 5 3 6 7
O interpretare a lui t n B:
e : X B, e(x) := 0, e(y ) := 0, e(s) := 10
e(t) = Bpush (e(x), Bpush (e(y ), e(s))) = (10 + 1) + 1 = 12

17 / 33

Proprietati

Propozitie
Fie h : A B un (S, )-morfism surjectiv si X o multime de variabile.
Pentru orice (S, )-morfism f : T (X ) B, exista un (S, )-morfism
g : T (X ) A astfel ncat g ; h = f .
h
A
B
g

f
T (X )

18 / 33

Demonstratie.
Fie f : T (X ) B un morfism.
Cum h este surjectiv, pt. or. x Xs , exista a As astfel ncat
hs (a) = fs (x).
Pentru orice s S si x Xs , alegem a As astfel ncat
hs (a) = fs (x) si definim es (x) := a.
Deci e : X A.
Consideram e : T (X ) A extensia unica a lui e : X A.
Cum T (X ) este algebra libera si (
e ; h)s (x) = fs (x), or. x Xs ,
obtinem ca e; h = f .
Luam g := e.

19 / 33

Proprietati
Notatie. Daca f : A B este un (S, )-morfism si X AS , atunci
f X este restrictia lui f la X , i.e. (f X )s (x) = fs (x), or. x Xs .

20 / 33

Proprietati
Notatie. Daca f : A B este un (S, )-morfism si X AS , atunci
f X este restrictia lui f la X , i.e. (f X )s (x) = fs (x), or. x Xs .

Propozitie
Fie B o (S, )-algebra si X o multime de variabile. Daca f : T (X ) B
si g : T (X ) B sunt morfisme, atunci
g = f g X = f X .

Demonstratie.
Exercitiu! Se demonstreaza ca g = f prin inductie pe termeni:
(P(t) = gs (t) = fs (t)).

20 / 33

Proprietati

Propozitie
Daca X ' Y , atunci T (X ) ' T (Y ).

Demonstratie.
Exercitiu! A se vedea demonstratia pentru:
doua algebre liber generate de X sunt izomorfe.

21 / 33

Concluzii

Fie (S, ) o signatura multisortata si X multime de variabile.


T este (S, )-algebra initiala.
T (X ) este (S, )-algebra liber generata de X .
T este liber generata de .

22 / 33

Congruente

23 / 33

Congruente

Fie (S, ) o signatura multisortata si A = (AS , A ) o (S, )-algebra.

Definitie
O relatie S-sortata = {s }sS AS AS este o congruenta daca:
s As As este echivalenta, or. s S:
reflexiv
a
simetric
a
tranzitiv
a

este compatibila cu operatiile:


pt. or. : s1 . . . sn s si or. ai , bi Asi , i = 1, . . . , n
ai si bi , or. i = 1, . . . , n A (a1 , . . . , an ) s A (b1 , . . . , bn )

24 / 33

Exemplu

Exemplu
NAT = (S, )
S = {nat}
= {0 : nat, succ : nat nat}
NAT -algebra A
Multimea suport: Anat := N
Operatii: A0 := 0, Asucc (x) := x + 1
n1 nat n2 2|(n1 n2 ) este congruenta (congruenta modulo 2):
nat este echivalenta
daca n1 nat n2 , atunci Asucc (n1 ) nat Asucc (n2 )

25 / 33

Algebra cat
Fie A o (S, )-algebra si o congruenta pe A.
Definim:
[a]s := {a0 As | a s a0 } (clasa de echivalenta a lui a)

26 / 33

Algebra cat
Fie A o (S, )-algebra si o congruenta pe A.
Definim:
[a]s := {a0 As | a s a0 } (clasa de echivalenta a lui a)
As /s := {[a]s | a As }, or. s S

26 / 33

Algebra cat
Fie A o (S, )-algebra si o congruenta pe A.
Definim:
[a]s := {a0 As | a s a0 } (clasa de echivalenta a lui a)
As /s := {[a]s | a As }, or. s S
A/ := {As /s } devine (S, )-algebra, notata A/ , cu operatiile:

26 / 33

Algebra cat
Fie A o (S, )-algebra si o congruenta pe A.
Definim:
[a]s := {a0 As | a s a0 } (clasa de echivalenta a lui a)
As /s := {[a]s | a As }, or. s S
A/ := {As /s } devine (S, )-algebra, notata A/ , cu operatiile:
(A/ ) := [A ]s , or. : s,

26 / 33

Algebra cat
Fie A o (S, )-algebra si o congruenta pe A.
Definim:
[a]s := {a0 As | a s a0 } (clasa de echivalenta a lui a)
As /s := {[a]s | a As }, or. s S
A/ := {As /s } devine (S, )-algebra, notata A/ , cu operatiile:
(A/ ) := [A ]s , or. : s,
(A/ ) ([a1 ]s1 , . . . , [an ]sn ) := [A (a1 , . . . , an )]s , or.
: s1 . . . sn s si a1 As1 , . . . , an Asn .

26 / 33

Algebra cat
Fie A o (S, )-algebra si o congruenta pe A.
Definim:
[a]s := {a0 As | a s a0 } (clasa de echivalenta a lui a)
As /s := {[a]s | a As }, or. s S
A/ := {As /s } devine (S, )-algebra, notata A/ , cu operatiile:
(A/ ) := [A ]s , or. : s,
(A/ ) ([a1 ]s1 , . . . , [an ]sn ) := [A (a1 , . . . , an )]s , or.
: s1 . . . sn s si a1 As1 , . . . , an Asn .

A/ se numeste algebra cat a lui A prin congruenta .

26 / 33

Algebra cat
Fie A o (S, )-algebra si o congruenta pe A.
Definim:
[a]s := {a0 As | a s a0 } (clasa de echivalenta a lui a)
As /s := {[a]s | a As }, or. s S
A/ := {As /s } devine (S, )-algebra, notata A/ , cu operatiile:
(A/ ) := [A ]s , or. : s,
(A/ ) ([a1 ]s1 , . . . , [an ]sn ) := [A (a1 , . . . , an )]s , or.
: s1 . . . sn s si a1 As1 , . . . , an Asn .

A/ se numeste algebra cat a lui A prin congruenta .


[] : A A/ , a 7 [a]s , or. a As , este morfism surjectiv.
[a]s = [b]s a s b (a, b) s

26 / 33

Exemple
Exemplu
STIVA: S = {elem, stiva}, = {0 : elem, empty : stiva,
push : elem stiva stiva, pop : stiva stiva, top : stiva elem}

STIVA-algebra A:
Aelem := N, Astiva := N
Operatii: A0 := 0, Aempty := , Apush (n, n1 . . . nk ) := nn1 . . . nk ,
Apop () := , Apop (n) := , Apop (n1 n2 . . . nk ) := n2 . . . nk , pt k 2
Atop () := 0, Atop (n1 . . . nk ) := n1 , pt. k 1

= {elem , stiva } congruenta pe A:


elem := N N
stiva := {(w , w 0 ) | w , w 0 N , |w | = |w 0 |}
A/ ' B, unde STIVA-algebra B:
Belem := {0}, Bstiva := N
Operatii: B0 := 0, Bempty := 0, Bpush (0, n) := n + 1,
Bpop (0) := 0, Bpop (n) := n 1, pt. n 1, Btop (n) := 0
27 / 33

Nucleul unui morfism


Fie f : A B un morfism de (S, )-algebre.
Nucleul lui f este Ker (f ) = {Ker (fs )}sS , unde
Ker (fs ) := {(a, a0 ) As As | fs (a) = fs (a0 )}, or. s S.

Propozitie
1

Ker (f ) este o congruenta pe A.

Daca este o congruenta pe A, atunci Ker ([] ) =.

Demonstratie.
Exercitiu!

28 / 33

Proprietatea de universalitate

Teorema (Proprietatea de universalitate a algebrei cat)


Fie A o (S, )-algebra si o congruenta pe A.
Pentru orice (S, )-algebra B si pentru orice morfism h : A B a..
Ker (h), exista un unic morfism h : A/ B a.. [] ; h = h.
A
h

[]

A/

h
B

29 / 33

Demonstratie
Fie B o (S, )-algebra si h : A B un morfism a.. Ker (h).
Existenta: Definim hs ([a]s ) := hs (a), pentru orice a As .
h este bine definit: Tb. s
a ar
at
am [a1 ]s = [a2 ]s hs (a1 ) = hs (a2 ).
Presupunem c
a [a1 ]s = [a2 ]s . Atunci (a1 , a2 ) s Ker (h), deci
hs (a1 ) = hs (a2 ).
h este morfism:
dac
a : s , atunci hs ((A/ ) ) = hs ([A ]s ) = hs (A ) = B .
dac
a : s1 . . . sn s si a1 As1 , . . . , an Asn , atunci
hs ((A/ ) ([a1 ]s1 , . . . , [an ]sn ))

hs ([A (a1 , . . . , an )]s )

hs (A (a1 , . . . , an ))

B (hs1 (a1 ), . . . , hsn (an ))

B (hs1 ([a1 ]s1 ), . . . , hsn ([an ]sn )).

Unicitatea: Fie g : A/ B a.. [] ; g = h. Atunci


gs ([a]s ) = hs (a) = hs ([a]s ), or. a As .


30 / 33

Consecinte

Propozitie (?)
Fie K o clasa de (S, )-algebre. Daca
T
K := {Ker (h) | h : T B K morfism},
atunci urmatoarele proprietati sunt adevarate:
1

K este congruenta pe T ,

pt. or. B K, exista un unic morfism h : T /K B.

31 / 33

Demonstratie
1

Rezulta din faptul ca intersectia unei familii arbitrare de congruente


este congruenta (exercitiu!).

Fie B K si h : T B unicul morfism.


Existenta: Deoarece K Ker (h), din Proprietatea de universalitate
a algebrei c
at exist
a un unic morfism h : T /K B astfel nc
at
[]K ; h = h.
Unicitatea: Fie g : T /K B un morfism. Atunci
[]K ; g : T B morfism. Deci []K ; g = h. Morfismul g verific
a
proprietatea care l defineste n mod unic pe h, deci g = h.

32 / 33

Pe saptamana viitoare!

33 / 33

S-ar putea să vă placă și