Propriedades das livres de contexto

Simplificação de CFG, forma normal de Chomsky, CYK, fecho e lema da repetição.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Em S→ABS\to AB, se AA puder desaparecer, BB também tem de poder gerar sozinho uma palavra a partir do início. Apagar A→εA\to\varepsilon sem acrescentar S→BS\to B perderia essa possibilidade.

A simplificação substitui o efeito das regras que elimina. Depois, a forma normal de Chomsky organiza as produções de CFG para calcular a pertença numa tabela.

Variáveis anuláveis, unitárias e inúteis

Uma variável é anulável se deriva ε\varepsilon. Começa nas produções A→εA\to\varepsilon e acrescenta uma variável quando alguma das suas produções contém apenas variáveis já anuláveis. Repete até estabilizar. Um terminal nunca é anulável.

Para eliminar produções vazias, cria todas as combinações de presença e ausência das ocorrências anuláveis em cada lado direito. Em A→BCBA\to BCB, se BB for anulável e CC não for, surgem BCBBCB, CBCB, BCBC e CC. As duas ocorrências de BB são escolhas independentes. Depois retira produções vazias, tratando separadamente a aceitação de ε\varepsilon.

Uma produção unitária tem forma A→BA\to B, com duas variáveis. Calcula os pares (A,B)(A,B) em que AA chega a BB só com produções unitárias, incluindo (A,A)(A,A). Copia para AA todas as produções não unitárias de cada BB alcançado e retira as unitárias. Não basta apagar A→BA\to B, porque perderias as palavras geradas através dela.

Uma variável é geradora se deriva alguma palavra terminal. Calcula primeiro as geradoras, a partir de regras só com terminais ou variáveis já geradoras. Retira as não geradoras e as regras que as usam. Depois calcula as variáveis alcançáveis a partir do início na gramática que ficou e retira as restantes.

Por exemplo, em S→AB∣aS\to AB\mid a, A→bA\to b, sem regras para BB, BB não é geradora. Retira S→ABS\to AB e, só depois, vês que AA ficou inacessível. O resultado é S→aS\to a.

Uma ordem segura para a simplificação completa é: eliminar produções vazias, eliminar unitárias e eliminar símbolos inúteis, primeiro não geradores e depois inacessíveis. A eliminação de vazias pode criar unitárias, e as etapas podem tornar símbolos inúteis.

Simplificação acompanhada numa gramática

Considera a gramática

S→AB∣a,A→b∣ε,B→C,C→cC∣c,D→d.S\to AB\mid a,\quad A\to b\mid\varepsilon,\quad B\to C,\quad C\to cC\mid c,\quad D\to d.
  1. Só AA é anulável. Em S→ABS\to AB, omitir AA cria S→BS\to B. Retira depois A→εA\to\varepsilon.
  2. Agora há as unitárias S→BS\to B e B→CB\to C. A cadeia chega de SS a CC, pelo que copiamos cCcC e cc para ambos SS e BB, e retiramos as duas unitárias.
  3. Todas as variáveis são geradoras, mas DD é inacessível a partir de SS e sai.

O resultado completo é:

S→AB∣a∣cC∣c,A→b,B→cC∣c,C→cC∣c.S\to AB\mid a\mid cC\mid c,\quad A\to b,\quad B\to cC\mid c,\quad C\to cC\mid c.

bcbc continua a derivar por S⇒AB⇒bB⇒bcS\Rightarrow AB\Rightarrow bB\Rightarrow bc. A palavra cc, que antes dependia de apagar AA, deriva agora diretamente por S⇒cS\Rightarrow c. A linguagem mantém-se (ε+b)cc∗+a(\varepsilon+b)cc^*+a.

Intercalação de uma CFL com uma regular

Se LL é CFL e RR é regular, a intercalação inter(L,R)inter(L,R) é CFL. A construção usa um PDA PP por estado final para LL e um DFA DD para RR:

  1. Usa um fundo novo, que a simulação de PP não retira, para permitir ler letras de RR mesmo depois de a pilha simulada ficar vazia.
  2. Constrói um PDA cujo estado é (p,q)(p,q): ao ler uma letra, escolhe avançar PP mantendo qq, ou avançar DD mantendo pp e a pilha. Transições vazias de PP mantêm qq.
  3. Aceita quando pp é final em PP, qq é final em DD e a entrada foi consumida.

