Eu me deparei com essa pergunta: "Dê exemplos de dois idiomas regulares em que a união deles não produz um idioma comum".
Isso é muito chocante para mim, porque acredito que os idiomas regulares são fechados sob união. Que significa para mim que se eu tomar duas linguagens regulares e união deles, eu preciso obter uma linguagem regular.
E acho que compreendo a prova disso: nas minhas palavras, se os idiomas são regulares, existem autômatos que os reconhecem. Se pegarmos todos os estados (união) e adicionarmos um novo estado para o ponto de entrada, e modificarmos a função de transição para o novo estado com epsilon, estamos bem. Também mostramos que existe um caminho para todos os estados etc.
Você pode me dizer onde estou errado, ou talvez outra maneira de abordar a questão.
Fonte da pergunta, exercício 4, em francês.
Além disso, a mesma pergunta é feita com a interseção.
Respostas:
Há uma diferença significativa entre a pergunta que você faz e a pergunta feita no exercício. A pergunta pede um exemplo de um conjunto de idiomas regulares modo que sua união L = ∞ ⋃ i = 1 L i não seja regular. Observe o intervalo da união: 1 a ∞ . Os idiomas regulares são fechados sob união finita e as provas são executadas ao longo das linhas que você esboça na pergunta; no entanto, isso se desfaz sob união infinita . Podemos mostrar isso tomando L i =L1,L2,…
Como um aparte, podemos ver facilmente onde a prova normal falha. Imagine à mesma construção em que adicionar um novo estado inicial e -transitions aos antigos estados iniciais. Se fizermos isso com um conjunto infinito de autômatos, construímos um autômato com um número infinito de estados, contradizendo obviamente a definição de um autômato finito .ε
Por fim, acho que a confusão pode surgir da formulação da pergunta original, que inicia "Donner deux exemples des suites de langages ...", que é (
aproximadamente, meu francês é um pouco enferrujado, mas verificado externamente!) "Dê dois exemplos de sequências de idiomas ...", em vez de "Dê dois exemplos de idiomas ...". Uma leitura incauta pode confundir o segundo com o primeiro.fonte
Para sua segunda pergunta, considere os idiomas definidos por Observe que para qualquer n ≥ 1 , M n é regular , como (1) o conjunto esquerdo é finito e, portanto, regular, (2) o conjunto direito é denotado pela expressão regular a n a a ∗
Não é muito difícil mostrar que, para qualquer número inteiro , temos M n + 1 ⊆ M n e, portanto, M n ∩ M n + 1 = M n + 1, de modo tão indutivo, temos n ⋂ i = 0 M i = M n (que na verdade não precisamos aqui, mas é muito bonito para deixar de fora).n≥1 Mn+1⊆Mn Mn∩Mn+1=Mn+1
Agora observe que não contém um n 2 + 1 , um n 2 + 2 , ... , a ( n + 1 ) 2 - 1 , então nenhuma dessas cordas será na interseção completa. Como conseqüência teremos ∞ ⋂ i = 0 M i = { a n 2 | n ≥ 1 }Mn an2+1,an2+2,…,a(n+1)2−1
fonte
Por que escolher idiomas regulares complicados para mostrar que conjuntos regulares não são fechados sob união infinita? Os idiomas Singleton são suficientes para mostrar que qualquer idioma RE é uma união infinita de conjuntos regulares.
Portanto, qualquer linguagem recursiva é uma união infinita de conjuntos regulares e também uma interseção infinita de conjuntos regulares (não os mesmos, mas seus complementos :).
O infinito é cheio de surpresas, e o que é verdadeiro para valores arbitrariamente grandes pode não ser verdadeiro no infinito.
fonte
fonte