• Nenhum resultado encontrado

Draft-v0.2. Gramáticas Independentes do Contexto O funcionamento de uma CFG Derivação de uma palavra

N/A
N/A
Protected

Academic year: 2021

Share "Draft-v0.2. Gramáticas Independentes do Contexto O funcionamento de uma CFG Derivação de uma palavra"

Copied!
11
0
0

Texto

(1)

Dr

aft

-v0.

2

10

Gramáticas Independentes do Contexto

Como vimos nos capítulos anteriores, apesar da classe das Linguagens Regulares serem particu-larmente “bem comportadas” tanto em termos de complexidade dos seus algoritmos associados, como em termos da decidibilidade, isto é da existência de algoritmos, da maioria dos seus problemas associados, as suas limitações de expressividade não permitem representar linguagens tão simples como a dos palíndromos de um dado alfabeto. Neste capítulo iremos introduzir a noção de gramática formal e com ela uma nova classe de linguagens formais: as Linguagens Independentes de Contexto.

Definição 10.1 (Gramática Independente de Contexto ou CFG) Uma gramática in-dependente de contexto, ou CFG (do inglês “Context Free Grammar”), é um quadruplo ordenado hV, ⌃, P, Si, em que

V é um conjunto finito, não vazio que chamamos conjunto de símbolos não terminais; ⌃ é um conjunto finito, não vazio que designamos por Alfabeto, ou por conjunto de

símbolos terminais;

P é um subconjunto finito, não vazio, de V ⇥ (⌃ [ V)? a que chamamos o conjunto das

produções;

S com (S 2 V) designa o chamado símbolo inicial da gramática.

10.1 O funcionamento de uma CFG

10.1.1 Derivação de uma palavra

Seja G = hV, ⌃, P.Si uma CFG, ↵, , 2 (⌃ [ V)?e A 2 V. Dizemos que que de ↵ se deriva

por G, num passo, de ↵A e escrevemos

↵A )G ↵

se A ! for uma produção de G. Da mesma forma dizemos que se deriva por G, em n passos, de ↵, e escrevemos

↵ )n G ,

se

(2)

Dr

aft

-v0.

2

para algumas palavras ↵1, . . . , ↵n-12 (⌃ [ V)?.

Sejam ↵, 2 (⌃ [ V)?, dizemos se deriva de ↵ por G, e escrevemos

↵ )? G

se existir n > 0 tal que

↵ )n G .

Definição 10.2 (linguagem definida por uma CFG) Seja G = hV, ⌃, P, Si uma CFG. A linguagem definida por G é

L(G) = {w 2 ⌃ | S )? G w}.

Exemplo 10.3 Tomemos a linguagem L = {0n1n | n 2 N} que sabemos não ser uma

linguagem regular. Esta é, no entanto, a linguagem gerada pela gramática G=h{S}, {0, 1}, {S ! ", S ! 0S1}, Si.

Normalmente, representamos, de forma muito mais legível, uma gramática, simplesmente pelo conjunto das suas produções, sendo o a primeira variável referida o símbolo inicial da gramática, desde que a diferenciação entre o conjunto dos símbolos terminais e o conjunto dos símbolos não terminais seja evidente. Da mesma forma, e para simplificar a leitura, representamos por A ! ↵0 | ↵1 | · · · | ↵n o conjunto das produções {A ! ↵0, A !

↵1, . . . , A! ↵n}. Neste caso, a gramática G seria apresentada como

S ! " | 0S1.

A primeira produção, S ! ", estabelece que a palavra vazia, ", pertence à linguagem L. A segunda produção, S ! 0S1, estabelece que se tomarmos uma palavra da linguagem L e concatenarmos um 0 à esquerda e um 1 a direita obtemos uma palavra de L.

Para mostrar que L = L(G), comecemos por provar que L ◆ L(G). Seja w 2 L(G), isso significa que S )?

Gw, ou seja

((9n) S )n Gw).

