Sunteți pe pagina 1din 23

Curs 9

2017-2018 Programare Logică


1 / 24
Cuprins

1 Sisteme de rescriere abstracte

2 / 24
Sisteme de rescriere abstracte

3 / 24
Sisteme de rescriere abstracte

Definiţie
Un sistem de rescriere abstract este o pereche (T , →) unde:
T este o mulţime,
→⊆ T × T (→ este o relaţie binară pe T ).

Definiţii:
← := →−1 (relaţia inversă)
↔ := → ∪ ← (ı̂nchiderea simetrică)

→ := (→)∗ (ı̂nchiderea reflexivă şi tranzitivă)

↔ := (↔)∗ (echivalenţa generată)

4 / 24
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.ı̂. m → k1 → . . . →
kn → k} =→
∗ +
→=→ ∪{(k, k) | k ∈ T }

5 / 24
Sisteme de rescriere abstracte

Definiţie
Fie (T , →) sistem de rescriere.
t ∈ T este reductibil dacă există t 0 ∈ T a.ı̂. t → t 0 .

O reducere este un şir t0 → t1 → t2 → . . .

t ∈ T este ı̂n formă normală (ireductibil) dacă nu este reductibil.


t0 este o formă normală a lui t dacă

t → t0 şi
t0 este ı̂n formă normală.
∗ ∗
t1 şi t2 se intâlnesc dacă există t ∈ T a.ı̂. t1 → t ← t2 .
notaţie: t1 ↓ t2 .

6 / 24
Sisteme de rescriere abstracte

Exemplu
T := N \ {0, 1}
→:= {(m, k) | k < m, k|m}
k este ı̂n formă normală dacă este număr prim.
k1 ↓ k2 dacă nu sunt prime ı̂ntre ele.
k este o formă normală a lui m dacă k este un factor prim al lui m.

7 / 24
Sisteme de rescriere abstracte

Exemplu
T := {a, b}∗
→:= {(ubav , uabv ) | u, v ∈ T }
w este ı̂n formă normală dacă w = an b k , cu n, k ≥ 0.
w1 ↓ w2 dacă
nra (w1 ) = nra (w2 ) şi
nrb (w1 ) = nrb (w2 ).

8 / 24
Sisteme de rescriere abstracte

Definiţie
Un sistem de rescriere (T , →) se numeşte
noetherian (se termină): dacă nu există reduceri infinite
t0 → t1 → t2 → . . ..
orice rescriere se termină.
∗ ∗
confluent: t1 ← t → t2 ⇒ t1 ↓ t2 .

local confluent: t1 ← t → t2 ⇒ t1 ↓ t2 .

Church-Rosser: t1 ↔ t2 ⇒ t1 ↓ t2 .

Normalizat: orice element are o formă normală.

Complet (convergent, canonic): confluent şi noetherian.

9 / 24
Sisteme de rescriere abstracte

Confluent: Local confluent:

t t
∗ ∗
t1 t2 t1 t2
∗ ∗ ∗ ∗
t 00 t 00

10 / 24
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ău.
(T , →) nu este confluent:
12

6 4

3 2

11 / 24
Proprietăţi (goto 25)

Propoziţie (1)

Fie (T , →) sistem de rescriere. Dacă t ↓ t 0 , atunci t ↔ t 0 .

Demonstraţie
∗ ∗ ∗
Dacă t ↓ t 0 , atunci există t0 a.ı̂. t → t0 ← t 0 , i.e. t ↔ t 0 .


12 / 24
Proprietăţi

Propoziţie (2)
Fie (T , →) sistem de rescriere.

noetherian ⇒ orice element are o formă normală



/

Exemplu
T = {a, b, c}
→= {(a, b), (b, a), (b, c)}
Orice element are forma normală c, dar
→ nu este noetherian: a → b → a → b → a → . . .

13 / 24
Proprietăţi

Propoziţie (3)
Fie (T , →) sistem de rescriere.
complet ⇒ orice element t are o unică formă normală fn(t)

Demonstraţie
Deoarece (T , →) este noetherian, t are o formă normală, i.e.

t → t 0 şi t 0 este ı̂n formă normală.
Presupunem că t mai are o altă formă normală t 00 .
∗ ∗
Cum t → t 00 şi t → t 0 , din confluenţă avem
t 0 ↓ t 00 .
Cum t 0 şi t 00 sunt ı̂n formă normală, putem obţine doar t 0 = t 00 .


14 / 24
Proprietăţi

Propoziţie (4)
Fie (T , →) sistem de rescriere.
confluent ⇔ Church-Rosser

Demonstraţie
(⇐)
∗ ∗
Presupunem t1 ← t → t2 .

Atunci avem t1 ↔ t2 .
Cum (T , →) este Church-Rosser, obţinem că t1 ↓ t2 .
Deci (T , →) este confluent.

15 / 24
Proprietăţi

Demonstraţie (cont.)
(⇒)

Presupunem t1 ↔ t2 . Atunci există n şi t10 , . . . , tn0 a.ı̂.:
t1 = t10 ↔ t20 ↔ . . . ↔ tn0 = t2 .
Demonstrăm prin inducţie după n că dacă t10 ↔ t20 ↔ . . . ↔ tn0 ,
atunci t10 ↓ tn0 :
n = 1: Atunci evident t10 ↓ t10 .
n → n + 1: Pres. t10 ↔ t20 ↔ . . . ↔ tn0 ↔ tn+10
.
∗ ∗
Din ip. de inducţie ştim t1 ↓ tn . Atunci ex. w a.ı̂. t10 → w ← tn0 .
0 0

Avem două cazuri:


0 ∗ ∗
tn+1 → tn0 : evident t10 → w ← tn0 ← tn+1
0 , deci t10 ↓ tn+1
0 . 0
t10 tn0 tn+1

tn0 → tn+1
0 : Cum w ← tn0 → tn+1
0 şi (T , →) este confluent, ∗ ∗ ∗
0 ∗ ∗ 0
obţinem w ↓ tn+1 . Deci există w 0 a.ı̂. w → w 0 ← tn+1 . w 0
∗ ∗ ∗ ∗ w
Deci t10 → w → w 0 ← tn+1
0 , adică t10 ↓ tn+1
0 .

În concluzie, t1 ↓ t2 . 
16 / 24
Proprietăţi

Propoziţie (5)
Fie (T , →) sistem de rescriere.
confluent ⇒ local confluent

/

Exemplu
T = {a, b, c, d}
→: a b c d
T este local confluent:
a ← b → c şi a ↓ c (ı̂n a)
b ← c → d şi b ↓ d (ı̂n d)
T nu este confluent:
∗ ∗
a ← b → d, dar a 6↓ d
∗ ∗
a ← c → d, dar a 6↓ d

17 / 24
Proprietăţi

Propoziţie (6) - Lema lui Newman


Fie (T , →) sistem de rescriere.
noetherian + local confluent ⇒ confluent

Demonstraţie
Deoarece (T , →) este noetherian, ştim că orice element are o formă
normală.
Arătăm că orice element are o formă normală unică.
Fie M mulţimea elementelor care au cel puţin două forme normale
diferite:
∗ ∗
M = {t | n1 ← t → n2 , n1 6= n2 , n1 , n2 ı̂n formă normală }.

18 / 24
Proprietăţi

Demonstraţie (cont.)
Demonstrăm următoarea proprietate:
(?) pt. or. t ∈ M, există t 0 ∈ M a.ı̂. t → t 0 .
Fie t ∈ M.
∗ ∗
Atunci ex. n1 şi n2 ı̂n formă normală a.ı̂. n1 ← t → n2 , n1 6= n2 .
Pres. n1 ← t → n2 :
Din local confluenţă, obţinem n1 ↓ n2 .
Cum n1 şi n2 ı̂n formă normală, obţinem n1 = n2 (contradicţie).

Pres. n1 ← t → n2 :

Atunci există t2 a.ı̂. n1 ← t → t2 → n2 .
Din local confluenţa, obţinem n1 ↓ t2 .

Cum n1 ı̂n formă normală, obţinem t2 → n1 .
Deci t2 ∈ M şi t → t2 .

Pres. n1 ← t → n2 :

Atunci există t1 a.ı̂. n1 ← t1 ← t → n2 .

Din local confluenţă, obţinem t1 ↓ n2 şi, mai departe, t1 → n2 .
Deci t1 ∈ M şi t → t1 .
19 / 24
Proprietăţi

Demonstraţie (cont.)
(?) pt. or. t ∈ M, există t 0 ∈ M a.ı̂. t → t 0 .
∗ ∗
Pres. n1 ← t → n2 :
∗ ∗
Atunci există t1 , t2 a.ı̂. n1 ← t1 ← t → t2 → n2 .

Din local confluenţă, obţinem t1 ↓ t2 . t1 n1
∗ ∗ ∗
Deci ex. n3 ı̂n formă normală a.ı̂. t1 → n3 şi t2 → n3 . n3
t
Deoarece n1 6= n2 , deducem că n3 6= n1 sau n3 6= n2 . ∗
t2 n2
Dacă n3 6= n1 , atunci t1 ∈ M şi t → t1 . ∗
Dacă n3 6= n2 , atunci t2 ∈ M şi t → t2 .

20 / 24
Proprietăţi

Demonstraţie (cont.)
Arătăm unicitatea formei normale, i.e. M = ∅.
Pres. prin absurd că M 6= ∅. Atunci există t1 ∈ M.
Din (?), ex. t2 ∈ M a.ı̂. t1 → t2 .
Prin inducţie, obţinem un şir {ti }i∈N de elemente din M a.ı̂.
t1 → t2 → . . . → tn → . . .
ceea ce contrazice faptul că (T , →) este noetherian.
∗ ∗
Pres. t1 ← t → t2 . Cum t are o unică formă normală n, obţinem
∗ ∗
t1 → n ← t2 . Deci t1 ↓ t2 .
În concluzie, (T , →) este confluent.


21 / 24
Proprietăţi

Propoziţie (7)
Fie (T , →) sistem de rescriere complet.

t ↔ t 0 ⇔ fn(t) = fn(t 0 )

Demonstraţie
(⇐)
Dacă fn(t) = fn(t 0 ), atunci evident t ↓ t 0 .

Aplicăm Propoziţia (1) şi obtinem t ↔ t 0 .
(⇒)
Cum (T , →) este complet, este confluent şi or. element are o unică
formă normală. Din Propoziţia (4), este Church-Rosser.
∗ ∗ ∗
Deoarece t ↔ t 0 , obţinem că t ↓ t 0 , i.e. există w a.ı̂. t → w ← t 0 .
Fie n unica formă normală a lui w .
∗ ∗
În concluzie, t → n ← t 0 , deci fn(t) = fn(t 0 ).

22 / 24
Observaţii

Terminarea unui sistem de rescriere este nedecidabilă.


echivalentă cu oprirea maşinilor Turing

Pentru sisteme de rescriere particulare putem decide terminarea.


diverse metode

Pentru sisteme de rescriere care se termină, confluenţa este


decidabilă.
algoritmul Knuth-Bendix

23 / 24

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