Escolar Documentos
Profissional Documentos
Cultura Documentos
1
Introdução
Material de apoio
Livro Sipser, Capítulo 2
Livro Hopcroft, Capítulos 5,6,7
2
Hierarquia de Chomsky
Todos os problemas
(todas as linguagens)
Não decidíveis
(indecidíveis) Reconhecíveis
+
Não reconhecíveis
Recursivas Enumeráveis
(reconhecíveis)
Recursivas
(decidíveis)
Livres de Contexto
Regular
Não reconhecíveis
Exemplos de Uso
Analisador sintático
Verificar balanceamentos (ex: palavras com mesma quantidade
de a’s e b’s)
Avaliar expressões aritméticas
Processadores de texto
Construção de linguagens de programação
4
Gramáticas Livres de Contexto (GLC)
Note que para mostrar que L(G ) = L temos que mostrar que
L ⊆ L(G ) e L(G ) ⊆ L
5
Gramáticas Livres de Contexto (GLC)
G = (V , T , S, P)
6
Gramáticas Livres de Contexto (GLC)
L = {w |w ∈ {a, b}+ e w = an b n e n ≥ 1}
S → aSb S → aSb|ab
S → ab
7
Gramáticas Livres de Contexto (GLC)
L = {w |w ∈ {a, b}+ e w = an b n e n ≥ 1}
S → aSb S → aSb|ab
S → ab
S =S
T = {a, b}
V = {S}
P = {S → aSb, S → ab}
7
Gramáticas Livres de Contexto (GLC)
L = {w |w ∈ {a, b}+ e w = an b n e n ≥ 1}
S → aSb S → aSb|ab
S → ab
S =S
T = {a, b}
V = {S}
P = {S → aSb, S → ab}
7
Gramáticas Livres de Contexto (GLC)
Derivação é o processo de gerar cadeias pertencentes à linguagem
através da aplicação sucessiva das regras de produção, ou seja,
α1 X α2 , usando X → Y , obtemos α1 Y α2 e escrevemos
α1 X α2 → α1 Y α2 , onde
X ∈ V,
α1 , α2 ∈ (V ∪ T )∗ ,
X → Y ∈ P, e
Y ∈ (V ∪ T )∗
1 S → aSb
2 S → ab
(1) (1) (2)
S −−→ aSb −−→ aaSbb −−→ aaabbb (derivação de um em um passo)
∗
S→− aaabbb (derivação em 0 ou mais passos)
8
Gramáticas Livres de Contexto (GLC)
Derivação é o processo de gerar cadeias pertencentes à linguagem
através da aplicação sucessiva das regras de produção, ou seja,
α1 X α2 , usando X → Y , obtemos α1 Y α2 e escrevemos
α1 X α2 → α1 Y α2 , onde
X ∈ V,
α1 , α2 ∈ (V ∪ T )∗ ,
X → Y ∈ P, e
Y ∈ (V ∪ T )∗
1 S → aSb
2 S → ab
(1) (1) (2)
S −−→ aSb −−→ aaSbb −−→ aaabbb (derivação de um em um passo)
∗
S→− aaabbb (derivação em 0 ou mais passos)
8
Gramáticas Livres de Contexto (GLC)
Árvore de derivação
Folhas são sempre terminais
Nós internos sempre são
não terminais
Filhos dos nós internos
formam as regras de
produção
∗
L(G ) = {w |w ∈ T ∗ e S →
− w}
9
Gramáticas Livres de Contexto (GLC)
L = {w |w ∈ {(, )}+ e w possui os parênteses balanceados }
L = {(), ()()(), (()()())(), ...}
S → ASB|AB|SS
A→(
B →)
10
Gramáticas Livres de Contexto (GLC)
L = {w |w ∈ {(, )}+ e w possui os parênteses balanceados }
L = {(), ()()(), (()()())(), ...}
S → ASB|AB|SS
A→(
B →)
S → ASB|AB|SS
A→(
B →)
11
Gramáticas Livres de Contexto (GLC)
12
Linguagens Regulares x Linguagens Livres de Contexto
Teorema: toda linguagem regular é uma linguagem livre de
contexto
Prova: por construção
13
Linguagens Regulares x Linguagens Livres de Contexto
Teorema: toda linguagem regular é uma linguagem livre de
contexto
Prova: por construção
Seja L uma LR. Então há um AFD M = (Q, Σ, δ, q0, F ) que a
reconhece.
13
Linguagens Regulares x Linguagens Livres de Contexto
Teorema: toda linguagem regular é uma linguagem livre de
contexto
Prova: por construção
Seja L uma LR. Então há um AFD M = (Q, Σ, δ, q0, F ) que a
reconhece.
Construiremos agora uma gramática livre de contexto GM tal
que L(M) = L(GM )
13
Linguagens Regulares x Linguagens Livres de Contexto
Teorema: toda linguagem regular é uma linguagem livre de
contexto
Prova: por construção
Seja L uma LR. Então há um AFD M = (Q, Σ, δ, q0, F ) que a
reconhece.
Construiremos agora uma gramática livre de contexto GM tal
que L(M) = L(GM )
Cada estado do AFD M é associado a um símbolo não
terminal da GLC GM , sendo o estado inicial q0 associado ao
símbolo inicial S
13
Linguagens Regulares x Linguagens Livres de Contexto
Teorema: toda linguagem regular é uma linguagem livre de
contexto
Prova: por construção
Seja L uma LR. Então há um AFD M = (Q, Σ, δ, q0, F ) que a
reconhece.
Construiremos agora uma gramática livre de contexto GM tal
que L(M) = L(GM )
Cada estado do AFD M é associado a um símbolo não
terminal da GLC GM , sendo o estado inicial q0 associado ao
símbolo inicial S
Para cada transição de M, cria-se uma regra de produção em
GM
o estado de origem torna-se o não terminal à esquerda da regra
o estado de destino torna-se um não terminal do lado direito
da regra, após o terminal lido na transição
13
Linguagens Regulares x Linguagens Livres de Contexto
Teorema: toda linguagem regular é uma linguagem livre de
contexto
Prova: por construção
Seja L uma LR. Então há um AFD M = (Q, Σ, δ, q0, F ) que a
reconhece.
Construiremos agora uma gramática livre de contexto GM tal
que L(M) = L(GM )
Cada estado do AFD M é associado a um símbolo não
terminal da GLC GM , sendo o estado inicial q0 associado ao
símbolo inicial S
Para cada transição de M, cria-se uma regra de produção em
GM
o estado de origem torna-se o não terminal à esquerda da regra
o estado de destino torna-se um não terminal do lado direito
da regra, após o terminal lido na transição
13
Linguagens Regulares x Linguagens Livres de Contexto
Teorema: toda linguagem regular é uma linguagem livre de
contexto
Prova: por construção
Seja L uma LR. Então há um AFD M = (Q, Σ, δ, q0, F ) que a
reconhece.
Construiremos agora uma gramática livre de contexto GM tal
que L(M) = L(GM )
...
Para cada transição de M, cria-se uma regra de produção em
GM
o estado de origem torna-se o não terminal à esquerda da regra
o estado de destino torna-se um não terminal do lado direito
da regra, após o terminal lido na transição
x
q1
q0
A → xB
A B 14
Linguagens Regulares x Linguagens Livres de Contexto
Teorema: toda linguagem regular é uma linguagem livre de
contexto
Prova: por construção
Seja L uma LR. Então há um AFD M = (Q, Σ, δ, q0, F ) que a
reconhece.
Construiremos agora uma gramática livre de contexto GM tal
que L(M) = L(GM )
...
Cria-se uma regra para cada não terminal associado a um
estado final, onde o lado direito da regra é formado apenas
pela palavra vazia ε
q0
A→ε
A
15
LR x LLC - Exemplo
M
GM
b c
S→
a c
q0 q1 q2 A→
S A B B→
16
LR x LLC - Exemplo
M
GM
b c
S → aA
a c
q0 q1 q2 A → bA|cB
S A B B → cB
17
LR x LLC - Exemplo
M
GM
b c
S → aA
q0
a
q1
c
q2 A → bA|cB|ε
S A B B → cB|ε
18
LR x LLC - Exemplo
0
q0 q1
0
número par de 0's número ímpar de 0's
19
GLC - Formas Normais
Formas normais são representações de GLC com restrições rígidas
na forma das produções, mas sem reduzir o poder de geração das
GLC, exceto pela geração da palavra vazia ε
20
GLC - Formas Normais
Formas normais são representações de GLC com restrições rígidas
na forma das produções, mas sem reduzir o poder de geração das
GLC, exceto pela geração da palavra vazia ε
20
GLC - Formas Normais
Formas normais são representações de GLC com restrições rígidas
na forma das produções, mas sem reduzir o poder de geração das
GLC, exceto pela geração da palavra vazia ε
20
GLC - Formas Normais
Formas normais são representações de GLC com restrições rígidas
na forma das produções, mas sem reduzir o poder de geração das
GLC, exceto pela geração da palavra vazia ε
21
GLC - Formas Normais
21
GLC - Formas Normais
21
GLC - Formas Normais
21
GLC - Formas Normais
21
GLC - Formas Normais
21
GLC - Formas Normais
21
GLC - Formas Normais
21
GLC - Formas Normais - Exemplo
S → ASA|aB
A → B|S
B → b|ε
22
GLC - Formas Normais - Exemplo
S → ASA|aB
A → B|S
B → b|ε
S0 → S
S → ASA|aB
A → B|S
B → b|ε
22
GLC - Formas Normais - Exemplo
S → ASA|aB
A → B|S
B → b|ε
S0 → S
S → ASA|aB
A → B|S
B → b|ε
22
GLC - Formas Normais - Exemplo
S0 → S
S → ASA|aB
A → B|S
B → b|ε
23
GLC - Formas Normais - Exemplo
S0 → S
S → ASA|aB
A → B|S
B → b|ε
S0 → S
S → ASA|aB|AS|SA|S|a
A → B|S
B→b
23
GLC - Formas Normais - Exemplo
S0 → S
S → ASA|aB
A → B|S
B → b|ε
S0 → S
S → ASA|aB|AS|SA|S|a
A → B|S
B→b
23
GLC - Formas Normais - Exemplo
S0 → S
S → ASA|aB|AS|SA|S|a
A → B|S
B→b
24
GLC - Formas Normais - Exemplo
S0 → S
S → ASA|aB|AS|SA|S|a
A → B|S
B→b
24
GLC - Formas Normais - Exemplo
S0 → S
S → ASA|aB|AS|SA|S|a
A → B|S
B→b
S0 →
S → ASA|aB|AS|SA|a
A→
B→b
24
GLC - Formas Normais - Exemplo
S0 → S
S → ASA|aB|AS|SA|S|a
A → B|S
B→b
S0 →
S → ASA|aB|AS|SA|a
A→
B→b
24
GLC - Formas Normais - Exemplo
S0 → S
S → ASA|aB|AS|SA|S|a
A → B|S
B→b
S 0 → ASA | aB | AS | SA | a
S → ASA|aB|AS|SA|a
A → b | ASA | aB | AS | SA | a
B→b
25
GLC - Formas Normais - Exemplo
S0 → S
S → ASA|aB|AS|SA|S|a
A → B|S
B→b
S 0 → ASA | aB | AS | SA | a
S → ASA|aB|AS|SA|a
A → b | ASA | aB | AS | SA | a
B→b
25
GLC - Formas Normais - Exemplo
S 0 → ASA | aB | AS | SA | a
S → ASA|aB|AS|SA|a
A → b | ASA | aB | AS | SA | a
B→b
26
GLC - Formas Normais - Exemplo
S 0 → ASA | aB | AS | SA | a
S → ASA|aB|AS|SA|a
A → b | ASA | aB | AS | SA | a
B→b
26
GLC - Formas Normais - Exemplo
S 0 → ASA | aB | AS | SA | a
S → ASA|aB|AS|SA|a
A → b | ASA | aB | AS | SA | a
B→b
S → aB S → A0 B
A0 → a
26
GLC - Formas Normais - Exemplo
S 0 → ASA | aB | AS | SA | a
S → ASA|aB|AS|SA|a
A → b | ASA | aB | AS | SA | a
B→b
S → aB S → A0 B
A0 → a
26
GLC - Formas Normais - Exemplo
S 0 → ASA | aB | AS | SA | a
S → ASA|aB|AS|SA|a
A → b | ASA | aB | AS | SA | a
B→b
S 0 → ASA S 0 → CA
C → AS
27
GLC - Formas Normais - Exemplo
S 0 → ASA | aB | AS | SA | a
S → ASA|aB|AS|SA|a
A → b | ASA | aB | AS | SA | a
B→b
Resultado
S → aB S → A0 B
A0 → a
S 0 → CA|A0 B|AS|SA|a
C → AS
A0 → a
S 0 → ASA S 0 → CA S → CA|A0 B|AS|SA|a
C → AS A → b|CA|A0 B|AS|SA|a
B→b
28
GLC - Formas Normais - Exemplo
S 0 → ASA | aB | AS | SA | a
S → ASA|aB|AS|SA|a
A → b | ASA | aB | AS | SA | a
B→b
Resultado
S → aB S → A0 B
A0 → a
S 0 → CA|A0 B|AS|SA|a
C → AS
A0 → a
S 0 → ASA S 0 → CA S → CA|A0 B|AS|SA|a
C → AS A → b|CA|A0 B|AS|SA|a
B→b
28
GLC - Formas Normais
Tente colocar as gramáticas a seguir na forma normal de Chomsky
S → ABC |aB
B → aB|a
A → bA|ε
C → AB|ε
S → AbaC
A → BC
B → b|ε
C → D|ε
D→d
S → Aa|B
B → A|bb
A → a|bc|B
29
Autômatos com Pilha (AP)
Um autômato com pilha (AP) é um autômato finito (AF) com uma
memória auxiliar (uma pilha). Um AP é um reconhecedor de
linguagens livres de contexto.
31
Autômatos com Pilha (AP)
AP = (Q, Σ, ∆, δ, q0, Z0 , F )
32
Autômatos com Pilha (AP)
33
Autômatos com Pilha (AP)
Um AP pode aceitar por pilha vazia ou estado final
Pilha vazia
A pilha inicia com o símbolo de fundo de pilha
Aceitação ocorre quando a pilha fica vazia (quando o símbolo
de fundo da pilha é removido). Não é necessário possuir
estado final.
∗
L(M) = {w ∈ Σ∗ |(q0, w , Z0 ) →
− (r , ε, ε) e r ∈ Q}
Estado final
Aceitação ocorre quando um estado final é alcançado e a
entrada foi toda consumida. Não é necessário que a pilha
esteja vazia.
∗
L(M) = {w ∈ Σ∗ |(q0, w , Z0 ) →
− (r , ε, γ) e r ∈ F e γ ∈ ∆∗ }
34
Autômatos com Pilha (AP)
(q, a, x) → (r , y )
a,x;y
q0 q1
q r
35
Autômatos com Pilha (AP)
Notações:
a, x → xyz
a, x, xyz
a, x; xyz
a, x/xyz
36
Autômatos com Pilha (AP)
37
Autômatos com Pilha (AP)
L = {w |w ∈ {0, 1}∗ e w = 0n 1n e n ≥ 1}
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 000111
38
Autômatos com Pilha (AP)
L = {w |w ∈ {0, 1}∗ e w = 0n 1n e n ≥ 1}
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 000111
Pilha Entrada
0 0 0 1 1 1
↑
Z ←
38
Autômatos com Pilha (AP)
L = {w |w ∈ {0, 1}∗ e w = 0n 1n e n ≥ 1}
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 000111
Pilha Entrada
0 0 0 1 1 1
↑
Z ←
38
Autômatos com Pilha (AP)
L = {w |w ∈ {0, 1}∗ e w = 0n 1n e n ≥ 1}
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 000111
Pilha Entrada
0 0 0 1 1 1
↑
0 ←
Z
39
Autômatos com Pilha (AP)
L = {w |w ∈ {0, 1}∗ e w = 0n 1n e n ≥ 1}
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 000111
Pilha Entrada
0 0 0 1 1 1
↑
0 ←
0
Z
40
Autômatos com Pilha (AP)
L = {w |w ∈ {0, 1}∗ e w = 0n 1n e n ≥ 1}
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 000111
Pilha Entrada
0 0 0 1 1 1
0 ← ↑
0
0
Z
41
Autômatos com Pilha (AP)
L = {w |w ∈ {0, 1}∗ e w = 0n 1n e n ≥ 1}
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 000111
Pilha Entrada
0 0 0 1 1 1
↑
0 ←
0
Z
42
Autômatos com Pilha (AP)
L = {w |w ∈ {0, 1}∗ e w = 0n 1n e n ≥ 1}
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 000111
Pilha Entrada
0 0 0 1 1 1
↑
0 ←
Z
43
Autômatos com Pilha (AP)
L = {w |w ∈ {0, 1}∗ e w = 0n 1n e n ≥ 1}
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 000111
Pilha Entrada
0 0 0 1 1 1
X
Z ←
44
Autômatos com Pilha (AP)
L = {w |w ∈ {0, 1}∗ e w = 0n 1n e n ≥ 1}
0 , x ; xx 0 , x ; xx λ,Z;λ
0 , Z ; xZ 1,x;λ 0 , Z ; xZ 1,x;λ
46
Autômatos com Pilha (AP)
L = {ww R |w ∈ {0, 1}∗ e |ww R | é par }
Antes de tentar a linguagem acima, vamos tentar:
L = {w 2w R |w ∈ {0, 1}∗ e |ww R | é par }
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 1002001
46
Autômatos com Pilha (AP)
L = {ww R |w ∈ {0, 1}∗ e |ww R | é par }
Antes de tentar a linguagem acima, vamos tentar:
L = {w 2w R |w ∈ {0, 1}∗ e |ww R | é par }
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 1002001
Pilha Entrada
1 0 0 2 0 0 1
↑
Z ←
46
Autômatos com Pilha (AP)
L = {ww R |w ∈ {0, 1}∗ e |ww R | é par }
Antes de tentar a linguagem acima, vamos tentar:
L = {w 2w R |w ∈ {0, 1}∗ e |ww R | é par }
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 1002001
Pilha Entrada
1 0 0 2 0 0 1
↑
Z ←
46
Autômatos com Pilha (AP)
L = {ww R |w ∈ {0, 1}∗ e |ww R | é par }
Antes de tentar a linguagem acima, vamos tentar:
L = {w 2w R |w ∈ {0, 1}∗ e |ww R | é par }
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 1002001
Pilha Entrada
1 0 0 2 0 0 1
↑
1 ←
Z
47
Autômatos com Pilha (AP)
L = {ww R |w ∈ {0, 1}∗ e |ww R | é par }
Antes de tentar a linguagem acima, vamos tentar:
L = {w 2w R |w ∈ {0, 1}∗ e |ww R | é par }
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 1002001
Pilha Entrada
1 0 0 2 0 0 1
↑
0 ←
1
Z
48
Autômatos com Pilha (AP)
L = {ww R |w ∈ {0, 1}∗ e |ww R | é par }
Antes de tentar a linguagem acima, vamos tentar:
L = {w 2w R |w ∈ {0, 1}∗ e |ww R | é par }
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 1002001
Pilha Entrada
1 0 0 2 0 0 1
0 ← ↑
0
1
Z
49
Autômatos com Pilha (AP)
L = {ww R |w ∈ {0, 1}∗ e |ww R | é par }
Antes de tentar a linguagem acima, vamos tentar:
L = {w 2w R |w ∈ {0, 1}∗ e |ww R | é par }
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 1002001
Pilha Entrada
1 0 0 2 0 0 1
0 ← ↑
0
1
Z
50
Autômatos com Pilha (AP)
L = {ww R |w ∈ {0, 1}∗ e |ww R | é par }
Antes de tentar a linguagem acima, vamos tentar:
L = {w 2w R |w ∈ {0, 1}∗ e |ww R | é par }
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 1002001
Pilha Entrada
1 0 0 2 0 0 1
↑
0 ←
1
Z
51
Autômatos com Pilha (AP)
L = {ww R |w ∈ {0, 1}∗ e |ww R | é par }
Antes de tentar a linguagem acima, vamos tentar:
L = {w 2w R |w ∈ {0, 1}∗ e |ww R | é par }
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 1002001
Pilha Entrada
1 0 0 2 0 0 1
↑
1 ←
Z
52
Autômatos com Pilha (AP)
L = {ww R |w ∈ {0, 1}∗ e |ww R | é par }
Antes de tentar a linguagem acima, vamos tentar:
L = {w 2w R |w ∈ {0, 1}∗ e |ww R | é par }
Intuição:
Vamos simular o comportamento do AP para a entrada
w = 1002001
Pilha Entrada
1 0 0 2 0 0 1
X
Z ←
53
Autômatos com Pilha (AP)
1 , # ; y# 1,y;λ
0 , # ; x# 0,x;λ
2,#;# λ,Z;Z
q0 q1 q2
push pop
54
Autômatos com Pilha (AP)
L = {w 2w R |w ∈ {0, 1}∗ e |ww R | é par }
1 , # ; y# 1,y;λ
0 , # ; x# 0,x;λ
2,#;# λ,Z;Z
q0 q1 q2
push pop
1 , # ; y# 1,y;λ
0 , # ; x# 0,x;λ
λ,#;# λ,Z;Z
q0 q1 q2
push pop
55
Autômatos com Pilha (AP)
L = {w |w ∈ {0, 1}∗ e w = w R }
56
Autômatos com Pilha (AP)
L = {w |w ∈ {0, 1}∗ e w = w R }
1 , # ; y# 1,y;λ
0 , # ; x# 0,x;λ
1,#;#
0,#;#
λ,#;# λ,Z;Z
q0 q1 q2
push pop
57
Autômatos com Pilha (AP)
Desafios
58
Autômatos com Pilha (AP)
L = {ww R |w ∈ {0, 1}∗ }
59
Autômatos com Pilha (AP)
#,Z;Z
q1 q2
Z #,Z;Z
# ,Z;
q0
0,#;#
1,#;#
λ
,Z
1 , # ; 1#
;Z
0 , # ; 0#
q4
#
0,#; 0,#;λ
1, 1,#;λ
#;
#
q3
λ,Z;Z
1, q6 q7
#; 0,#;#
#
1,#;# #
0 ,#;
q5
60
Autômatos com Pilha (AP)
#,Z;Z
q1 q2
Z #,Z;Z
# ,Z;
palavras de tamanho ímpar
q0
0,#;#
empilha K 1,#;#
símbolos
λ
,Z
1 , # ; 1# desempilha K
;Z
0 , # ; 0#
q4 símbolos
#
0,#; 0,#;λ
1, 1,#;λ
#;
#
q3 consome L
símbolos λ,Z;Z
1, q6 q7
#; 0,#;#
#
1,#;# #
0 ,#;
adivinha onde adivinha onde
é diferente é diferente
q5
61
Autômatos com Pilha (AP)
L = {ww |w ∈ {0, 1}∗ }
63
Autômatos com Pilha (AP)
64
Ling. Não Livres de Contexto - Lema do Bombeamento
65
Ling. Não Livres de Contexto - Lema do Bombeamento
65
Ling. Não Livres de Contexto - Lema do Bombeamento
65
Ling. Não Livres de Contexto - Lema do Bombeamento
65
Ling. Não Livres de Contexto - Lema do Bombeamento
66
Ling. Não Livres de Contexto - Lema do Bombeamento
66
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {a, b, c}∗ e w = an b n c n e n ≥ 1}
Vamos mostrar que L não é uma LLC.
Prova: por contradição
67
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {a, b, c}∗ e w = an b n c n e n ≥ 1}
Vamos mostrar que L não é uma LLC.
Prova: por contradição
67
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {a, b, c}∗ e w = an b n c n e n ≥ 1}
Vamos mostrar que L não é uma LLC.
Prova: por contradição
67
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {a, b, c}∗ e w = an b n c n e n ≥ 1}
Vamos mostrar que L não é uma LLC.
Prova: por contradição
67
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {a, b, c}∗ e w = an b n c n e n ≥ 1}
Vamos mostrar que L não é uma LLC.
Prova: por contradição
67
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {a, b, c}∗ e w = an b n c n e n ≥ 1}
Vamos mostrar que L não é uma LLC.
Prova: por contradição
67
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {a, b, c}∗ e w = an b n c n e n ≥ 1}
Vamos mostrar que L não é uma LLC.
Prova: por contradição
67
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {a, b, c}∗ e w = an b n c n e n ≥ 1}
Vamos mostrar que L não é uma LLC.
Prova: por contradição
68
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {a, b, c}∗ e w = an b n c n e n ≥ 1}
Vamos mostrar que L não é uma LLC.
Prova: por contradição
68
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {a, b, c}∗ e w = an b n c n e n ≥ 1}
Vamos mostrar que L não é uma LLC.
Prova: por contradição
68
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {a, b, c}∗ e w = an b n c n e n ≥ 1}
Vamos mostrar que L não é uma LLC.
Prova: por contradição
69
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {a, b, c}∗ e w = an b n c n e n ≥ 1}
Vamos mostrar que L não é uma LLC.
Prova: por contradição
69
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {a, b, c}∗ e w = an b n c n e n ≥ 1}
Vamos mostrar que L não é uma LLC.
Prova: por contradição
69
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {a, b, c}∗ e w = an b n c n e n ≥ 1}
Vamos mostrar que L não é uma LLC.
Prova: por contradição
70
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {a, b, c}∗ e w = an b n c n e n ≥ 1}
Vamos mostrar que L não é uma LLC.
Prova: por contradição
70
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {a, b, c}∗ e w = an b n c n e n ≥ 1}
Vamos mostrar que L não é uma LLC.
Prova: por contradição
70
Ling. Não Livres de Contexto - Lema do Bombeamento
Paradigma do adversário.
71
Ling. Não Livres de Contexto - Lema do Bombeamento
Paradigma do adversário.
Paradigma do adversário.
73
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
Vamos mostrar que L não é livre de contexto utilizando o
paradigma do adversário
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=k
73
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
Vamos mostrar que L não é livre de contexto utilizando o
paradigma do adversário
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=k
2 Provador: ∃w ∈ L, onde |w | ≥ k
73
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
Vamos mostrar que L não é livre de contexto utilizando o
paradigma do adversário
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=k
2 Provador: ∃w ∈ L, onde |w | ≥ k
w = 0k 10k 1
73
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
Vamos mostrar que L não é livre de contexto utilizando o
paradigma do adversário
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=k
2 Provador: ∃w ∈ L, onde |w | ≥ k
w = 0k 10k 1
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
73
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
Vamos mostrar que L não é livre de contexto utilizando o
paradigma do adversário
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=k
2 Provador: ∃w ∈ L, onde |w | ≥ k
w = 0k 10k 1
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
u = 0k−1 , v = 0, x = 1, y = 0, z = 0k−1 1
73
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
Vamos mostrar que L não é livre de contexto utilizando o
paradigma do adversário
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=k
2 Provador: ∃w ∈ L, onde |w | ≥ k
w = 0k 10k 1
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
u = 0k−1 , v = 0, x = 1, y = 0, z = 0k−1 1
4 Provador: ∃i ≥ 0, uv i xy i z ∈
/L
Note que qualquer i que o provador tentar escolher, tem-se
que v e y serão repetidos zero ou mais vezes, mas a palavra
resultante sempre obedecerá o formato ww .
73
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
Vamos mostrar que L não é livre de contexto utilizando o
paradigma do adversário
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=k
2 Provador: ∃w ∈ L, onde |w | ≥ k
w = 0k 10k 1
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
u = 0k−1 , v = 0, x = 1, y = 0, z = 0k−1 1
4 Provador: ∃i ≥ 0, uv i xy i z ∈
/L
Note que qualquer i que o provador tentar escolher, tem-se
que v e y serão repetidos zero ou mais vezes, mas a palavra
resultante sempre obedecerá o formato ww .
73
Ling. Não Livres de Contexto - Lema do Bombeamento
...
74
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
Vamos tentar novamente.
1 Adversário: ∀n, onde n é uma constante inteira qualquer
75
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
Vamos tentar novamente.
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=k
75
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
Vamos tentar novamente.
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=k
2 Provador: ∃w ∈ L, onde |w | ≥ k
75
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
Vamos tentar novamente.
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=k
2 Provador: ∃w ∈ L, onde |w | ≥ k
w = 0k 1k 0k 1k
75
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
Vamos tentar novamente.
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=k
2 Provador: ∃w ∈ L, onde |w | ≥ k
w = 0k 1k 0k 1k
75
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
Vamos tentar novamente.
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=k
2 Provador: ∃w ∈ L, onde |w | ≥ k
w = 0k 1k 0k 1k
75
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
Vamos tentar novamente.
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=k
2 Provador: ∃w ∈ L, onde |w | ≥ k
w = 0k 1k 0k 1k
75
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
Vamos tentar novamente.
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=k
2 Provador: ∃w ∈ L, onde |w | ≥ k
w = 0k 1k 0k 1k
75
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
Vamos tentar novamente.
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=k
2 Provador: ∃w ∈ L, onde |w | ≥ k
w = 0k 1k 0k 1k
2 Provador: ∃w ∈ L, onde |w | ≥ k
w = 0k 1k 0k 1k
4 Provador: ∃i ≥ 0, uv i xy i z ∈
/L
76
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
1 Adversário: n = k
2 Provador: w = 0k 1k 0k 1k
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
Caso 1: vxy pode possuir apenas um único símbolo (ou tudo 0
ou tudo 1)
4 Provador: ∃i ≥ 0, uv i xy i z ∈
/L
Note que se i = 0 temos que ao menos um símbolo 0 ou um
símbolo 1 será removido da palavra.
76
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
1 Adversário: n = k
2 Provador: w = 0k 1k 0k 1k
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
Caso 1: vxy pode possuir apenas um único símbolo (ou tudo 0
ou tudo 1)
4 Provador: ∃i ≥ 0, uv i xy i z ∈
/L
Note que se i = 0 temos que ao menos um símbolo 0 ou um
símbolo 1 será removido da palavra.
Assim, a primeira parte da palavra será certamente diferente
da segunda parte da palavra.
76
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
1 Adversário: n = k
2 Provador: w = 0k 1k 0k 1k
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
Caso 1: vxy pode possuir apenas um único símbolo (ou tudo 0
ou tudo 1)
4 Provador: ∃i ≥ 0, uv i xy i z ∈
/L
Note que se i = 0 temos que ao menos um símbolo 0 ou um
símbolo 1 será removido da palavra.
Assim, a primeira parte da palavra será certamente diferente
da segunda parte da palavra.
76
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
1 Adversário: n = k
2 Provador: w = 0k 1k 0k 1k
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
Caso 2: vxy pode possuir dois símbolos diferentes (0 ou 1)
4 Provador: ∃i ≥ 0, uv i xy i z ∈
/L
77
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
1 Adversário: n = k
2 Provador: w = 0k 1k 0k 1k
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
Caso 2: vxy pode possuir dois símbolos diferentes (0 ou 1)
4 Provador: ∃i ≥ 0, uv i xy i z ∈
/L
Note que novamente se i = 0 temos que ao menos um símbolo
0 ou um símbolo 1 será removido da palavra.
77
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
1 Adversário: n = k
2 Provador: w = 0k 1k 0k 1k
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
Caso 2: vxy pode possuir dois símbolos diferentes (0 ou 1)
4 Provador: ∃i ≥ 0, uv i xy i z ∈
/L
Note que novamente se i = 0 temos que ao menos um símbolo
0 ou um símbolo 1 será removido da palavra.
Assim, a primeira parte da palavra será certamente diferente
da segunda parte da palavra.
77
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {ww |w ∈ {0, 1}∗ }
1 Adversário: n = k
2 Provador: w = 0k 1k 0k 1k
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
Caso 2: vxy pode possuir dois símbolos diferentes (0 ou 1)
4 Provador: ∃i ≥ 0, uv i xy i z ∈
/L
Note que novamente se i = 0 temos que ao menos um símbolo
0 ou um símbolo 1 será removido da palavra.
Assim, a primeira parte da palavra será certamente diferente
da segunda parte da palavra.
77
Ling. Não Livres de Contexto - Lema do Bombeamento
78
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {0}∗ e w = 0n e n é primo }
Vamos mostrar que L não é livre de contexto
1 Adversário: ∀n, onde n é uma constante inteira qualquer
79
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {0}∗ e w = 0n e n é primo }
Vamos mostrar que L não é livre de contexto
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=t
79
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {0}∗ e w = 0n e n é primo }
Vamos mostrar que L não é livre de contexto
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=t
2 Provador: ∃w ∈ L, onde |w | ≥ t
79
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {0}∗ e w = 0n e n é primo }
Vamos mostrar que L não é livre de contexto
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=t
2 Provador: ∃w ∈ L, onde |w | ≥ t
w = 0p , com p sendo primo e |0p | ≥ t
79
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {0}∗ e w = 0n e n é primo }
Vamos mostrar que L não é livre de contexto
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=t
2 Provador: ∃w ∈ L, onde |w | ≥ t
w = 0p , com p sendo primo e |0p | ≥ t
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
79
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {0}∗ e w = 0n e n é primo }
Vamos mostrar que L não é livre de contexto
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=t
2 Provador: ∃w ∈ L, onde |w | ≥ t
w = 0p , com p sendo primo e |0p | ≥ t
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
Note que para qualquer quebra que o adversário fizer, temos
que v = 0k e y = 0m , com k + m ≥ 1
79
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {0}∗ e w = 0n e n é primo }
Vamos mostrar que L não é livre de contexto
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=t
2 Provador: ∃w ∈ L, onde |w | ≥ t
w = 0p , com p sendo primo e |0p | ≥ t
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
Note que para qualquer quebra que o adversário fizer, temos
que v = 0k e y = 0m , com k + m ≥ 1
4 Provador: ∃i ≥ 0, uv i xy i z ∈
/L
79
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {0}∗ e w = 0n e n é primo }
Vamos mostrar que L não é livre de contexto
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=t
2 Provador: ∃w ∈ L, onde |w | ≥ t
w = 0p , com p sendo primo e |0p | ≥ t
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
Note que para qualquer quebra que o adversário fizer, temos
que v = 0k e y = 0m , com k + m ≥ 1
4 Provador: ∃i ≥ 0, uv i xy i z ∈
/L
Note que para i = 1 + p temos que |uvxyz| = p, |v p | = kp,
|y p | = mp
79
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {0}∗ e w = 0n e n é primo }
Vamos mostrar que L não é livre de contexto
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=t
2 Provador: ∃w ∈ L, onde |w | ≥ t
w = 0p , com p sendo primo e |0p | ≥ t
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
Note que para qualquer quebra que o adversário fizer, temos
que v = 0k e y = 0m , com k + m ≥ 1
4 Provador: ∃i ≥ 0, uv i xy i z ∈
/L
Note que para i = 1 + p temos que |uvxyz| = p, |v p | = kp,
|y p | = mp
Ou seja, |uv 1+p xy 1+p z| = p + kp + mp = p(1 + k + m)
79
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {0}∗ e w = 0n e n é primo }
Vamos mostrar que L não é livre de contexto
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=t
2 Provador: ∃w ∈ L, onde |w | ≥ t
w = 0p , com p sendo primo e |0p | ≥ t
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
Note que para qualquer quebra que o adversário fizer, temos
que v = 0k e y = 0m , com k + m ≥ 1
4 Provador: ∃i ≥ 0, uv i xy i z ∈
/L
Note que para i = 1 + p temos que |uvxyz| = p, |v p | = kp,
|y p | = mp
Ou seja, |uv 1+p xy 1+p z| = p + kp + mp = p(1 + k + m)
Mas, 0p(1+k+m) ∈ / L, pois p(1 + k + m) é divisível por p e
(1 + k + m) e portanto L não é livre de contexto
79
Ling. Não Livres de Contexto - Lema do Bombeamento
L = {w |w ∈ {0}∗ e w = 0n e n é primo }
Vamos mostrar que L não é livre de contexto
1 Adversário: ∀n, onde n é uma constante inteira qualquer
n=t
2 Provador: ∃w ∈ L, onde |w | ≥ t
w = 0p , com p sendo primo e |0p | ≥ t
3 Adversário: ∀u, v , x, y , z, tal que w = uvxyz, |vxy | ≤ n,
|vy | ≥ 1
Note que para qualquer quebra que o adversário fizer, temos
que v = 0k e y = 0m , com k + m ≥ 1
4 Provador: ∃i ≥ 0, uv i xy i z ∈
/L
Note que para i = 1 + p temos que |uvxyz| = p, |v p | = kp,
|y p | = mp
Ou seja, |uv 1+p xy 1+p z| = p + kp + mp = p(1 + k + m)
Mas, 0p(1+k+m) ∈ / L, pois p(1 + k + m) é divisível por p e
(1 + k + m) e portanto L não é livre de contexto
79
Conclusão
Material de apoio
Livro Sipser, Capítulo 2
Livro Hopcroft, Capítulos 5,6,7
80