Após duas tentativas fracassadas, que foram reprovadas por @Hendrik Jan (obrigado), aqui está outra, que não tem mais sucesso. A @Vor encontrou um exemplo de uma linguagem CF determinística em que a mesma construção seria aplicada, se correta. Isso permitiu identificar um erro na ancoragem da string na aplicação do lema. O próprio lema não parece estar errado. Esta é claramente uma construção simplista demais. Veja mais detalhes nos comentários.y
O idioma não é livre de contexto.L={uxvy∣u,v,x,y∈{0,1}∗{ϵ} , ∣u∣=∣v∣ , u≠v , ∣x∣=∣y∣ , x≠y }
É útil ter em mente a caracterização que d é a distância de Hamming, proposta por @sdcvvc. O que é preciso pensar são duas posições selecionadas em cada meia corda, de modo que os símbolos correspondentes sejam diferentes.L={uv:|u|=|v|,d(u,v)≥2}
Então você considera uma sequência tal que e são pares. É claramente na linguagem L, cortando e em qualquer lugar entre os dois 1 de. Queremos bombear essa corda na primeira parte entre os , para que ela se torne que não deveria estar no idioma. i < j i + j u x 10 j 10 j10i10ji<ji+jux10j10j
Primeiro tentamos usar o lema de Ogden , que é como o lema de bombeamento, mas se aplica a ou mais símbolos distintos marcados na corda, sendo o comprimento de bombeamento para símbolos marcados (mas o lema pode bombear mais porque também pode bombear símbolos não marcados). O comprimento marcado de bombeamento depende apenas do idioma. Essa tentativa falhará, mas a falha será uma dica.p pppp
Podemos então escolher e marcar os símbolos na primeira sequência de . Sabemos que nenhum dos dois 1s estará na bomba, porque ele pode bombear uma vez (expoente 0) em vez de bombear. E bombear os 1s nos tiraria do idioma.ii=pi
No entanto, poderíamos bombear os dois lados do segundo 1 tão rápido ou até mais rápido no lado direito, para que o segundo 1 nunca atravessasse o meio da corda. Além disso, o lema de Ogden não fixa um limite superior ao tamanho do que está sendo bombeado, de modo que não é possível organizar o bombeamento para obter o 1 mais à direita exatamente no meio da corda.
Usamos uma versão modificada do lema, aqui chamada Nash's Lemma, que pode lidar com essas dificuldades.
Primeiro precisamos de uma definição (provavelmente tem outro nome na literatura, mas não sei qual - a ajuda é bem-vinda). Diz-se que uma corda é um apagamento de uma corda se for obtida de apagando símbolos em . Veremos .v v v u ≺ vuvvvu≺v
Lema de Nash:
Se é uma linguagem livre de contexto, existem dois números e modo que, para qualquer string de comprimento pelo menos em , e toda forma de “marcar” ou mais de as posições em , podem ser escritas como com a cadeia , , , , , de modo quep > 0 q > 0 w P L p w w w = u x y zLp>0q>0wpLpwwu x y z vw=uxyzvuxyzv
- xz tem pelo menos uma posição marcada,
- pxyz tem no máximo posições marcadas ep
- existem 3 cadeias , , modo que
x^ zy^z^
- x^≺x , , , z ≺zy^≺yz^≺z
- 1 ≤ | y | ≤ q1≤∣x^z^∣≤q , e1≤∣y^∣≤q
- L i ≥ 0 j ≥ 0uxjx^iy^z^izjv está em para cada e para cada .Li≥0j≥0
Prova : semelhante à prova do lema de Ogden, mas as subárvores correspondentes às seqüências e são podadas para que elas não contenham nenhum caminho com o dobro do mesmo não terminal (exceto as raízes dessas duas subárvores). Isso necessariamente limita o tamanho das cadeias geradas e por uma constante . As cadeias e , para , correspondentes a uma versão não podada da árvore, são usadas principalmente com para simplificar a contabilidade quando o lema é aplicado.x z x z y Q x J z j j ≥ 0 j = 1yxzx^z^y^qxjzjj≥0j=1
Modificamos a tentativa de prova acima, marcando símbolos mais à esquerda 0, mas eles são seguidos por símbolos 0 para garantir que bombeemos na parte esquerda da string, entre os dois 1s. Isso totaliza 0's entre os (na verdade seria suficiente, pois o 1 mais à direita não pode estar em , o que permitiria removê-lo simplesmente).2 q i = p + 2 q i = p + q zp2qi=p+2qi=p+qz^
O que resta é ter escolhido para que possamos bombear exatamente o número certo de zeros para que as duas sequências sejam iguais. Mas até agora, a única restrição em j é ser maior que i . E também sabemos que o número de 0s que são bombeados em cada bombeamento está entre 1 e q. Então, seja h produto dos primeiros q inteiros. Nós escolhemos j = i + h .jjihqj=i+h
Portanto, como o incremento de bombeamento - seja o que for - está em [ 1 , q ] , ele divide h . Seja k o quociente. Se bombearmos exatamente k vezes, obteremos uma sequência 10 j 10 j que não está no idioma. Portanto, L não é livre de contexto.d[1,q]hkk10j10j
.
Eu acho que nunca verei
Uma corda adorável como uma árvore.
Pois, se não tiver uma análise,
A corda é apenas uma farsa