27
Teorema di Kleene Pumping Lemma per Linguaggi Regolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio 6 aprile 2016 Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

Sui Linguaggi Regolari:Teorema di Kleene - Pumping Lemma

N.Fanizzi - V.Carofiglio

6 aprile 2016

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 2: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

1 Teorema di KleeneL3 ⊂ LFSLLFSL ⊂ L3LFSL ⊂ LREGLREG ⊂ L3

2 Pumping Lemma per Linguaggi Regolari

3 EserciziEsercizio 1Esercizio 3Esercizio 8

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 3: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

L3 ⊂ LFSLLFSL ⊂ L3LFSL ⊂ LREGLREG ⊂ L3

Teorema di Kleene

Vale la seguente equivalenza:

L3 ≡ LFSL ≡ LREG

Dimostrazione.Lo schema di dimostrazione è il seguente:

1 L3 ⊂ LFSL (ed anche LFSL ⊂ L3)2 LFSL ⊂ LREG

3 LREG ⊂ L3

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 4: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

L3 ⊂ LFSLLFSL ⊂ L3LFSL ⊂ LREGLREG ⊂ L3

Tesi I. L3 ⊂ LFSLSia L ∈ L3 cioè ∃G = (X ,V , S ,P),G di tipo 3: L(G ) = LSi deve costruire un FSA M = (Q, δ, q0,F ) tale che T (M) = L(G )

Algoritmo.Input: G = (X ,V , S ,P),G di tipo 3Output: M = (Q, δ, q0,F ) ∈ FSA

1 X alfabeto di ingresso per M2 Q = V ∪ {q}, q 6∈ V3 q0 = S4 F = {q} ∪ {B | B −→ λ ∈ P}5 δ : Q × X −→ ℘(Q)

1 ∀B −→ aC ∈ P : C ∈ δ(B, a)2 ∀B −→ a ∈ P : q ∈ δ(B, a)

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 5: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

L3 ⊂ LFSLLFSL ⊂ L3LFSL ⊂ LREGLREG ⊂ L3

Osservazione:l’algoritmo può generare NDA (passi 5.a e 5.b)Occorre dimostrare anche la correttezza dell’automa:L(G ) = T (M)

L(G ) ⊆ T (M): sia w = x1x2 · · · xk ∈ L(G )w può essere generata con una derivazione:S =⇒ x1X2 =⇒ x1x2X3 =⇒ · · · =⇒ x1x2 . . .Xk =⇒x1x2 . . . xkPer la sua def. l’automa M, avendo in input w , compie unaserie di transizioni che portano da S a X1,X2, . . . ,Xk fino a q.T (M) ⊆ L(G ): analogamente

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 6: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

L3 ⊂ LFSLLFSL ⊂ L3LFSL ⊂ LREGLREG ⊂ L3

Inoltre, si dimostra in maniera costruttiva

LFSL ⊂ L3

Algoritmo.Input: M = (Q, δ, q0,F ) ∈ FSAOutput: G = (X ,V , S ,P) lineare

1 X alfabeto di ingresso per M2 V = Q3 S = q0

4 P = {q −→ xq′ | q′ ∈ δ(q, x)} ∪ {q −→ x | δ(q, x) ∈ F}

Per esercizio: L(G ) = T (M)

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 7: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

L3 ⊂ LFSLLFSL ⊂ L3LFSL ⊂ LREGLREG ⊂ L3

Tesi II. LFSL ⊂ LREGSia L ∈ LFSL cioè ∃M = (Q, δ, q0,F ) ∈ FSA tale che: T (M) = LSupponiamo Q = {q0, q1, . . . , qn}Si definisca il linguaggio:

Rij = {w ∈ X ∗ | δ∗(qi ,w) = qj}

contenente le stringhe che fanno transitare M da qi a qj .Per def. di linguaggio accettato da FSA, risulta: T (M) =

⋃qj∈F R0j

quindi basta dimostrare che ogni linguaggio Rij è regolare0 ≤ i , j ≤ n

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 8: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

L3 ⊂ LFSLLFSL ⊂ L3LFSL ⊂ LREGLREG ⊂ L3

Rkij = {w ∈ X ∗ | δ∗(qi ,w) = qj senza transitare in qk , qk+1, . . . , qn}

Siosservi che: Rn+1

ij = Rij

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 9: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

L3 ⊂ LFSLLFSL ⊂ L3LFSL ⊂ LREGLREG ⊂ L3

dimostriamo per induzione su k che

