Palavras, linguagens e expressões

Operações sobre palavras e linguagens, provas por indução e leitura de expressões regulares.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Palavras

  • Alfabeto Σ\Sigma: conjunto finito e não vazio. Palavra: sequência finita. ε\varepsilon tem comprimento 0 e não é símbolo de entrada.
  • ∣xy∣=∣x∣+∣y∣|xy|=|x|+|y|, (xy)z=x(yz)(xy)z=x(yz), xε=εx=xx\varepsilon=\varepsilon x=x. Potência: x0=εx^0=\varepsilon. Reverso: (xy)R=yRxR(xy)^R=y^Rx^R.
  • vv subpalavra de ww se w=xvyw=xvy; prefixo com x=εx=\varepsilon, sufixo com y=εy=\varepsilon.
  • Σk\Sigma^k: palavras de comprimento kk. Σ∗\Sigma^*: todas. Σ+=Σ∗∖{ε}\Sigma^+=\Sigma^*\setminus\{\varepsilon\}. Com ∣Σ∣=m|\Sigma|=m, há mkm^k palavras de comprimento kk.

Linguagens

  • Linguagem: conjunto L⊆Σ∗L\subseteq\Sigma^*. ∅\emptyset tem zero palavras; {ε}\{\varepsilon\} tem uma.
  • AB={xy∣x∈A, y∈B}AB=\{xy\mid x\in A,\ y\in B\}. Resultados repetidos contam uma vez: {a,ab}{ε,b}={a,ab,abb}\{a,ab\}\{\varepsilon,b\}=\{a,ab,abb\}.
  • A0={ε}A^0=\{\varepsilon\}, A∗=⋃n≥0AnA^*=\bigcup_{n\ge0}A^n, ∅∗={ε}\emptyset^*=\{\varepsilon\}. Complemento relativo ao alfabeto: L‾=Σ∗∖L\overline L=\Sigma^*\setminus L.
  • A∅=∅A\emptyset=\emptyset; A{ε}=AA\{\varepsilon\}=A. Concatenação não é comutativa.
  • Distribui sobre união: L(M∪N)=LM∪LNL(M\cup N)=LM\cup LN. Sobre interseção pode falhar: a mesma palavra admite decomposições diferentes.

Expressões regulares

As bases são ∅\emptyset, ε\varepsilon e cada símbolo. As operações são E+FE+F para a união, EFEF para a concatenação e E∗E^* para a estrela. A precedência é: estrela, depois concatenação, depois união. A abreviatura E+E^+ significa EE∗EE^*.

Condição sobre {a,b}\{a,b\}Expressão
Exatamente dois bba∗ba∗ba∗a^*ba^*ba^*
Contém abab(a+b)∗ab(a+b)∗(a+b)^*ab(a+b)^*
Termina em abab(a+b)∗ab(a+b)^*ab
Sem bbbb, com ε\varepsilon(a+ba)∗(ε+b)(a+ba)^*(\varepsilon+b)

A equivalência E≡FE\equiv F significa que ambas denotam a mesma linguagem. Valem, por exemplo, E+E≡EE+E\equiv E, E∅≡∅E\emptyset\equiv\emptyset e (E∗)∗≡E∗(E^*)^*\equiv E^*. Mas (a+b)∗(a+b)^* contém abab, enquanto a∗+b∗a^*+b^* não contém essa palavra.

Provas

  • Para provar uma igualdade de linguagens, mostra as duas inclusões com uma palavra arbitrária. Uma palavra concreta refuta uma igualdade, mas nenhuma palavra isolada prova uma igualdade.
  • Na indução no comprimento, trata a base ε\varepsilon e reduz a uma palavra mais curta. Na indução estrutural, trata as bases e cada construção.
  • Testes com palavras finitas não provam afirmações para todas as palavras.

Provas e exemplos completos.

À 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.