Cada letra é atribuída a uma das duas palavras, preservando a ordem interna de cada uma. Isto generaliza a construção para intercalação regular/regular, onde dois DFA chegam; aqui a pilha de PP acompanha apenas as letras atribuídas a LL.

Forma normal de Chomsky

Na forma normal de Chomsky, CNF, as produções têm forma

A→BCouA→a.A\to BC\quad\text{ou}\quad A\to a.

Adota a extensão que permite S0→εS_0\to\varepsilon se a linguagem contém a palavra vazia, desde que o início S0S_0 não apareça em nenhum lado direito. Uma regra S0→SS_0\to S é unitária e não fica na CNF final desta convenção.

Depois da simplificação, substitui cada terminal em lados direitos de comprimento pelo menos dois por uma variável nova, como Ta→aT_a\to a. Não alteres A→aA\to a, que já está na forma certa.

Divide os lados direitos compridos: A→BCDA\to BCD torna-se A→BXA\to BX, X→CDX\to CD, com XX novo. Para quatro ou mais variáveis, continua a cadeia. Cada regra passa a ter duas variáveis ou um terminal.

Conversão completa

Parte de S→aSb∣εS\to aSb\mid\varepsilon. Introduz A→aA\to a, B→bB\to b, ficando S→ASB∣εS\to ASB\mid\varepsilon. O início SS é anulável e aparece à direita; cria um início novo S0S_0 para preservar ε\varepsilon.

Eliminando a ocorrência anulável de SS no meio, tens S→ASB∣ABS\to ASB\mid AB. Copia estas regras para S0S_0 para eliminar S0→SS_0\to S, e conserva S0→εS_0\to\varepsilon. Finalmente, divide ASBASB com C→SBC\to SB:

S0→AC∣AB∣ε,S→AC∣AB,C→SB,A→a,B→b.\begin{aligned} S_0&\to AC\mid AB\mid\varepsilon,\\ S&\to AC\mid AB,\\ C&\to SB,\\ A&\to a,\qquad B\to b. \end{aligned}

S0S_0 não aparece à direita. Para aabbaabb, a derivação é S0⇒AC⇒aC⇒aSB⇒aABB⇒aaBB⇒aabB⇒aabbS_0\Rightarrow AC\Rightarrow aC\Rightarrow aSB\Rightarrow aABB\Rightarrow aaBB\Rightarrow aabB\Rightarrow aabb. A base ABAB dá um par, e ACAC acrescenta outro par à volta.

CYK: decidir a pertença

O algoritmo CYK usa uma CFG em CNF e uma palavra não vazia w=a1⋯anw=a_1\cdots a_n. A célula T[i,j]T[i,j] contém as variáveis que geram a subpalavra ai⋯aja_i\cdots a_j.

Na diagonal:

T[i,i]={A∣A→ai}.T[i,i]=\{A\mid A\to a_i\}.

Para intervalos maiores, tenta todos os cortes kk entre ii e jj. Se A→BCA\to BC, B∈T[i,k]B\in T[i,k] e C∈T[k+1,j]C\in T[k+1,j], acrescenta AA a T[i,j]T[i,j]. Preenche por comprimento crescente, porque cada decisão depende de intervalos menores.

Com a CNF anterior e aabbaabb, obténs a tabela abaixo por comprimento crescente. Os índices [i,j][i,j] identificam as posições da subpalavra na entrada:

Intervalo e palavraVariáveis
[1,1]:a[1,1]: a{A}\{A\}
[2,2]:a[2,2]: a{A}\{A\}
[3,3]:b[3,3]: b{B}\{B\}
[4,4]:b[4,4]: b{B}\{B\}
[1,2]:aa[1,2]: aa∅\emptyset
[2,3]:ab[2,3]: ab{S0,S}\{S_0,S\}
[3,4]:bb[3,4]: bb∅\emptyset
[1,3]:aab[1,3]: aab∅\emptyset
[2,4]:abb[2,4]: abb{C}\{C\}
[1,4]:aabb[1,4]: aabb{S0,S}\{S_0,S\}

Em abbabb, o corte ab∣bab\mid b usa C→SBC\to SB. Em aabbaabb, o corte a∣abba\mid abb usa S0→ACS_0\to AC. Como S0∈T[1,4]S_0\in T[1,4], a palavra pertence à linguagem.

Não juntes todos os símbolos de uma linha sem respeitar o intervalo e o corte. BB no último bb só pode combinar com uma variável que gere a parte imediatamente anterior no mesmo intervalo.