Rkij ∈ LREG ∀i , j : 0 ≤ i , j ≤ n

(k = 0) R0ij = {w ∈ X ∗ | δ(qi ,w) = qj} ∈ LREG perchè finito

(k > 0) per ipotesi: Rkij ∈ LREG ∀i , j :∈ {0, . . . , n}

Dimostriamo che Rk+1ij ∈ LREG

Sia w ∈ Rk+1ij per definizione la lettura di w non fa transitare

M in nessuno degli stati qk+1, qk+2, . . . , qn.Si possono avere 2 casi (vedi figura):

1 w non fa transitare M nemmeno in qk , quindi w ∈ Rkij ed Rk

ijcioè regolare, per ipotesi.

2 w fa transitare M in qk . In tal caso riscriviamo w comeconcatenazione di m > 1 sottostringhe:w = w1w2 · · ·wm−1wm con:w1 ∈ Rk

ik wt ∈ Rkkk 1 < t < m wm ∈ Rk

kj

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 10: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

L3 ⊂ LFSLLFSL ⊂ L3LFSL ⊂ LREGLREG ⊂ L3

Data la genericità di w si può scrivere:w ∈ Rk

ik · (Rkkk)m−2 · Rk

kj (con m > 1) per cui:w ∈ Rk

ik · (Rkkk)∗ · Rk

kj

Ne consegue allora che: Rk+1ij ⊆ Rk

ij ∪ Rkik · (Rk

kk)∗ · Rkkj

ma ovviamente: Rkij ∪ Rk

ik · (Rkkk)∗ · Rk

kj ⊆ Rk+1ij

quindi il linguaggio

Rk+1ij = Rk

ij ∪ Rkik · (Rk

kk)∗ · Rkkj

è regolare perchè espresso come unione, concatenazione e iterazionedi linguaggi che sono regolari (per ipotesi induttiva)Risulta dimostrato che ∀k ∈ [0, n] Rk

ij ∈ LREG perciò

T (M) =⋃

qj∈F

R0j =⋃

qj∈F

Rn+10j

è regolare perchè unione di linguaggi regolariSui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 11: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

L3 ⊂ LFSLLFSL ⊂ L3LFSL ⊂ LREGLREG ⊂ L3

Algoritmo alternativo [Hopcroft et al.] LFSL ⊂ LREG

eliminando uno stato alla volta occorre preservare i camminiche portano dallo stato iniziale a stati finalisi considerano gli stati predecessori q1, . . . , qm e successorip1, . . . , pk dello stato s da eliminare (ins. non disgiunti)

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 12: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

L3 ⊂ LFSLLFSL ⊂ L3LFSL ⊂ LREGLREG ⊂ L3

archi etichettati con espressioni regolari anzichè con simboli:infinite parole possono portare da uno stato ad un altroeliminando s, per ogni (qi , pj), si etichetta l’arco conl‘espressione regolare: Rij + QiS∗Pj

un arco assente nell’automa originario si denota conl’espressione ∅

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 13: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

L3 ⊂ LFSLLFSL ⊂ L3LFSL ⊂ LREGLREG ⊂ L3

1 per ogni stato finale q ∈ Fsi eliminano tutti gli stati tranne q0 e q:applicando l’algoritmo si produce un automa con archietichettati da espr. regolari

2 se q 6= q0 allora risulta un automa a due stati⇒ soluzione: (R∗ + SU∗T )∗SU∗

3 altrimenti risulta un automa ad un stato⇒ soluzione: R∗

4 output: somma di tutte le espressioni ottenute al variare di q

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 14: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

L3 ⊂ LFSLLFSL ⊂ L3LFSL ⊂ LREGLREG ⊂ L3

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 15: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

L3 ⊂ LFSLLFSL ⊂ L3LFSL ⊂ LREGLREG ⊂ L3

Tesi III. LREG ⊂ L3Sia L ∈ LREG quindi vale una delle seguenti condizioni:

L è finitoL = L1 ∪ L2 con L1, L2 regolariL = L1 · L2 con L1, L2 regolariL = (L1)

∗ con L1 regolare

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 16: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

L3 ⊂ LFSLLFSL ⊂ L3LFSL ⊂ LREGLREG ⊂ L3

Dimostrazione per induzione sulla costruzione di Lbase L finito L = {w1,w2, . . . ,wn} allora si può scrivere come

unione di linguaggi lineari Li che generano ognuno una stringadi wi e la classe L3 è chiusa rispetto all’unione:

L =n⋃

i=0

Li

