Palavras, linguagens e expressões
Operações sobre palavras e linguagens, provas por indução e leitura de expressões regulares.
Sobre o alfabeto , é uma entrada concreta. Se aceitarmos apenas sequências terminadas em , pertence à linguagem e fica de fora. A palavra é a sequência; a linguagem é o conjunto das sequências que cumprem a condição.
As operações seguintes permitem descrever esses conjuntos. Para conjuntos e relações, usa a revisão de MD.
Alfabetos e palavras
Um alfabeto é um conjunto finito e não vazio de símbolos. Uma palavra sobre é uma sequência finita desses símbolos. Sobre , tens palavras como , e .
A palavra vazia não contém símbolos. O comprimento conta símbolos, logo e . Por isso não é uma letra que a máquina tenha de ler.
A concatenação escreve imediatamente depois de . Se e , então e . Vale:
A potência concatena cópias de , com . Por exemplo, . O reverso muda a ordem dos símbolos: .
Uma palavra é subpalavra de se existem com . É prefixo quando podes escolher , e sufixo quando podes escolher . Em , é prefixo, é sufixo e é subpalavra. A palavra vazia é prefixo e sufixo de qualquer palavra.
contém as palavras de comprimento . Assim, e . Juntando todos os comprimentos:
Se o alfabeto tem símbolos, há palavras de comprimento , porque cada uma das posições oferece escolhas independentes.
Linguagens e operações
Uma linguagem é um conjunto de palavras, . Por exemplo,
A condição exige zeros antes dos uns, por isso tem tantos zeros como uns mas não pertence a .
Três confusões com ε e ∅
A palavra 01 tem comprimento 2. A linguagem tem uma palavra. A linguagem tem infinitas palavras, incluindo e 01. Três erros frequentes:
- escrever quando queres dizer ;
- escrever quando queres dizer ;
- ler como “repetir uma palavra de ” em vez de “concatenar zero ou mais palavras de ”.
Testa cada definição com : , , mas . E , porque existe uma concatenação vazia, com zero blocos. Não confundas com : a primeira linguagem tem zero palavras e a segunda tem uma palavra de comprimento zero, e esta distinção muda o resultado das operações.
Além de união, interseção e diferença de conjuntos, usamos:
O complemento depende do alfabeto: . Uma palavra que nem usa símbolos de não pertence a esse complemento.
Calcular sem perder palavras
Se e , enumera os pares:
| Palavra de | Palavra de | Concatenação |
|---|---|---|
Portanto, : três palavras para quatro pares, porque linguagens são conjuntos, não listas com repetições. Já , logo a concatenação não é comutativa.
Os casos vazios seguem da definição: , enquanto . A estrela contém sempre , mesmo em .
Provar ou refutar uma igualdade
Para provar , escolhe uma palavra de cada lado. Se com e , então ou , logo . O mesmo raciocínio ao contrário prova a outra inclusão.
A igualdade pode falhar. Usa , e . O lado esquerdo é vazio, mas pertence a ambos e , porque as duas concatenações podem decompor a mesma palavra em sítios diferentes.
O mesmo método do elemento arbitrário prova inclusões com estrela. Para , escolhe . Então , com e . Escreve , com cada . Cada bloco e ainda pertencem a . Logo é uma concatenação de palavras de , e pertence a . O caso dá , que também está incluído. A palavra foi arbitrária, por isso a inclusão vale para todas.
Provas por indução
A definição de palavras permite provar propriedades pelo comprimento. Para mostrar
faz indução em , mantendo arbitrário. A base trata a palavra vazia; o passo reduz uma palavra não vazia a uma mais curta e aplica a hipótese só a essa palavra mais curta.
- Base: . Ambos os lados são .
- Passo: escreve , com . A hipótese diz . Pela definição de reverso, .
O passo usou a hipótese apenas numa palavra mais curta. Testar exemplos não substitui este argumento para todos os comprimentos.
Há também indução estrutural: provas sobre expressões ou árvores seguem os casos usados para construir esses objetos. Se uma expressão resulta de união, concatenação ou estrela, a prova explica cada uma dessas construções.
Expressões regulares
Uma expressão regular descreve uma linguagem com três operações. As expressões básicas são , e cada símbolo . Se são expressões, também o são:
| Expressão | Linguagem descrita |
|---|---|
Aqui, entre expressões significa união. abrevia , ou seja, uma ou mais repetições. A estrela tem maior precedência que a concatenação, e esta tem maior precedência que a união.
Por isso, significa um zero seguido de zero ou mais uns, ou a palavra . Não significa repetir . A expressão inclui , enquanto inclui e exclui .
Descrever uma condição
Sobre , palavras com exatamente dois têm expressão . Os dois são obrigatórios, e os três intervalos de podem estar vazios.
Palavras que contêm têm expressão , porque os lados permitem qualquer prefixo e sufixo. Palavras que terminam em têm apenas . Testa : pertence à primeira linguagem, mas não à segunda.
Para palavras binárias sem símbolos iguais consecutivos, podemos usar
As quatro escolhas dos extremos dão comprimentos pares ou ímpares e permitem começar em ou . Incluem , e . Se a linguagem excluir a palavra vazia, terás de alterar a expressão.
Leis úteis e falsas simplificações
União é comutativa e idempotente: e . Concatenação é associativa e distribui sobre união. Temos e . O símbolo indica a mesma linguagem, não o mesmo texto.
Também e . Mas é falso: para , o lado esquerdo contém e o direito não.
As expressões desta teoria equivalem aos autómatos finitos. Algumas bibliotecas de pesquisa acrescentam operações como referências a grupos anteriores, que ultrapassam este modelo. Para construir as máquinas equivalentes, segue expressões e autómatos.
Provar inclusões com um elemento arbitrário
A técnica usada acima para igualdades serve também para inclusões com estrela. O padrão é sempre o mesmo: escolhe uma palavra arbitrária do lado esquerdo, decompõe-na segundo as operações desse lado e reconstrói-a com as operações do lado direito. Uma única palavra nunca prova a inclusão; uma palavra bem escolhida refuta uma igualdade falsa.
Exercícios
A prova da inclusão adapta o exercício 5j da folha prática 1. Os restantes problemas usam exemplos próprios dos tópicos das aulas.
Quantas palavras distintas?
Sejam e . Quantas palavras distintas contém ?
Pista
Lista as concatenações de cada par, incluindo as que usam .
Mais uma pista
Os quatro pares dão , , e .
Solução
tem 3 palavras. Os dois pares que dão não criam duas palavras diferentes.
Erros frequentes
Não contes pares em vez de palavras. conserva a outra palavra, não apaga a concatenação.
Contar blocos
Quantas palavras de comprimento 6 pertencem a ?
Pista
Cada bloco tem comprimento 2. Quantos blocos cabem?
Mais uma pista
São três posições de bloco, com duas escolhas independentes em cada uma.
Solução
Há . A divisão em blocos de duas letras é única, por isso escolhas diferentes produzem palavras diferentes.
Erros frequentes
Não uses : cada posição de símbolo não é uma escolha independente nesta linguagem.
Provar uma inclusão
Prova: se , então .
Pista
Uma palavra de é uma concatenação de um número finito de palavras de .
Mais uma pista
Se com cada , a hipótese põe cada bloco em . Trata também .
Solução
Se , existe e existem com . Pela inclusão, cada está em , logo . Para , , presente em ambas as estrelas. Como era arbitrária, segue a inclusão.
Confere a tua resposta:
- Escolhe uma palavra arbitrária de L estrela.
- Representa-a como concatenação finita de palavras de L.
- Usa L contido em M para concluir a mesma concatenação em M estrela, incluindo a vazia.
Erros frequentes
Não concluas que nem escolhas uma só palavra como prova. A hipótese transfere cada bloco, não apenas os símbolos.
Construir uma expressão
Escreve uma expressão regular sobre para palavras sem dois consecutivos. Inclui e justifica por que não faltam palavras.
Pista
Um b que não é o último tem de ser seguido de a.
Mais uma pista
Podes repetir os blocos e , permitindo um isolado no fim.
Solução
Uma expressão é . Dentro da estrela, cada pertence a um bloco , logo o símbolo seguinte é . O opcional do fim não fica junto de outro, porque os blocos não vazios da estrela acabam em .
Inversamente, percorre uma palavra válida da esquerda para a direita. Retira um bloco quando comece em , ou um bloco quando comece em e tenha mais letras. Só pode sobrar um no fim. Esta decomposição justifica que a expressão inclui todas as palavras pretendidas. Por exemplo, e .
Confere a tua resposta:
- Inclui a palavra vazia e as palavras a e b.
- Impede bb em qualquer posição.
- Explica como decompor qualquer palavra válida nos blocos da expressão.
Erros frequentes
Não uses , que permite e impede voltar aos . Uma lista de exemplos não prova as duas inclusões.
Provar pelo número de cópias
Prova para qualquer palavra e inteiro . Indica a base e onde usas a hipótese de indução.
Pista
Fixa uma palavra arbitrária e faz indução em .
Mais uma pista
Usa e .
Solução
Na base, . No passo, supondo , temos . A terceira igualdade usa a hipótese. Como era arbitrária, a prova vale para todas as palavras, incluindo .
Confere a tua resposta:
- Trata n=0 usando a palavra vazia.
- Aplica a hipótese apenas a x elevado a n.
- Usa a aditividade do comprimento na concatenação.
Erros frequentes
Não uses a propriedade para n+1 antes de a demonstrar. Não omitas n=0 só porque os primeiros exemplos têm palavras não vazias.