Para gramática fixa, há O(n2)O(n^2) células e O(n)O(n) cortes por célula, dando tempo O(n3)O(n^3) e espaço O(n2)O(n^2). Se a gramática variar, o custo inclui também o número de produções. Para ε\varepsilon, não crias uma tabela vazia: verifica diretamente se o início pode gerar a palavra vazia.

Propriedades de fecho

As livres de contexto são fechadas para união, concatenação, estrela e reverso. Para união, usa um início novo S→S1∣S2S\to S_1\mid S_2, após renomear variáveis para os conjuntos serem disjuntos. Para concatenação, usa S→S1S2S\to S_1S_2; para estrela, usa S→S1S∣εS\to S_1S\mid\varepsilon.

São também fechadas para interseção com uma regular. O produto entre PDA e DFA guarda ambos os estados, conservando a pilha do PDA. Uma transição vazia do PDA não altera o estado do DFA; uma letra lida atualiza ambos. Aceita quando as duas condições finais se verificam após consumir a entrada.

Não são fechadas para interseção entre duas CFL. Considera:

L1={anbncm∣n,m≥0},L2={ambncn∣n,m≥0}.L_1=\{a^nb^nc^m\mid n,m\ge0\},\qquad L_2=\{a^mb^nc^n\mid n,m\ge0\}.

Cada uma compara apenas dois blocos, mas a interseção é {anbncn∣n≥0}\{a^nb^nc^n\mid n\ge0\}, que não é livre de contexto. Também não há fecho geral para complemento: se houvesse, as leis de De Morgan e o fecho para união dariam fecho para interseção. A diferença geral falha pela mesma razão, pois Σ∗∖L\Sigma^*\setminus L é um caso de diferença.

Lema da repetição para CFL

Se LL é livre de contexto, existe p≥1p\ge1 tal que toda a palavra s∈Ls\in L, ∣s∣≥p|s|\ge p, admite s=uvwxys=uvwxy com:

∣vwx∣≤p,∣vx∣≥1,∀i≥0, uviwxiy∈L.|vwx|\le p,\qquad |vx|\ge1,\qquad \forall i\ge0,\ uv^iwx^iy\in L.

A condição ∣vx∣≥1|vx|\ge1 permite que uma das partes seja vazia, mas não ambas; bombeia vv e xx com o mesmo expoente, enquanto ww fica uma única vez. Ao contrário do lema regular, a zona limitada não tem de estar no princípio da palavra.

Uma árvore sintática suficientemente alta repete uma variável num caminho. Podes retirar a parte entre as duas ocorrências, ou repeti-la. Essa parte acrescenta vv de um lado da subárvore interior e xx do outro. Uma CNF permite limitar o tamanho da zona que contém a repetição.

Provar que aⁿbⁿcⁿ não é CFL

Supõe que L={anbncn∣n≥0}L=\{a^nb^nc^n\mid n\ge0\} é CFL e seja pp o comprimento do lema. Escolhe s=apbpcps=a^pb^pc^p. Considera qualquer decomposição válida.

Como ∣vwx∣≤p|vwx|\le p, essa zona não pode conter ao mesmo tempo um aa e um cc: teria de incluir todo o bloco de pp letras bb, além dos dois extremos. Logo, a zona deixa intacto pelo menos um dos tipos de símbolo extremos.

Com i=0i=0, retiras vv e xx. Retiras pelo menos um símbolo, pois ∣vx∣≥1|vx|\ge1, enquanto o tipo que não aparece na zona mantém as suas pp ocorrências. As três contagens já não são iguais. Portanto, uwy∉Luwy\notin L, contradizendo o lema.

Não escolhes uma decomposição conveniente. A limitação da zona cobre todas as decomposições. Como no lema regular, satisfazer o lema não prova pertença à classe.

A palavra escolhida pode admitir uma repetição

Estar na linguagem e ter comprimento suficiente são condições necessárias para uma testemunha, mas não chegam para a prova negativa. Considera

K={anbnz∣n≥0, z∈{a,b}n}.K=\{a^nb^nz\mid n\ge0,\ z\in\{a,b\}^n\}.

O último bloco tem comprimento nn, mas as suas letras são livres. Não exige três contagens iguais de símbolos diferentes.

Supondo KK CFL, recebe o comprimento pp do lema. Podemos aumentá-lo para p≥3p\ge3, pois a condição continua válida com um limite maior. A candidata apb2pa^pb^{2p} pertence a KK, escolhendo z=bpz=b^p. Porém, admite um corte que o adversário pode usar para escapar à contradição:

u=ap−1,v=a,w=ε,x=bb,y=b2p−2.u=a^{p-1},\quad v=a,\quad w=\varepsilon,\quad x=bb,\quad y=b^{2p-2}.

O corte tem ∣vwx∣=3≤p|vwx|=3\le p e ∣vx∣=3>0|vx|=3>0. Para qualquer expoente i≥0i\ge0, a palavra bombeada é

ap−1+ib2(p−1+i).a^{p-1+i}b^{2(p-1+i)}.

Continua em KK, com n=p−1+in=p-1+i e bloco final z=bnz=b^n. Encontrámos um corte que impede a contradição com esta candidata. Isto não prova que KK seja CFL; mostra que precisamos de escolher outra palavra.

Separar a zona curta dos extremos

Escolhe agora s=a2pb2pa2p∈Ks=a^{2p}b^{2p}a^{2p}\in K. A zona vwxvwx tem comprimento no máximo pp e não pode tocar nos dois blocos de aa, pois teria de atravessar os 2p2p símbolos bb. É esta a testemunha que funciona: força o adversário a retirar símbolos de uma região que desequilibra sempre a palavra.

Bombeia com i=0i=0. Seja α\alpha a quantidade retirada do primeiro bloco, β\beta do bloco de bb e γ\gamma do último. A palavra fica ajbkaℓa^jb^ka^\ell, com

j=2p−α,k=2p−β,ℓ=2p−γ.j=2p-\alpha,\quad k=2p-\beta,\quad\ell=2p-\gamma.

Todos os blocos continuam não vazios, porque retiramos no máximo pp símbolos. Para pertencer a KK, a primeira mudança de aa para bb fixa n=jn=j. É preciso ter k≥jk\ge j letras bb para o bloco obrigatório. O que sobra, bk−jaℓb^{k-j}a^\ell, deve ter comprimento jj, portanto k+ℓ=2jk+\ell=2j.

Estas condições excluem todos os cortes:

Zona que contém as partes retiradasCondição que falha
Não retira do primeiro bloco, α=0\alpha=0β+γ>0\beta+\gamma>0 dá k+ℓ<4p=2jk+\ell<4p=2j.
Retira do primeiro bloco, α>0\alpha>0O último fica intacto, γ=0\gamma=0. A igualdade exigiria β=2α\beta=2\alpha, mas k≥jk\ge j exigiria β≤α\beta\le\alpha. São incompatíveis.

Como v,xv,x não são ambos vazios, algum símbolo sai. Em qualquer decomposição válida, a palavra bombeada deixa KK. Esta contradição prova que KK não é CFL. A prova usa o significado do último bloco, não uma falsa exigência de que contenha só aa.

O que se pode decidir sobre CFG

A pertença é decidível por CYK. O vazio é decidível verificando se o início é gerador. Já não há algoritmos gerais que decidam equivalência de duas CFG, universalidade de uma CFG ou ambiguidade de uma CFG.

Isto não impede resolver exemplos particulares com um argumento. Dizer que um problema é indecidível significa que não existe um algoritmo que termine e responda corretamente a todas as entradas desse problema.

Exercícios

A prova de três contagens adapta a linguagem da questão 11 do teste de 13/6/2024. A intercalação adapta a TP de 2022/23, como indicado no enunciado. As gramáticas de CNF e CYK são próprias.

Provar que duas comparações não chegam

Prova que L={anbnc2n∣n≥1}L=\{a^nb^nc^{2n}\mid n\ge1\} não é livre de contexto.

Pista

A zona vwx tem comprimento no máximo p e não pode tocar simultaneamente em a e c.

Mais uma pista

Se toca em a e/ou b sem c, as contagens de a e b não podem continuar ambas iguais a metade de 2p. Se toca em b e/ou c sem a, o a fica em p.

Solução

Supõe L CFL, recebe p e escolhe apbpc2pa^pb^pc^{2p}. Para qualquer decomposição válida, vwx não contém simultaneamente a e c. Com i=0 retira-se pelo menos um símbolo. Se não há c na zona, o número de c fica em 2p; manter a relação exigiria que a e b continuassem ambos em p, impossível porque algum deles foi retirado. Se não há a na zona, a fica em p; manter a linguagem exigiria b=p e c=2p, novamente impossível porque algum b ou c foi retirado. Logo a palavra bombeada sai de L em todos os casos.