Provemos então por indução sobre n que w 2 L. Se n = 1 isso significa que só é aplicada uma produção, e o resultado é uma palavra de ⌃, ora a única forma de uma só produção produzir uma palavra sem símbolos não terminais é a da produção aplicada ser S ! ", o que implica que w = ", e " 2 L. Suponhamos então que, para qualquer palavra w, se S )n

Gwentão w 2 L, e mostremos que então podemos concluir que se S )n+1G w0 isso

implica que w02 L. Como n + 1 6= 1, podemos concluir qua a primeira produção aplicada

não pode ser aquela que produz " pelo que temos:

S)G0S1)nG0w001= w0.

Ou seja, temos S )n

G w00, para algum w00. Mas, pela hipótese de indução, isso implica

que w002 L. Como w0= 0w001, e w002 L temos que w02 L, obrigatoriamente, e, portanto,

todas as palavras geradas pela gramática G são palavras da linguagem L.

Falta, então, mostrar que todas as palavras da linguagem L são geradas por G, ou seja L ✓ L(G). Primeiro observemos que todas as palavras de L têm comprimento par, ou seja que para qualquer palavra w de L, |w| = 2n para algum n. Procedamos então sobre indução sobre o comprimento das palavras de L. Se esse comprimento for 0, então a palavra em questão é a palavra vazia, ", que como vimos é gerada por G. Suponhamos que todas as palavras de L de tamanho 2n são geradas por G e seja w uma palavra de L com |w| = 2(n + 1). Mas então w = 0n+11n+1, portanto w = 0w01 com w0= 0n1n. Como

|w0| = 2n estamos nas condições da hipótese de indução, pelo que podemos garantir que w02 L(G), ou seja S )?

Gw0. Mas então

S)G0S1)?G0w01= w,

(3)

Dr

aft

-v0.

2

10.1.2 Árvores de Derivação

Uma outra forma de apresentar uma derivação de uma palavra por uma árvore é usando, o que se costuma designar por, uma árvore de derivação. Uma árvore de derivação é uma árvore, no sentido de um grafo, que tem como raíz o símbolo inicial da gramática. De cada símbolo não terminal E tem como filhos os nós que representam símbolos Eide uma produção da gramática

S ! E0E1· · · En. A palavra cuja derivação é representada pela árvore, é aquela constituída

pelos símbolos que constam das folhas da árvore, lidas da esquerda para a direita. Consideremos, por exemplo, a seguinte gramática:

S ! (S) | S + S | S ⇥ S | A A ! 0 | 1.

Uma árvore de derivação da palavra (1 + 0) ⇥ 1 é: S S ( S S 1 + S 0 ) ⇥ S 1 Exercício 59

1. Escreve gramáticas para as seguintes linguagens independentes de contexto: a) Linguagem formada pelos palíndromos de alfabeto {0, 1}.

b) aibjck : i6= j _ j 6= k

2. Dada a gramática

S ! aB | bA A ! a | aS | bAA

B ! b | bS | aBB. a) Identifica a linguagem que a gramática gera.

b) Para a palavra aaabbabbba encontra uma derivação à esquerda. c) Para a mesma palavra encontra uma derivação à direita.

d) Para a mesma palavra escreve uma árvore de derivação.

* Exercício 60 Escreve uma CFG para a linguagem complementar de ww : w 2 {0, 1}? .

10.2 Simplificação de gramáticas

Lema 10.4 Dada uma CFG G = hV, ⌃, P, Si, representando uma linguagem não vazia, podemos encontrar uma gramática G0=hV0, ⌃, P0, Si em que, ((8A 2 V0)(9w 2 ⌃?) A)?

G0

w).

Dem. Todos os símbolos não terminais A 2 V para os quais existe uma produção da forma A! w, para alguma palavra w 2 ⌃?, têm claramente lugar em V0. Se a produção

(4)

Dr

aft

-v0.

2

terminais que já se encontrem incluídos em V0, isso faz que possamos incluir A em

