Sunteți pe pagina 1din 66

Curs 9

2015-2016

Programare Logica
1 / 29

Cuprins

1 Sisteme de rescriere abstracte

2 / 29

Amintiri

(S, ) signatura si R sistem de rescriere


pentru t, t 0 T (X )s definim relatia t R t 0 astfel:
t R t 0

t este c[z s (l)] si


t 0 este c[z s (r )], unde
c T (X {z}) context,
l s r R cu Var (l) = Y ,
: Y T (X ) substitutie

R este relatia de rescriere generata de sistemul de rescriere R.

3 / 29

Amintiri

(S, ) signatura, X multime de variabile si t, t 0 T (X )s


E multime de ecuatii
RE sistemul de rescriere determinat de E
E relatia de rescriere generata de RE

E echivalenta generata de E

Teorema

E ` (X )t =s t 0

t E t 0

4 / 29

Sisteme de rescriere abstracte

5 / 29

Sisteme de rescriere abstracte

Definitie
Un sistem de rescriere abstract este o pereche (T , ) unde:
T este o multime,
T T ( este o relatie binara pe T ).

6 / 29

Sisteme de rescriere abstracte

Definitie
Un sistem de rescriere abstract este o pereche (T , ) unde:
T este o multime,
T T ( este o relatie binara pe T ).
Definitii:
:=1 (relatia inversa)
:= (nchiderea simetrica)

:= () (nchiderea reflexiva si tranzitiva)

:= () (echivalenta generata)

6 / 29

Rescrierea termenilor

(S, ) signatura si Y multime de variabile.


regula de rescriere

l s r

l, r termeni din T (Y )

sistem de rescriere (TRS)

mai multe l s r

relatia de rescriere

generata de R

echivalenta

generata de R

(T (Y ), R) este un sistem de rescriere abstract.

7 / 29

Sisteme de rescriere abstracte

Exemplu
T := N \ {0, 1}
:= {(m, k) | k < m, k|m}

8 / 29

Sisteme de rescriere abstracte

Exemplu
T := N \ {0, 1}
:= {(m, k) | k < m, k|m}
= {(k, m) | k < m, k|m}

8 / 29

Sisteme de rescriere abstracte

Exemplu
T := N \ {0, 1}
:= {(m, k) | k < m, k|m}
= {(k, m) | k < m, k|m}
= {(k1 , k2 ) | k1 6= k2 , k1 |k2 sau k2 |k1 }

8 / 29

Sisteme de rescriere abstracte

Exemplu
T := N \ {0, 1}
:= {(m, k) | k < m, k|m}
= {(k, m) | k < m, k|m}
= {(k1 , k2 ) | k1 6= k2 , k1 |k2 sau k2 |k1 }
+

= {(m, k) | ex. n 0, ex. k1 , . . . , kn T a.i. m k1 . . .


kn k} =

8 / 29

Sisteme de rescriere abstracte

Exemplu
T := N \ {0, 1}
:= {(m, k) | k < m, k|m}
= {(k, m) | k < m, k|m}
= {(k1 , k2 ) | k1 6= k2 , k1 |k2 sau k2 |k1 }
+

= {(m, k) | ex. n 0, ex. k1 , . . . , kn T a.i. m k1 . . .


kn k} =

= {(k, k) | k T }

8 / 29

Sisteme de rescriere abstracte


(T , ) sistem de rescriere.

9 / 29

Sisteme de rescriere abstracte


(T , ) sistem de rescriere.

Definitie
t T este reductibil daca exista t 0 T a.. t t 0 .

9 / 29

Sisteme de rescriere abstracte


(T , ) sistem de rescriere.

Definitie
t T este reductibil daca exista t 0 T a.. t t 0 .
O reducere este un sir t0 t1 t2 . . .

9 / 29

Sisteme de rescriere abstracte


(T , ) sistem de rescriere.

Definitie
t T este reductibil daca exista t 0 T a.. t t 0 .
O reducere este un sir t0 t1 t2 . . .
t T este n forma normala (ireductibil) daca nu este reductibil.

9 / 29

Sisteme de rescriere abstracte


(T , ) sistem de rescriere.

Definitie
t T este reductibil daca exista t 0 T a.. t t 0 .
O reducere este un sir t0 t1 t2 . . .
t T este n forma normala (ireductibil) daca nu este reductibil.
t0 este o forma normala a lui t daca

t t0 si
t0 este n form
a normal
a.

9 / 29

Sisteme de rescriere abstracte


(T , ) sistem de rescriere.

Definitie
t T este reductibil daca exista t 0 T a.. t t 0 .
O reducere este un sir t0 t1 t2 . . .
t T este n forma normala (ireductibil) daca nu este reductibil.
t0 este o forma normala a lui t daca

t t0 si
t0 este n form
a normal
a.

t1 si t2 se intalnesc daca exista t T a.. t1 t t2 .


notatie: t1 t2 .

9 / 29

Sisteme de rescriere abstracte

Exemplu
T := N \ {0, 1}
:= {(m, k) | k < m, k|m}

10 / 29

Sisteme de rescriere abstracte

Exemplu
T := N \ {0, 1}
:= {(m, k) | k < m, k|m}
k este n forma normala daca este numar prim.

10 / 29

Sisteme de rescriere abstracte

Exemplu
T := N \ {0, 1}
:= {(m, k) | k < m, k|m}
k este n forma normala daca este numar prim.
k1 k2 daca nu sunt prime ntre ele.

10 / 29

Sisteme de rescriere abstracte

Exemplu
T := N \ {0, 1}
:= {(m, k) | k < m, k|m}
k este n forma normala daca este numar prim.
k1 k2 daca nu sunt prime ntre ele.
k este o forma normala a lui m daca k este un factor prim al lui m.

10 / 29

Sisteme de rescriere abstracte

Exemplu
T := {a, b}
:= {(ubav , uabv ) | u, v T }

11 / 29

Sisteme de rescriere abstracte

Exemplu
T := {a, b}
:= {(ubav , uabv ) | u, v T }
w este n forma normala daca w = an b k , cu n, k 0.

11 / 29

Sisteme de rescriere abstracte

Exemplu
T := {a, b}
:= {(ubav , uabv ) | u, v T }
w este n forma normala daca w = an b k , cu n, k 0.
w1 w2 daca
nra (w1 ) = nra (w2 ) si
nrb (w1 ) = nrb (w2 ).

11 / 29

Sisteme de rescriere abstracte


(T , ) sistem de rescriere.

Definitie
(T , ) se numeste

12 / 29

Sisteme de rescriere abstracte


(T , ) sistem de rescriere.

Definitie
(T , ) se numeste
noetherian (se termina): daca nu exista reduceri infinite
t0 t1 t2 . . ..
orice rescriere se termin
a.

12 / 29

Sisteme de rescriere abstracte


(T , ) sistem de rescriere.

Definitie
(T , ) se numeste
noetherian (se termina): daca nu exista reduceri infinite
t0 t1 t2 . . ..
orice rescriere se termin
a.

confluent: t1 t t2 t1 t2 .

12 / 29

Sisteme de rescriere abstracte


(T , ) sistem de rescriere.

Definitie
(T , ) se numeste
noetherian (se termina): daca nu exista reduceri infinite
t0 t1 t2 . . ..
orice rescriere se termin
a.

confluent: t1 t t2 t1 t2 .
local confluent: t1 t t2 t1 t2 .

12 / 29

Sisteme de rescriere abstracte


(T , ) sistem de rescriere.

Definitie
(T , ) se numeste
noetherian (se termina): daca nu exista reduceri infinite
t0 t1 t2 . . ..
orice rescriere se termin
a.

confluent: t1 t t2 t1 t2 .
local confluent: t1 t t2 t1 t2 .

Church-Rosser: t1 t2 t1 t2 .

12 / 29

Sisteme de rescriere abstracte


(T , ) sistem de rescriere.

Definitie
(T , ) se numeste
noetherian (se termina): daca nu exista reduceri infinite
t0 t1 t2 . . ..
orice rescriere se termin
a.

confluent: t1 t t2 t1 t2 .
local confluent: t1 t t2 t1 t2 .

Church-Rosser: t1 t2 t1 t2 .
Normalizat: orice element are o forma normala.

12 / 29

Sisteme de rescriere abstracte


(T , ) sistem de rescriere.

Definitie
(T , ) se numeste
noetherian (se termina): daca nu exista reduceri infinite
t0 t1 t2 . . ..
orice rescriere se termin
a.

confluent: t1 t t2 t1 t2 .
local confluent: t1 t t2 t1 t2 .

Church-Rosser: t1 t2 t1 t2 .
Normalizat: orice element are o forma normala.
Complet (convergent, canonic): confluent si noetherian.

12 / 29

Sisteme de rescriere abstracte

Confluent:

Local confluent:
t

t1

t2
t 00

t1

t2

t 00

13 / 29

Sisteme de rescriere abstracte


Exemplu
T := N \ {0, 1}
:= {(m, k) | k < m, k|m}

14 / 29

Sisteme de rescriere abstracte


Exemplu
T := N \ {0, 1}
:= {(m, k) | k < m, k|m}
(T , ) este noetherian:
orice m se rescrie ntr-un factor prim al s
au.

14 / 29

Sisteme de rescriere abstracte


Exemplu
T := N \ {0, 1}
:= {(m, k) | k < m, k|m}
(T , ) este noetherian:
orice m se rescrie ntr-un factor prim al s
au.

(T , ) nu este confluent:
12
6
3

4
2

14 / 29

Proprietati

(goto 25)

Propozitie (1)

Fie (T , ) sistem de rescriere. Daca t t 0 , atunci t t 0 .

15 / 29

Proprietati

(goto 25)

Propozitie (1)

Fie (T , ) sistem de rescriere. Daca t t 0 , atunci t t 0 .

Demonstratie

Daca t t 0 , atunci exista t0 a.. t t0 t 0 , i.e. t t 0 .




15 / 29

Proprietati
Propozitie (2)
Fie (T , ) sistem de rescriere.
noetherian

orice element are o forma normala

16 / 29

Proprietati
Propozitie (2)
Fie (T , ) sistem de rescriere.
noetherian

orice element are o forma normala

Exemplu
S = {Nat} si = {0 : Nat, s : Nat Nat, + : NatNat Nat}
E = {x + 0 = x, x + s y = s(x + y ), 0 + y = y + 0}
RE = {x + 0 x, x + s y s(x + y ), 0 + y y + 0}

16 / 29

Proprietati
Propozitie (2)
Fie (T , ) sistem de rescriere.
noetherian

orice element are o forma normala

Exemplu
S = {Nat} si = {0 : Nat, s : Nat Nat, + : NatNat Nat}
E = {x + 0 = x, x + s y = s(x + y ), 0 + y = y + 0}
RE = {x + 0 x, x + s y s(x + y ), 0 + y y + 0}
orice termen are o forma normala, de forma s(s(. . . (0) . . .))

16 / 29

Proprietati
Propozitie (2)
Fie (T , ) sistem de rescriere.
noetherian

orice element are o forma normala

Exemplu
S = {Nat} si = {0 : Nat, s : Nat Nat, + : NatNat Nat}
E = {x + 0 = x, x + s y = s(x + y ), 0 + y = y + 0}
RE = {x + 0 x, x + s y s(x + y ), 0 + y y + 0}
orice termen are o forma normala, de forma s(s(. . . (0) . . .))
RE nu este noetherian: 0 + 0 E 0 + 0 E . . .

16 / 29

Proprietati
Propozitie (2)
Fie (T , ) sistem de rescriere.
noetherian

orice element are o forma normala

Exemplu
S = {Nat} si = {0 : Nat, s : Nat Nat, + : NatNat Nat}
E = {x + 0 = x, x + s y = s(x + y ), 0 + y = y + 0}
RE = {x + 0 x, x + s y s(x + y ), 0 + y y + 0}
orice termen are o forma normala, de forma s(s(. . . (0) . . .))
RE nu este noetherian: 0 + 0 E 0 + 0 E . . .
eliminand ultima regula de rescriere, obtinem un sistem de rescriere
noetherian
16 / 29

Proprietati
Propozitie (3)
Fie (T , ) sistem de rescriere.
complet

orice element are o unica forma normala fn(t)

17 / 29

Proprietati
Propozitie (3)
Fie (T , ) sistem de rescriere.
complet

orice element are o unica forma normala fn(t)

Demonstratie
Deoarece (T , ) este noetherian, t are o forma normala, i.e.

t t 0 si t 0 este n forma normala.


Presupunem ca t mai are o alta forma normala t 00 .

Cum t t 00 si t t 0 , din confluenta avem


t 0 t 00 .
Cum t 0 si t 00 sunt n forma normala, putem obtine doar t 0 = t 00 .

17 / 29

Proprietati

(goto 25)

Propozitie (4)
Fie (T , ) sistem de rescriere.
confluent

Church-Rosser

18 / 29

Proprietati

(goto 25)

Propozitie (4)
Fie (T , ) sistem de rescriere.
confluent

Church-Rosser

Demonstratie
()

Presupunem t1 t t2 .

Atunci avem t1 t2 .
Cum (T , ) este Church-Rosser, obtinem ca t1 t2 .
Deci (T , ) este confluent.

18 / 29

Proprietati
Demonstratie (cont.)
()

Presupunem t1 t2 . Atunci exista n si t10 , . . . , tn0 a..:


t1 = t10 t20 . . . tn0 = t2 .
Demonstram prin inductie dupa n ca daca t10 t20 . . . tn0 ,
atunci t10 tn0 :
n = 1: Atunci evident t10 t10 .
0
n n + 1: Pres. t10 t20 . . . tn0 tn+1
.

0
0
Din ip. de inductie stim t1 tn . Atunci ex. w a.. t10 w tn0 .
Avem dou
a cazuri:

0
0
0
tn+1
tn0 : evident t10 w tn0 tn+1
, deci t10 tn+1
.

0
0
si (T , ) este confluent,
tn0 tn+1
: Cum w tn0 tn+1

obtinem w

Deci t10 w

0
0
tn+1
. Deci exist
a w 0 a.. w w 0 tn+1
.

0
0
w 0 tn+1
, adic
a t10 tn+1
.

In concluzie, t1 t2 .

t10

0
tn+1

tn0


19 / 29

Proprietati
Propozitie (5)
Fie (T , ) sistem de rescriere.
confluent

local confluent

20 / 29

Proprietati
Propozitie (5)
Fie (T , ) sistem de rescriere.
confluent

local confluent

Exemplu
T = {a, b, c, d}
:

20 / 29

Proprietati
Propozitie (5)
Fie (T , ) sistem de rescriere.
confluent

local confluent

Exemplu
T = {a, b, c, d}
:

T este local confluent:


a b c si a c (n a)
b c d si b d (n d)

20 / 29

Proprietati
Propozitie (5)
Fie (T , ) sistem de rescriere.
confluent

local confluent

Exemplu
T = {a, b, c, d}
:

T este local confluent:


a b c si a c (n a)
b c d si b d (n d)

T nu este confluent:

a b d, dar a 6 d

a c d, dar a 6 d
20 / 29

Proprietati
Propozitie (6) - Lema lui Newman
Fie (T , ) sistem de rescriere.
noetherian + local confluent

confluent

21 / 29

Proprietati
Propozitie (6) - Lema lui Newman
Fie (T , ) sistem de rescriere.
noetherian + local confluent

confluent

Demonstratie
Deoarece (T , ) este noetherian, stim ca orice element are o forma
normala.
Aratam ca orice element are o forma normala unica.
Fie M multimea elementelor care au cel putin doua forme normale
diferite:

M = {t | n1 t n2 , n1 6= n2 , n1 , n2 n forma normala }.

21 / 29

Proprietati
Demonstratie (cont.)
Demonstram urmatoarea proprietate:
(?) pt. or. t M, exista t 0 M a.. t t 0 .
Fie t M.

Atunci ex. n1 si n2 n form


a normal
a a.. n1 t n2 , n1 6= n2 .
Pres. n1 t n2 :
Din local confluent
a, obtinem n1 n2 .
Cum n1 si n2 n form
a normal
a, obtinem n1 = n2 (contradictie).

Pres. n1 t n2 :

Atunci exist
a t2 a.. n1 t t2 n2 .
Din local confluenta, obtinem n1 t2 .

Cum n1 n form
a normal
a, obtinem t2 n1 .
Deci t2 M si t t2 .

Pres. n1 t n2 :

Atunci exist
a t1 a.. n1 t1 t n2 .

Din local confluent


a, obtinem t1 n2 si, mai departe, t1 n2 .
Deci t1 M si t t1 .
22 / 29

Proprietati

Demonstratie (cont.)
(?) pt. or. t M, exista t 0 M a.. t t 0 .

Pres. n1 t n2 :

Atunci exist
a t1 , t2 a.. n1 t1 t t2 n2 .

t1

Din local confluent


a, obtinem t1 t2 .

Deci ex. n3 n form


a normal
a a.. t1 n3 si t2 n3 .

n3

Deoarece n1 6= n2 , deducem c
a n3 6= n1 sau n3 6= n2 .
Dac
a n3 6= n1 , atunci t1 M si t t1 .

n1

t2

n2

Dac
a n3 6= n2 , atunci t2 M si t t2 .

23 / 29

Proprietati

Demonstratie (cont.)
Aratam unicitatea formei normale, i.e. M = .
Pres. prin absurd c
a M 6= . Atunci exist
a t1 M.
Din (?), ex. t2 M a.. t1 t2 .
Prin inductie, obtinem un sir {ti }iN de elemente din M a..
t1 t2 . . . tn . . .
ceea ce contrazice faptul c
a (T , ) este noetherian.

Pres. t1 t t2 . Cum t are o unica forma normala n, obtinem

t1 n t2 . Deci t1 t2 .
In concluzie, (T , ) este confluent.


24 / 29

Proprietati
Propozitie (7)
Fie (T , ) sistem de rescriere complet.

t t 0 fn(t) = fn(t 0 )

25 / 29

Proprietati
Propozitie (7)
Fie (T , ) sistem de rescriere complet.

t t 0 fn(t) = fn(t 0 )

Demonstratie
()
Daca fn(t) = fn(t 0 ), atunci evident t t 0 .

Aplicam Propozitia (1) si obtinem t t 0 .

25 / 29

Proprietati
Propozitie (7)
Fie (T , ) sistem de rescriere complet.

t t 0 fn(t) = fn(t 0 )

Demonstratie
()
Daca fn(t) = fn(t 0 ), atunci evident t t 0 .

Aplicam Propozitia (1) si obtinem t t 0 .


()
Cum (T , ) este complet, este confluent si or. element are o unica
forma normala. Din Propozitia (4), este Church-Rosser.

Deoarece t t 0 , obtinem ca t t 0 , i.e. exista w a.. t w t 0 .


Fie n unica forma normala a lui w .

In concluzie, t
n t 0 , deci fn(t) = fn(t 0 ).

25 / 29

Deductia ecuationala si rescriere


(S, ) signatura, X multime de variabile si t, t 0 T (X )s
E multime de ecuatii
RE sistemul de rescriere determinat de E
E relatia de rescriere generata de RE

E echivalenta generata de E

Teorema

E ` (X )t =s t 0

t E t 0

Corolar (8)
Daca sistemul de rescriere (T (X ), RE ) este complet, atunci:

E ` (X )t =s t 0

t E t 0

fn(t) = fn(t)

26 / 29

Concluzii

Daca E este o multime de ecuatii a..


RE este un sistem de rescriere complet,

atunci deductia ecuationala E ` (X )t =s t 0 este decidabila:

27 / 29

Concluzii

Daca E este o multime de ecuatii a..


RE este un sistem de rescriere complet,

atunci deductia ecuationala E ` (X )t =s t 0 este decidabila:


Algoritm:

1. t E fn(t)

2. t 0 E fn(t 0 )

3. E ` (X )t =s t 0 fn(t) = fn(t 0 )

27 / 29

Observatii

Terminarea unui sistem de rescriere este nedecidabila.


echivalent
a cu oprirea masinilor Turing

Pentru sisteme de rescriere particulare putem decide asupra


terminarii.
diverse metode

Pentru sisteme de rescriere care se termina, confluenta este


decidabila.
algoritmul Knuth-Bendix

28 / 29

Vacanta placuta!

29 / 29

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

  • Lab 04
    Lab 04
    Document28 pagini
    Lab 04
    Dani Rvd
    Încă nu există evaluări
  • Curs 5: 2015-2016 Programare Logic A
    Curs 5: 2015-2016 Programare Logic A
    Document41 pagini
    Curs 5: 2015-2016 Programare Logic A
    Dani Rvd
    Încă nu există evaluări
  • C02 PL
    C02 PL
    Document62 pagini
    C02 PL
    Dani Rvd
    Încă nu există evaluări
  • Curs 4: 2015-2016 Programare Logic A
    Curs 4: 2015-2016 Programare Logic A
    Document50 pagini
    Curs 4: 2015-2016 Programare Logic A
    Dani Rvd
    Încă nu există evaluări
  • C07
    C07
    Document67 pagini
    C07
    Dani Rvd
    Încă nu există evaluări
  • Shark and Fishes Problem
    Shark and Fishes Problem
    Document13 pagini
    Shark and Fishes Problem
    Dani Rvd
    Încă nu există evaluări
  • C03 PL
    C03 PL
    Document65 pagini
    C03 PL
    Dani Rvd
    Încă nu există evaluări
  • Laborator2 SQL An2
    Laborator2 SQL An2
    Document8 pagini
    Laborator2 SQL An2
    Dani Rvd
    Încă nu există evaluări
  • Cursul 3
    Cursul 3
    Document29 pagini
    Cursul 3
    Dani Rvd
    Încă nu există evaluări
  • Cursul 4
    Cursul 4
    Document26 pagini
    Cursul 4
    Dani Rvd
    Încă nu există evaluări
  • Cursul 5
    Cursul 5
    Document31 pagini
    Cursul 5
    Dani Rvd
    Încă nu există evaluări
  • Cursul 3
    Cursul 3
    Document29 pagini
    Cursul 3
    Dani Rvd
    Încă nu există evaluări
  • Cursul 5
    Cursul 5
    Document31 pagini
    Cursul 5
    Dani Rvd
    Încă nu există evaluări
  • Cursul 8
    Cursul 8
    Document22 pagini
    Cursul 8
    Dani Rvd
    Încă nu există evaluări
  • Baza PA
    Baza PA
    Document4 pagini
    Baza PA
    Dani Rvd
    Încă nu există evaluări
  • Cursul 6
    Cursul 6
    Document54 pagini
    Cursul 6
    Dani Rvd
    Încă nu există evaluări
  • Cursul 7
    Cursul 7
    Document45 pagini
    Cursul 7
    Dani Rvd
    Încă nu există evaluări
  • Cursul 9
    Cursul 9
    Document9 pagini
    Cursul 9
    Dani Rvd
    Încă nu există evaluări
  • Cursul 8
    Cursul 8
    Document22 pagini
    Cursul 8
    Dani Rvd
    Încă nu există evaluări
  • Cursul 10 Recapitulare
    Cursul 10 Recapitulare
    Document32 pagini
    Cursul 10 Recapitulare
    Dani Rvd
    Încă nu există evaluări
  • Cursul 6
    Cursul 6
    Document54 pagini
    Cursul 6
    Dani Rvd
    Încă nu există evaluări
  • Cursul 10 Recapitulare
    Cursul 10 Recapitulare
    Document32 pagini
    Cursul 10 Recapitulare
    Dani Rvd
    Încă nu există evaluări
  • TSB
    TSB
    Document4 pagini
    TSB
    Dani Rvd
    Încă nu există evaluări
  • Cursul 9
    Cursul 9
    Document9 pagini
    Cursul 9
    Dani Rvd
    Încă nu există evaluări
  • Cursul 5
    Cursul 5
    Document31 pagini
    Cursul 5
    Dani Rvd
    Încă nu există evaluări
  • Cursul 4
    Cursul 4
    Document26 pagini
    Cursul 4
    Dani Rvd
    Încă nu există evaluări
  • Cursul 6
    Cursul 6
    Document54 pagini
    Cursul 6
    Dani Rvd
    Încă nu există evaluări
  • Cursul 7
    Cursul 7
    Document45 pagini
    Cursul 7
    Dani Rvd
    Încă nu există evaluări
  • Cursul 3
    Cursul 3
    Document29 pagini
    Cursul 3
    Dani Rvd
    Încă nu există evaluări