Si può facilmente dimostrare che ∀i ∈ [0, n] : Li ∈ L3

passo In tutti i tre casi possiamo considerare i linguaggi L1 e L2come lineari per ipotesi di induzione.Anche la loro unione/concatenazione/iterazione è in L3 per lachiusura di L3 rispetto a queste operazioni.Quindi L ∈ L3

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 17: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

Pumping Lemma per Linguaggi Regolari

Teorema. Sia M = (Q, δ, q0,F ) ∈ FSA con n = |Q| e siaz ∈ T (M), |z | ≥ n. Allora z = uvw e uv∗w ⊂ T (M), cioè∀t ≥ 0 : uv tw ∈ T (M)Dimostrazione.Sia z = x1x2 · · · xk ∈ T (M) con k ≥ nSi rappresenta il riconoscimento di z con:

Se si ha |z | ≥ n si deve passare per almeno n + 1 statima n = |Q| quindi c’è uno stato ripetuto:

∃i , j , 0 ≤ i < j ≤ k : qi = qj

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 18: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

Si osservi che z si può scrivere come uvw ove:u = x1x2 · · · xi

v = xi+1xi+2 · · · xj

w = xj+1xj+2 · · · xk

Avendo in ingresso z ∈ T (M), M si porta nello stato: δ∗(q0, z) ∈ Fma questo è lo stesso stato in cui si giunge tramite le stringhe:uvvw , uvvvw etc.,. . . (ciclando t volte tra qi e qj)Dunque: ∀t ≥ 0 : uv tw ∈ T (M)

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 19: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

Esercizio 1Esercizio 3Esercizio 8

Esercizi

1 Determinare la grammatica di tipo 3 che genera il linguaggiodescritto da b∗ + (ab)∗

2 Data la grammatica lineare G = (X ,V , S ,P) conX = {a, b, c}, V = {S ,A,B} eP = {S −→ bA | aS | b, A −→ aB | cS | a,

B −→ bA | cB | c}determinare un’espressione regolare per L(G )

3 Sia L = S(R) ove R = (aa + aaa)∗

costruire un automa che riconosce Ltrasformare l’NDA del punto 1. in FSA

4 Determinare una grammatica G di tipo 3 tale che:

L(G ) = {w ∈ {a, b}∗ | w ha un numero pari di a e dispari di b}

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 20: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

Esercizio 1Esercizio 3Esercizio 8

5 Sia L = S(R) ove R = ab(bb)∗ctrovare un automa (NDA) per riconoscere Ltrasformare l’automa NDA nell’FSA equivalente

6 Data la grammatica lineare G = (X ,V , S ,P) conX = {a, b}, V = {S ,B} eP = {S −→ aB B −→ aB | bS | a}determinare un automa FSA M tale che: T (M) = L(G )

7 Determinare una grammatica lineare G tale che:

L(G ) = {w ∈ {a, b}∗ | w 6= αaaβ, α, β ∈ {a, b}∗}8 Dimostrare che non sono regolari i linguaggi:

L1 = {akbk | k > 0}L2 = {anbmck | n > k, n,m, k > 0}

9 Dimostrare che il linguaggio non è regolare:

L = {anbmck | m > k , n,m, k > 0}

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 21: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

Esercizio 1Esercizio 3Esercizio 8

Esercizio 1. Determinare la grammatica di tipo 3 che genera illinguaggio descritto da b∗ + (ab)∗

Vediamo qual é il linguaggio corrispondente:S(b∗ + (ab)∗) = S(b∗) ∪ S((ab)∗) = (S(b))∗ ∪ (S(ab))∗ ={b}∗ ∪ (S(a) · S(b))∗ = {b}∗ ∪ ({a} · {b})∗ = {b}∗ ∪ {ab}∗G1 = (X1,V1, S1,P1) con X1 = {b}, V1 = {S1},P1 = {S1 −→ bS1 | λ}G2 = (X2,V2, S2,P2) con X2 = {a, b} V2 = {S2,B2},P2 = {S2 −→ aB2, B2 −→ b}G3 = (X3,V3, S3,P3) con X3 = X2, V3 = V2 ∪ {S3}P3 ={S3 −→ λ} ∪ (P2 \ {S2 −→ λ})∪∪{S2 −→ w ∈ P2} ∪ {A −→ xS3 | A −→ x ∈ P2} =={S3 −→ λ} ∪ P2 ∪ {S3 −→ aB2} ∪ {B2 −→ bS3} =={S3 −→ λ, S2 −→ aB2, B2 −→ b, S3 −→ aB2, B2 −→ bS3} =={S3 −→ λ | aB2, S2 −→ aB2, B2 −→ b | bS3}

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 22: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