Confere a tua resposta:

  • Escolhe a elevado a p, b elevado a p e c elevado a 2p.
  • Usa o limite da zona para garantir que algum tipo extremo fica intacto.
  • Bombeia com i=0 e mostra que a igualdade a=b ou a relação c=2a falha.

Erros frequentes

Não esqueças que v ou x pode ser vazio. Não exijas que vwx esteja no princípio da palavra.

Voltar à explicação
Preservar a palavra vazia

Converte em CNF, preservando a linguagem, a gramática S→AB∣aS\to AB\mid a, A→aA∣εA\to aA\mid\varepsilon, B→b∣εB\to b\mid\varepsilon. Explica o tratamento de ε\varepsilon.

Pista

A linguagem é a estrela de a seguida de zero ou um b. A CNF tem de conservar a palavra vazia.

Mais uma pista

SS nunca aparece num lado direito, pelo que podes manter S→εS\to\varepsilon como exceção inicial.

Solução

As variáveis anuláveis são A,B,SA,B,S. Ao omitir as ocorrências de ABAB, surgem AB,A,B,εAB,A,B,\varepsilon. Ao omitir AA de aAaA, surge aa. Depois de retirar as vazias de A,BA,B e eliminar as unitárias S→A,BS\to A,B, obtemos

S→AB∣aA∣a∣b∣ε,A→aA∣a,B→b.S\to AB\mid aA\mid a\mid b\mid\varepsilon,\qquad A\to aA\mid a,\qquad B\to b.

Introduzindo T→aT\to a, a CNF final é

S→AB∣TA∣a∣b∣ε,A→TA∣a,B→b,T→a.S\to AB\mid TA\mid a\mid b\mid\varepsilon,\qquad A\to TA\mid a,\qquad B\to b,\qquad T\to a.

SS não aparece à direita, pelo que a exceção vazia é válida. ABAB gera um ou mais aa seguidos de bb, TATA gera pelo menos dois aa, e as bases cobrem a,b,εa,b,\varepsilon. A linguagem continua a∗(ε+b)a^*(\varepsilon+b).

Confere a tua resposta:

  • Identifica A, B e S como anuláveis.
  • Acrescenta as alternativas resultantes de omitir A ou B antes de eliminar as vazias.
  • Elimina unitárias e substitui o a de aA por uma variável.
  • Mantém ε apenas no início, ausente dos lados direitos.

Erros frequentes

Não apagues ε da linguagem. Não deixes S→A ou S→B na CNF. Não substituas S→a: já é uma produção válida.

Voltar à explicação
Tentar todos os cortes

Na CNF S→AB∣ACS\to AB\mid AC, C→SBC\to SB, A→aA\to a, B→bB\to b, calcula a tabela CYK para aabaab. A palavra é aceite? Indica cada corte que produz um conjunto não vazio.

Pista

A regra S→AC requer C no intervalo da direita, não S.

Mais uma pista

Os cortes do intervalo total são a∣aba\mid ab e aa∣baa\mid b.

Solução

A diagonal é {A},{A},{B}\{A\},\{A\},\{B\}. Para aaaa, não há regra com corpo AAAA, logo o conjunto é vazio. Para abab, a regra S→ABS\to AB dá {S}\{S\}.

No intervalo aabaab, o corte a∣aba\mid ab oferece (A,S)(A,S), mas não existe regra com corpo ASAS. O corte aa∣baa\mid b tem conjunto esquerdo vazio. Portanto, T[1,3]=∅T[1,3]=\emptyset e a palavra é rejeitada. Esta gramática gera os blocos anbna^nb^n com n≥1n\ge1, pelo que rejeitar aabaab concorda com as contagens.

Confere a tua resposta:

  • Na diagonal obtém A, A, B.
  • Só ab tem S entre as células de comprimento dois.
  • Confere os dois cortes de aab sem fabricar B para aa.

Erros frequentes

Não uses A do primeiro a e B do último b ignorando o símbolo intermédio. Não troques C por S só porque C pode derivar SB.

Voltar à explicação
Intercalação com uma regular

Sejam L={anbn∣n≥0}L=\{a^nb^n\mid n\ge0\} e R=c∗R=c^*. A intercalação preserva a ordem interna de uma palavra de cada linguagem. Decide se cacbcacb, cbcacbca e cccccc pertencem a inter(L,R)inter(L,R). Descreve depois um PDA para esta intercalação e generaliza a construção para qualquer CFL e qualquer regular. Adaptação do exercício 6d da TP de propriedades de CFL.

Pista

Retira os c para testar a ordem e a contagem dos outros símbolos.

Solução

Em cacbcacb, retirar os cc deixa ab∈Lab\in L, e os cc formam uma palavra de RR, logo aceita. Em cbcacbca, sobra ba∉Lba\notin L e rejeita. cccccc intercala ε∈L\varepsilon\in L com ccc∈Rccc\in R, pelo que aceita.

Usa o PDA por estado final de LL e o DFA de RR. Guarda o par (p,q)(p,q) de estados, com um fundo novo que a simulação da pilha não retira. Cada letra escolhe entre avançar o PDA mantendo qq, ou avançar o DFA mantendo pp e a pilha. As transições vazias do PDA mantêm qq. No exemplo, os cc pertencem ao DFA e os a,ba,b ao PDA; para alfabetos sobrepostos, o não determinismo escolhe a origem.

Aceita com entrada consumida e ambas as componentes finais. O fundo novo permite ler mais letras da regular mesmo depois de a pilha simulada esvaziar. Cada ramo define duas subsequências em ordem; um ramo aceitante dá uma palavra de cada linguagem, e qualquer intercalação válida permite escolher um ramo aceitante.

Confere a tua resposta:

  • Classifiquei cacb, cbca e ccc, incluindo a palavra vazia de L.
  • Mantive a pilha nas letras da regular e um fundo permanente.
  • Justifiquei as duas direções da construção geral.
Voltar à explicação
Uma palavra longa que deixa o adversário bombear

Considera K={anbnz∣n≥0, z∈{a,b}n}K=\{a^nb^nz\mid n\ge0,\ z\in\{a,b\}^n\} e um comprimento de repetição p≥3p\ge3. Um colega tenta provar que K não é CFL usando s=apb2ps=a^pb^{2p}. O adversário dá u=ap−1u=a^{p-1}, v=av=a, w=εw=\varepsilon, x=bbx=bb e y=b2p−2y=b^{2p-2}.

Confere se é um corte permitido e calcula a palavra para qualquer expoente i. Esse corte prova que K é CFL? Escolhe depois uma testemunha que permita a contradição e justifica todos os cortes, sem supor que z só contém a. Adaptação da escolha de testemunha da questão 17 do teste de 11/6/2025.

Pista

Na testemunha com três blocos, a primeira mudança para b fixa n. A parte final pode conter b que sobraram, além dos a finais.

Solução

O corte recompõe s, tem ∣vwx∣=3≤p|vwx|=3\le p e ∣vx∣=3>0|vx|=3>0. Para i≥0, dá ap−1+ib2(p−1+i)∈Ka^{p-1+i}b^{2(p-1+i)}\in K, com n=p−1+in=p-1+i e z=bnz=b^n. Logo esta candidata não força a contradição. Um corte que bombeia uma palavra não demonstra o lema para toda a linguagem, e ainda menos prova que ela seja CFL.

Escolhe a2pb2pa2pa^{2p}b^{2p}a^{2p}. Ao retirar v e x, ficam ajbkaℓa^jb^ka^\ell, todos os blocos não vazios. Se α, β e γ forem as quantidades retiradas dos três blocos, j=2p−αj=2p-\alpha, k=2p−βk=2p-\beta, ℓ=2p−γ\ell=2p-\gamma. Pertença a K exigiria k≥jk\ge j e k+ℓ=2jk+\ell=2j.

A zona de comprimento no máximo p não toca nos dois blocos extremos. Se α=0\alpha=0, algum β ou γ é positivo, e k+ℓ<2jk+\ell<2j. Se α>0\alpha>0, temos γ=0; a igualdade exigiria β=2α\beta=2\alpha, mas k≥jk\ge j exigiria β≤α\beta\le\alpha, impossível. Portanto i=0 sai de K em qualquer corte. Supondo K CFL, isto contradiz o lema. Podemos exigir p≥3 aumentando o seu comprimento, se necessário.

Confere a tua resposta:

  • Verifiquei que a^p b^(2p) pertence a K e que o corte tem zona de comprimento 3.
  • Obtive a^(p−1+i) b^(2(p−1+i)) para todo i≥0, sem afirmar que K é CFL.
  • Usei a^(2p) b^(2p) a^(2p) e as condições k≥j e k+ℓ=2j para cobrir todos os cortes.
Voltar à explicação

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.