V0 também. O conjunto V0 pode ser obtido como o fecho do processo atrás descrito. Depois de obtido V0 podemos remover de P todas as produções em que tomem lugar

símbolos não terminais não constantes de V0, obtendo assim P0.

Lema 10.5 Dada um CFG G = hV, ⌃, P, Si podemos encontrar uma gramática equivalente G0=hV0, ⌃0, P0, Si tal que para cada X 2 V0[ ⌃ existem ↵, 2 (V0[ ⌃)? tal que S )?↵X .

Dem. O conjunto V0 [ ⌃, pode ser construído por um processo iterativo. Colocamos,

primeiramente, S em V0. Se A é colocado em V0 e A ! ↵

1 | ↵2 | · · · | ↵n, então

adicionamos todas as variáveis de ↵1, ↵2, . . . , ↵n a V0, assim como adicionar os

terminais de ↵1, ↵2, . . . , ↵n a V0. P0 é o conjunto das produções que contêm símbolos

somente de V0[ ⌃0.

10.3 Forma Normal de Chomsky

Para muitas das demonstrações sobre as CFL que assentam sobre a sua representação por uma CFG é conveniente apresentar esta última sob uma forma binária. Essa forma é a chamada Forma Normal de Chomsky em que a gramática tem somente produções da forma

A ! BC em que B e C são símbolos não terminais; ou da forma

A ! a

em que a é um símbolo terminal. Se S for o símbolo inicial, poderá haver uma produção da forma

S ! ".

Teorema 10.6 (Forma Normal de Chomsky) Qualquer linguagem independente do con-texto admite uma gramática que a gera e que se encontra na Forma Normal de Chomsky, ou seja, todas as suas produções são da forma A ! BC ou A ! a com A, B, C símbolos não terminais e a símbolo terminal, com uma eventual produção S ! " se S for o símbolo inicial.

Dem. Seja G = hV, ⌃, P.Si uma CFG. Começamos por introduzir um novo símbolo não terminal S0, fazemo-lo o novo símbolo inicial e acrescentamos uma produção S0 ! S, sendo S o símbolo inicial original. Isto garante que o símbolo inicial não ocorre em nenhum membro direito de uma produção da gramática. A gramática resultante é trivialmente equivalente à original.

Seguidamente eliminamos todas as produções-" não iniciais, ou seja toda as produções do tipo A ! ", em que A 2 V e A não inicial. Para tal procedemos da forma seguinte. Para cada produção A ! " (com A não inicial), removemos tal produção e para todas as outras produções, por cada ocorrência do símbolo A no lado direito de uma produção (R ! uAv) acrescentamos uma produção em que essa ocorrência de A foi removida (R ! uv). Se a produção contiver somente A como membro direito da produção (R ! A) então acrescentamos uma produção-" (R ! ") a menos que essa produção já tivesse anteriormente sido alvo de remoção por este processo. É fácil ver que cada uma destas transformações preservam a linguagem definida pela gramática. No fim obtemos uma gramática equivalente à inicial sem produções-", a menos de uma eventual produção-" inicial.

(5)

Dr

aft

-v0.

2

Eliminam-se as produções unitárias. Para cada produção da forma A ! B, remove-se a produção da gramática e para cada produção B ! u acrescenta-se uma produção A ! u, a menos que esta produção fosse uma que tivesse sido anteriormente removida por este processo. Estas transformações preservam a linguagem gerada pela gramática, pelo que no fim teremos uma gramática sem produções unitárias equivalente à gramática original. Finalmente rescrevem-se as produções para o formato desejado. Para cada produção da forma A ! u1u2· · · uk, com k 3 sendo os ui símbolos não terminais ou símbolos

terminais, substitui-se pelas produções

A! u1A1, A1! u2A2, . . . , Ak-2! uk-1uk,

com Ai novos símbolos não terminais. Para cada ui 2 ⌃, substituímos ui por um novo

símbolo não terminal Ui e acrescentamos a produção Ui ! ui. Mais uma vez, cada

uma desta transformações preserva a linguagem aceite pela gramática, pelo que no fim do processo temos uma gramática equivalente à original, na Forma Normal de Chomsky. ⇤ Exemplo 10.7 Consideremos a gramática seguinte, e utilizemos o processo descrito na de-monstração anterior para obter uma gramática equivalente, na Forma Normal de Chomsky

S ! ASA | aB A ! B | S

B ! b | ". Introduzimos um novo símbolo inicial,

S0 ! S S ! ASA | aB A ! B | S B ! b | ". Eliminamos o " S0 ! S S ! ASA | aB| a A ! B | S| " B ! b |".

Agora temos que eliminar o " que acabamos de introduzir S0 ! S

S ! ASA | aB | a| AS | SA | S

A ! B | S| "

B ! b.

Claro que a produção S ! S pode ser sumariamente eliminada. E podemos começar a eliminar produções unitárias. Primeiro a produção S0! S

S0 ! S| ASA | aB | a | AS | SA

S ! ASA | aB | a | AS | SA A ! B | S

(6)

Dr

aft

-v0.

2

Depois a produção A ! S, S0 ! ASA | aB | a | AS | SA S ! ASA | aB | a | AS | SA A ! B |S| ASA | aB | a | AS | SA B ! b. Finalmente a produção A ! B, S0 ! ASA | aB | a | AS | SA S ! ASA | aB | a | AS | SA A ! B| ASA | aB | a | AS | SA| b B ! b.

E podemos, introduzindo novos símbolos não terminais, obter a gramática pretendida, S0 ! AA1| UB | a | AS | SA A1 ! SA U ! a S ! AA1| UB | a | AS | SA A ! AA1| UB | a | AS | SA | b B ! b.

10.4 Ambiguidade de gramáticas e linguagens

Definição 10.8 (gramática ambígua) Seja G uma CFG, diz-se que G é, ambígua se existir uma palavra w 2 L(G) para a qual existam duas árvores de derivação diferentes (i.e. não isomorfas).

Consideremos a seguinte gramática para a linguagem das palavras com alfabeto {0, 1} em que o número de 0 é o mesmo que o número de 1:

S ! " | 0S1 | 1S0 | SS

Para a palavra 010101 2 L(G) as duas seguintes árvores de derivação são válidas: S S S 0 S " 1 S 0 S " 1 S 0 S " 1 S 0 S 1 S 0 S " 1 0 1

Portanto a gramática G é uma gramática ambígua. Isto não quer dizer que não seja possíver obter uma outra gramática G0não ambígua, para a qual L(G) = L(G0). Com efeito, consideremos a

(7)

Dr

aft

-v0.

2

gramática G0dada por

S ! AS | BS | " A ! 0C1 | 01 C ! AC | A B ! 1D0 | 10 D ! BD | B

é uma gramática não ambígua e representa a linguagem pretendida. O “truque”, neste caso, consistiu em garantir a identificação, sem margem para ambiguidades, qual o caracter que vai finalizar o mais pequeno prefixo da palavra considerada que também pertence à linguagem. A demonstração que esta gramática é não ambígua assenta exactamente na demonstração que o mais pequeno prefixo não vazio que tambem também tenha o mesmo número de 0 e de 1, ou é 01 (ou 10) ou é da forma 00S11 (respectivamente 11S00) em que S é uma outra palavra da linguagem.

Exercício 61 Provar que a gramática anterior é não ambígua.

Mas em geral não é possível encontrar uma gramática não ambígua que represente uma dada linguagem independente de contexto.

Definição 10.9 (linguagem ambígua) Uma linguagem independente de contexto diz-se ambígua se não for possível representa-la por uma gramática independente de contexto que seja não ambígua.

A decisão se uma linguagem independente de contexto é ou não ambígua é, em geral, um problema não decidível pelo que não podemos esperar ter um método que, dada uma gramática independente de contexto, encontre uma gramática equivalente que não seja ambígua.

A exibição de uma linguagem ambígua é uma tarefa muito mais delicada que a simples exibição de uma gramática ambígua. A construção que se segue é, essencialmente a que se pode encontrar na primeira edição do livro de Hopcroft e Ullman [HU79].

10.4.1 Eliminação de ambiguidades

Apesar da eliminação de ambiguidades ser uma tarefa particularmente difícil, quando não, como vimos atrás, completamente impossível, algumas técnicas permitem eliminar algumas ambiguidades comuns. Esta tarefa não se limita a satisfazer de alguma forma algum tipo de perfeccionismo diletante, para muitas das aplicações de gramáticas, é imprescindível que estas não seja ambíguas, porque isto, ou impede o funcionamento de algum tipo de parser ou, corresponde a algum tipo de ambiguidade na semântica que está associada à linguagem, o que pode ser inaceitável, como no caso da análise sintática de um compilador.

10.4.1.1 Estabelecimento de precedências

Consideremos, por exemplo a linguagem das expressões aritméticas com inteiros, que para simplificar vamos considerar com um só digito. Esta pode ser facilmente descrita pela seguinte CFG

S ! (S) | SOS | N O ! + | - | ⇥

(8)

Dr

aft

-v0.

2

Mas esta gramática é trivialmente ambígua. Basta considerar a palavra 5 + 4 ⇥ 3, e verificar que esta tem duas diferentes árvores de derivação:

S S N 5 O + S S N 4 O ⇥ S N 3 S S S N 5 O + S N 4 O ⇥ S N 3

A primeira corresponde à avaliação “natural”, com a multiplicação efectuada antes da adição, e a segunda corresponde à execução das operações pela ordem inversa. O que podemos para evitar este tipo de ambiguidades é reescrever a gramática por forma a deixar explícita qual a ordem pela qual devem ser avaliadas as diversas operações. A esta operação é usual designar por estabelecimento de precedências para as operações. O resultado pode ser o exemplificado pela seguinte gramática.

S ! SAS | F A ! + |

-F ! F ⇥ F | N | (S)

N ! 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 10.4.1.2 Avaliação da esquerda para a direita

Mesmo utilizando a gramática anterior, alguma ambiguidades persistem. Como é o caso de 1+ 2 + 3, para a qual as duas seguintes árvores de derivação são válidas.

S S S F N 1 A + S F N 2 A + S F N 3 S S F N 1 A + S S F N 2 A + S F N 3

Agora, apesar de se tratar da mesma operação, a ambiguidade é a da ordem pela qual devem ser avaliadas as operações. À primeira àrvore corresponde uma avaliação da esquerda para a direita e à segunda o sentido inverso. Introduzindo mais umas variáveis podemos impedir que a recursão se faça indiferentemente à esquerda ou à direita, e portanto evitando este tipo de ambiguidade. A gramática resultante poderia ser então o seguinte.

S ! FAS | F A ! + |

-F ! F0⇥ F | F0

F0 ! (S) | N

(9)

Dr

aft

-v0.

2

Esta gramática já não é ambígua. Este tipo de transformações, apesar de não ser, de forma alguma, uma solução universal para todas as gramáticas, até porque há linguagens intrinseca-mente ambíguas, pode ser aplicada a um grande número de casos de linguagens de programação, sendo portanto uma técnica usual na construção de analisadores léxicos (parsers).

Exercício 62 Considera a gramática do Exercício 59

1. Mostra que a gramática gera a linguagem das palavras de alfabeto {0, 1} com o mesmo número de 0 e 1.

2. Mostra qua a gramática é ambígua.

3. Escreve uma gramática não ambígua para a mesma linguagem.

10.5 Lema da Repetição para CFL

Para auxiliar a prova que uma linguagem não está em CFL, podemos recorrer a uma propriedade semelhante à encontrada para as linguagens regulares e que se traduziu no chamado Lema da Repetição (Teorema 5.17). Mais uma vez, o que se garante é que para palavras suficientemente grandes tem que haver um padrão para o qual todas as palavras desse padrão têm que pertencer à linguagem em causa.

Teorema 10.10 (Lema da repetição para CFL) Seja L uma linguagem independente de contexto, então tem-se

(9n)(8⇢)(9u, v, w, x, y)(8i)

((⇢2 L ^ |⇢| > n ^ z = uvwxy ^ |vwx| < n ^ |vx| 1

=) ((i 0 =) uviw2 L)))). (10.1)

Dem. Seja G uma gramática na forma normal de Chomsky (ver pag. 113), mostremos primeiro que se uma árvore de derivação não contém caminhos de comprimento maior a n, então as palavras derivadas têm que ter um comprimento inferior a 2n.

A demonstração segue por indução sobre n. No caso base, com n = 1, a proposição é trivial, pois a árvore de derivação não pode conter senão a derivação S ! com S o símbolo inicial e um símbolo terminal. Suponhamos então que n > 1. Então a primeira produção aplicada não pode ser senão do tipo S ! BC. Se as árvores de derivação com raízes em A e B não contêm caminhos de comprimento superior a n- 1, então cada uma delas não pode gerar palavras de tamanho superior a 2n-1.

Logo S não poderia gerar palavras de tamanho superior a 2n.

Seja G uma gramática na Forma Normal de Chomsky que representa a linguagem L, com m símbolos não terminais e seja n = 2m. Se ⇢ 2 L(L) e |⇢| n, então como

|⇢| > 2m-1, qualquer árvore de derivação de ⇢ contém um caminho de comprimento

pelo menos m + 1. Seja P tal caminho. O caminho P tem m + 2 vértices em que todos, menos o último, são símbolos não terminais. Portanto, pelo princípio de Dirichlet (1.1), haverá pelo menos um símbolo não terminal, A, que ocorre pelo menos duas vezes em P. Sejam v1 e v2 vértices em P com o mesmo símbolo não

terminal associado A, e supondo que v1está mais próximo da raiz da árvore que v2,

sabemos que a distância de v1 ao símbolo terminal é, no máximo, m + 1. A

sub-árvore T1 comorigem em v1, representa a derivação de uma palavra de tamanho,

no máximo, 2m. Isto porque nenhum caminho em T

1 tem comprimento superior a

m+ 1. Seja ⇢1 a palavra derivada em T1. Se T2 for a árvore com origem em v2 e ⇢2

a palavra por si derivada, podemos escrever ⇢1= ⇢3⇢2⇢4. Note-se que ⇢3 e ⇢4 não

(10)

Dr

aft

-v0.

2

da forma A ! BC, e a árvore T2 está completamente contida numa das árvores com

origem em B ou C. Portanto

A)?⇢3A⇢4 A)?⇢2,

com |⇢3⇢2⇢4| 2m= n. Mas então

A)?⇢i

3⇢2⇢i4,8i 2 N,

e a proposição do teorema resulta trivial. ⇤

10.5.1 Lema de Ogden

Apesar de grande utilidade algumas linguagens não se deixam demostrar que não são CFL através do Lema da Repetição para CFL . Um exemplo de uma linguagem assim é a linguagem aibjck : i6= j ^ j 6= k ^ k 6= i . Há, no entanto, uma variação do referido lema [Ogd69] que

em muitos casos nos permite provar tal.

Teorema 10.11 (Lema de Ogden) Seja L uma CFL, existe uma constante n tal que se ⇢ é uma palavra e marcarmos pelo menos n posições em ⇢ então podemos escrever ⇢ = uvwxy tal que vx tem pelo menos uma posição marcada, vwx têm no máximo n posições marcadas e ((8i) uviwxiy2 L).

Dem. Seja G uma gramática para L em forma normal de Chomsky. Seja m o número de símbolos não terminais de G, n = 2m+ 1 e ⇢ uma palavra de L nas condições

do teorema com as referidas posições marcadas. Temos então que construir um caminho P na árvore de derivação de ⇢ análoga ao construído para a demonstração do Teorema 10.10. No entanto, como neste caso o que importa são as posições marcadas não contamos todos os seus vértices mas somente os que têm os dois filhos com descendentes marcados. A estes vértices chamamos pontos de bifurcação. Construímos P da seguinte forma. Começamos por colocar a raiz em P. Suponhamos que r foi o último vértice a ser adicionado a P. Se r tem um só filho com descendentes marcados, acrescentamos esse vértice filho de r a P. Se ambos os filhos de r têm descendentes marcados, r é um ponto de bifurcação, acrescentamos a P o filho que tem mais descendentes marcados. Prosseguimos o processo até atingirmos uma folha, altura em que terminamos. Cada ponto de bifurcação tem pelo menos metade dos descendentes marcados do último ponto de bifurcação. Como há, pelo menos, n posições marcadas em ⇢ e todas elas são descendentes da raiz da árvore, há pelo menos m + 1 pontos de bifurcação em P. Nesses m + 1 pontos de bifurcação há pelo menos dois que partilham o mesmo símbolo não terminal como nome, pois supusemos que só havia m símbolos não terminais em G. Seleccionamos v1 e v2

dois pontos de bifurcação em P com o mesmo nome, sendo v1 mais próximo da raiz

que v2. O resto da demonstração segue agora exactamente da mesma forma que a

demonstração do teorema anterior. ⇤

Exemplo 10.12 Provemos que a linguagem L = aibicj : i6= j não é CFL. Para qualquer

n > 0 consideremos a palavra anbncn!+n 2 L e marquemos as primeiras n posições da

palavra. Seja, então, ⇢n = anbn!+nc2n!+n = uvwxy em que vwx tem não mais que n

posições marcadas e vx tem, pelo menos, uma posição marcada. É evidente que se v ou x for constituído por mais do que um tipo de caracteres então qualquer palavra da forma uviwxiy /2 L, para i > 1. Portanto se não se tiver v = ap, para algum p 1 então

x= ak, para algum k 1, e existiria um b ou c à esquerda de um a, e teríamos ⇢ n2 L./

(11)

Dr

aft

-v0.

2

Então v = ap, para algum p 1. Como só há n ocorrências de a, temos necessariamente

que p  n, logo p|n!, ou seja existe q tal que pq = n!. Consideremos, então, a palavra ⇢0 = wvq+1wxq+1y. Temos três casos a considerar. Se x = ak então ⇢0 2 L porque/

o número de ocorrências de a é diferente do número de ocorrências de b. O mesmo acontece se x = ck. Resta o caso em que x = bk. Neste caso se k 6= p voltamos a ter um

diferente número de ocorrências de a e b em ⇢0. Se x = bp, então

⇢0= an-pap(q+1)bn-pbp(q+1)cn!+n= anapqbnbpqcn!+n= an!+n+ bn!+n+ cn!+n2 L./ Pelo que que L não pode ser CFL.

Referências

Documentos relacionados

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-

Código Descrição Atributo Saldo Anterior D/C Débito Crédito Saldo Final D/C. Este demonstrativo apresenta os dados consolidados da(s)

Apesar dos esforços para reduzir os níveis de emissão de poluentes ao longo das últimas décadas na região da cidade de Cubatão, as concentrações dos poluentes

Não se deve administrar maleato de midazolam comprimidos a pacientes com miastenia gravis, doença grave no fígado (benzodiazepínicos não são indicados para tratar pacientes com

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

Para analisar as Componentes de Gestão foram utilizadas questões referentes à forma como o visitante considera as condições da ilha no momento da realização do

Dessa maneira, os resultados desta tese são uma síntese que propõe o uso de índices não convencionais de conforto térmico, utilizando o Índice de Temperatura de Globo Negro e