Esercizio 1Esercizio 3Esercizio 8

Osservazione: S2 è inutile:P3 = {S3 −→ λ | aB2, B2 −→ b | bS3}Quindi L(G3) = {ab}∗

Per chiudere:G = (X ,V , S ,P) ove:X = X1 ∪ X3V = V1 ∪ V3 ∪ {S} = {S , S1,B2, S3}P = {S −→ w | S1 −→ w ∈ P1}∪

{S −→ w | S3 −→ w ∈ P3}∪P1 ∪ P3 =

= {S −→ bS1 | aB2 | λ,S1 −→ bS1 | λ, S3 −→ aB2 | λ, B2 −→ bS3 | b}

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 23: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

Esercizio 1Esercizio 3Esercizio 8

Esercizio 3. Sia L = S(R) ove R = (aa + aaa)∗

1. costruire un automa che riconosce L2. trasformare l’NDA del punto 1. in FSA1. Dato X = {a}, determiniamo le grammatiche G1 per L1 = {aa}e G2 per L2 = {aaa}:G1 = (X ,V1, S1,P1) con V1 = {S1,A} eP1 = {S1 −→ aA, A −→ a}G2 = (X ,V2, S2,P2) con V2 = {S2,B,C} eP2 = {S2 −→ aB, B −→ aC , C −→ a}Sia G3 = (X ,V3, S3,P3) la grammatica per L3 = L1 ∪ L2:con V3 = V1 ∪ V2 ∪ {S3} = {S3, S1, S2,A,B,C} eP3 ={S3 −→ w | S1 −→ w ∈ P1}∪

{S3 −→ w | S2 −→ w ∈ P2} ∪ P1 ∪ P2={S3 −→ aA | aB} ∪ P1 ∪ P2

che contiene produzioni inutili e quindi NT superflui (S1, S2)

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 24: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

Esercizio 1Esercizio 3Esercizio 8

Per l’iterazione di L3 costruisco:G = (X ,V , S ,P) conV = V3 ∪ {S} = {S , S3,A,B,C}P ={S −→ λ} ∪ (P3 \ {S3 −→ λ})∪∪{S −→ w | S3 −→ w ∈ P3}∪∪{N −→ bS | N −→ b ∈ P3}∪{N −→ bS | N −→ bM, b 6= λ,M −→ λ ∈ P3} =

={S −→ λ} ∪ {S3 −→ aA | aB,A −→ a,B −→ aC ,C −→ a}∪∪{S −→ aA | aB}∪∪{A −→ aS ,C −→ aS}

={S −→ aA | aB | λ, A −→ aS | a, B −→ aC , C −→ aS | a}

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 25: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

Esercizio 1Esercizio 3Esercizio 8

2. L’automa a stati finiti si ottiene mediante l’algoritmo dato nelladimostrazione del teorema di Kleene:

Q = V ∪ {q} = {S ,A,B,C , q}q0 = SF = {q, S}δ definita dalla matrice di transizione (trasposta):

δ S A B C qa {A,B} {S , q} {C} {S , q} ∅

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 26: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

Esercizio 1Esercizio 3Esercizio 8

graficamente:

per esercizio: trasformare l’automa in un FSA deterministico

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio

Page 27: Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma ... · TeoremadiKleene PumpingLemmaperLinguaggiRegolari Esercizi Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma

Teorema di KleenePumping Lemma per Linguaggi Regolari

Esercizi

Esercizio 1Esercizio 3Esercizio 8

Esercizio 8. Dimostrare che L1 = {akbk | k > 0} non è regolare

Supponendo che L ∈ LREG , per il teorema di Kleene sarà ancheL ∈ LFSL quindi ∃M = (Q, δ, q0,F ), tale che T (M) = LSia |Q| = n e si consideri w = anbn ∈ L.Leggendo le a di w , M deve passare per almeno n + 1 stati, quindici devono essere almeno 2 stati coincidenti: qi e qj con i < jQuindi nel cammino da q0 ad uno stato finale c’è un ciclo dilunghezza j − i . Allora si può ciclare un numero arbitrario di volte,aggiungendo ogni volta una sottostringa aj−i

Per il Pumping lemma dovrebbe essere

an+k(j−i)bn ∈ T (M) ∀k ≥ 0

Ma queste non sono stringhe di L (assurdo)pertanto L non è regolare

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio