Você está na página 1de 481

ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing
Introdução à Computabilidade e à Complexidade
Teoria da Computacional
Computabili-
dade

Bibliografia

Apêndices Prof. Dr. Julliano Nascimento

Com slides do Prof. Humberto Longo e outros colaboradores


Instituto de Informática
Universidade Federal de Goiás

Bacharelado em Ciência da Computação, 2024

(1 – 1 de 481)
Introdução
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Autômatos, Computabilidade e Complexidade
Hilbert
Gödel I Quais as limitações dos computadores?
Turing
Church I Questão remete à década de 1930, quando começou a ser explorado o
Máquinas de significado de “Computação”.
Turing
I Avanços tecnológicos trazem esta pergunta do campo da teoria para o
Teoria da
Computabili- mundo do interesse prático.
dade I Interpretação diferente em cada área e com respostas variadas.
Bibliografia

Apêndices

Motivação (2 – 5 de 481)
Introdução
ICCC 2024

Julliano
Nascimento

Introdução
Motivação Teoria da Complexidade
Sistema Formal
Paradoxos I Por que alguns problemas são computacionalmente difíceis e outros
Matemáticos
Hilbert fáceis de resolver?
Gödel
Turing I Questão sem resposta há mais de 30 anos!
Church

Máquinas de
I Objetivo: classificação dos problemas, segundo a sua dificuldade
Turing computacional.
Teoria da I Evidências de que certos problemas são computacionalmente difíceis,
Computabili-
dade mesmo que não se saiba como provar isto.
Bibliografia
I O que fazer ao se confrontar com um problema que é (ou que parece ser)
Apêndices
computacionalmente difícil?

Motivação (3 – 5 de 481)
Introdução
ICCC 2024

Julliano
Nascimento
Teoria da Computabilidade
Introdução
Motivação I Objetivo é a classificação de problemas entre aqueles que podem ser
Sistema Formal
Paradoxos resolvidos e aqueles que não podem!
Matemáticos
Hilbert
I Teoria da Computabilidade introduz vários dos conceitos usados na Teoria
Gödel
Turing
da Complexidade.
Church
I Certos problemas básicos não podem ser resolvidos por computadores.
Máquinas de
Turing I Descoberta da primeira metade do Século 20: Kurt Gödel, Alan Turing,
Teoria da Alonzo Church, . . .
Computabili-
dade Ex: Não existe um algoritmo para determinar se uma sentença matemática é
Bibliografia verdadeira ou falsa!
Apêndices I Como conseqüência deste resultado, foram desenvolvidos vários modelos
teóricos de computadores que eventualmente contribuíram para a
construção dos computadores modernos.

Motivação (4 – 5 de 481)
Introdução
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Teoria dos Autômatos
Sistema Formal
Paradoxos
I Definições e propriedades de modelos matemáticos de computação:
Matemáticos
Hilbert
I Autômatos Finitos → processamento de textos, compiladores, projeto de
Gödel
Turing
máquinas, etc.
Church I Gramática Livre de Contexto → linguagens de programação, inteligência
Máquinas de artificial, etc.
Turing

Teoria da
I Permite familiarização com definições formais de computação, ao mesmo
Computabili-
dade
que tempo que introduz conceitos relevantes a outras áreas não teóricas
Bibliografia
da Ciência da Computação.
I Teorias da Computabilidade e da Complexidade requerem uma definição
Apêndices
precisa do que é um computador.

Motivação (5 – 5 de 481)
Método Axiomático
ICCC 2024

Julliano
Nascimento

Introdução
Motivação I Consiste em aceitar sem prova certas proposições, como axiomas e
Sistema Formal
Paradoxos postulados, e depois derivar deles todas a proposições do sistema como
Matemáticos
Hilbert
teoremas.
Gödel
Turing
I Teoremas são obtidos por derivação dos axiomas e não por concordarem
Church
com fatos empíricos.
Máquinas de I Os axiomas constituem os “fundamentos” do sistema; os teoremas são a
Turing

Teoria da
“superestrutura” e são obtidos a partir dos axiomas com a ajuda dos
Computabili- princípios da lógica.
dade
I Partindo de poucas definições iniciais (axiomas), podemos deduzir uma
Bibliografia
série de verdades (teoremas), usando regras de inferência.
Apêndices
I Se for possível comprovar a veracidade dos axiomas, a consistência de
todos os teoremas deles derivados está garantida!!!

Sistema Formal (6 – 10 de 481)


Geometria Euclidiana
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert I A geometria elementar é ensinada como uma disciplina dedutiva, não é
Gödel
Turing uma ciência experimental (observação).
Church

Máquinas de I Como os axiomas da geometria euclidiana pareciam ser verdades óbvias


Turing
do espaço, a consistência desse sistema era então vista como inatacável.
Teoria da
Computabili-
dade
I A antiga idéia que os axiomas devem ser escolhidos por serem
Bibliografia
intuitivamente óbvios revelou-se equivocada.
Apêndices

Sistema Formal (7 – 10 de 481)


Método Axiomático
ICCC 2024

Julliano
Nascimento
Como provar a consistência de axiomas?
Introdução
I Ao fim do século XIX os matemáticos se depararam com situações que
Motivação
Sistema Formal
apontavam a necessidade de uma fundamentação mais cuidadosa da
Paradoxos
Matemáticos
Matemática.
Hilbert
Gödel I O aparato matemático da época era insuficiente para formalizar alguns
Turing
Church fenômenos.
Máquinas de
Turing
I Existência de conceitos parcialmente compreendidos e formalizados
Teoria da
gerou inquietação nos principais matemáticos da época:
Computabili- I Dedekind,
dade
I Cauchy,
Bibliografia
I Peano,
Apêndices
I Hilbert,
I Bolzano,
I Cantor,
..
I .

Sistema Formal (8 – 10 de 481)


Abordagem Formalista
ICCC 2024

Julliano
Nascimento

Introdução I A idéia de considerar um sistema formal empolgava os matemáticos do


Motivação
Sistema Formal século XIX.
Paradoxos
Matemáticos I A empolgação com os avanços matemáticos e a explicação de conceitos
Hilbert
Gödel
Turing
matemáticos através de outros conceitos mais simples conduziram alguns
Church matemáticos a uma abordagem que mais tarde ficou conhecida como
Máquinas de
Turing
Abordagem Formalista.
Teoria da I Os formalistas concebiam a matemática como sistema puramente formal,
Computabili-
dade consistindo na manipulação de símbolos desprovidos de significado ou
Bibliografia interpretação.
Apêndices I Um sistema formal consiste em dois componentes, uma linguagem formal
e um conjunto de regras de inferência.
I Um sistema formal pode servir como descrição de um determinado espaço
ou domínio do real.

Sistema Formal (9 – 10 de 481)


Uma ameaça ao formalismo matemático
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert
Gödel
Turing I Empenhados em explicar a matemática através de símbolos, regras
Church
precisas, os formalistas prosseguiam em sua utopia.
Máquinas de
Turing I Foram fortemente motivados pela descoberta de paradoxos que
Teoria da
Computabili- demonstravam a fragilidade da matemática, baseada na intuição.
dade

Bibliografia

Apêndices

Sistema Formal (10 – 10 de 481)


Paradoxo do Barbeiro
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Tabuleta numa barbearia de Sevilha
Sistema Formal
Paradoxos
“Faço a barba de todas (e somente das) pessoas que não fazem a sua própria
Matemáticos
Hilbert
barba.”
Gödel
Turing
Church Dúvida
Máquinas de
Turing
I O barbeiro barbeia a si mesmo?
Teoria da
Computabili-
dade
Resposta
Bibliografia SIM O barbeiro não barbeia quem faz a barba a si próprio!!!
Apêndices
NÃO O barbeiro barbeia todos que não fazem barba a si próprio!!!

Paradoxos (11 – 20 de 481)


Paradoxo de Zenon
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
I Aquiles e a Tartaruga decidem apostar uma corrida de 100 metros.
Matemáticos
Hilbert
I Aquiles corre 10 vezes mais rápido do que a tartaruga, e por isto, a
Gödel
Turing tartaruga inicia com 80 metros de vantagem.
Church

Máquinas de
I Aquiles percorre rapidamente a distância inicial que o separa da
Turing
tartaruga, mas ao alcançar os 80 metros iniciais, a tartaruga já se
Teoria da
Computabili- encontrará 8 metros à frente.
dade
I Ao alcançar mais 8 metros à frente, a tartaruga já terá avançado mais 0,8
Bibliografia

Apêndices
metros.
I Aquiles nunca alcançará a tartaruga!!!

Paradoxos (12 – 20 de 481)


Paradoxo de Zenon
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
I Os matemáticos anteriores ao século XIX supunham que a soma de
Hilbert
Gödel infinitos intervalos fosse infinita.
Turing
Church I A experimentação sugeria o contrário.
Máquinas de I Isto demonstra que a matemática da época era insuficiente para formalizar
Turing
algumas idéias.
Teoria da
Computabili-
dade
I Solução do Paradoxo: os intervalos formam uma progressão geométrica e
Bibliografia sua soma converge para um valor finito (Aquiles alcança a tartaruga em
Apêndices um tempo finito).

Paradoxos (13 – 20 de 481)


Paradoxo de Richard
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert
Gödel
I Considere que todas as propriedades dos números possam ser
Turing
Church
expressas em linguagem natural.
Máquinas de I Considere a classificação destas expressões por ordem de tamanho e,
Turing
para expressões de mesmo tamanho, por ordem alfabética.
Teoria da
Computabili- I A menor expressão recebe o número 1, a próxima a seguir recebe o número
dade
2, e assim por diante.
Bibliografia

Apêndices

Paradoxos (14 – 20 de 481)


Paradoxo de Richard
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
“Um número é Richardiano se ele NÃO possui a propriedade denotada por
Paradoxos
Matemáticos
ele.”
Hilbert
Gödel
Turing
Church
I Seja 15 associado à expressão “É primo”:
Máquinas de
Turing 1. . . .
Teoria da 2. . . .
Computabili- ..
dade .
Bibliografia 14. . . .
Apêndices 15. “É primo.”
I Então15 é Richardiano, pois 15 não é primo.

Paradoxos (15 – 20 de 481)


Paradoxo de Richard
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
“Um número é Richardiano se ele NÃO possui a propriedade denotada por
Sistema Formal
Paradoxos
ele.”
Matemáticos
Hilbert
Gödel Dúvida
Turing
Church I Seja N correspondente à expressão: “É Richardiano”.
Máquinas de
Turing I O número N é Richardiano???
Teoria da
Computabili-
dade Resposta:
Bibliografia
SIM N não possui a propriedade de ser Richardiano!!!
Apêndices
NÃO N possui a propriedade de ser Richardiano!!!
I N é Richardiano se e somente se N não é Richardiano!!!

Paradoxos (16 – 20 de 481)


O Paradoxo de Russel
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert
Gödel
Turing
Church

Máquinas de “Seja Z o conjunto {X tal que X < X}. Questiona-se: Z ∈ Z?”


Turing

Teoria da
Computabili-
dade

Bibliografia

Apêndices

Paradoxos (17 – 20 de 481)


Elementos comuns aos paradoxos
ICCC 2024

Julliano
Nascimento

Introdução I A confusão proposital entre linguagem (matemática) e metalinguagem


Motivação
Sistema Formal (metamatemática):
Paradoxos
Matemáticos 1. Um número é Richardiano se ele NÃO possui a propriedade denotada por
Hilbert
Gödel
ele.
Turing
I Matemática: “número”.
Church
I Metamatemática: “propriedade denotada por ele”.
Máquinas de
Turing 2. Seja Z o conjunto {X tal que X < X}.
Teoria da I Matemática: “o conjunto”.
Computabili-
dade I Metamatemática: “{X tal que X < X}”.
Bibliografia 3. O barbeiro de Sevilha faz a barba de todas as (e somente das) pessoas em
Apêndices Sevilha que não fazem a barba a si próprias.
I Linguagem: “O barbeiro de Sevilha faz a barba de todas as (e somente das)
pessoas em Sevilha”.
I Metalinguagem: “que não fazem a barba a si próprias.”

Paradoxos (18 – 20 de 481)


Elementos comuns aos paradoxos
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert
Gödel
I Auto-referência:
Turing
Church 1. Um número é Richardiano se ele NÃO possui a propriedade denotada por
Máquinas de ele.
Turing
2. Seja Z o conjunto {X tal que X < X}.
Teoria da
Computabili-
3. O barbeiro de Sevilha faz a barba de todas as (e somente das) pessoas em
dade Sevilha que não fazem a barba a si próprias.
Bibliografia

Apêndices

Paradoxos (19 – 20 de 481)


Elementos comuns aos paradoxos
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert
Gödel
I Sentenças auto-excludentes:
Turing
Church 1. Um número é Richardiano se ele NÃO possui a propriedade denotada por
Máquinas de ele.
Turing
2. Seja Z o conjunto {X tal que X < X}.
Teoria da
Computabili-
3. O barbeiro de Sevilha faz a barba de todas as (e somente das) pessoas em
dade Sevilha que não fazem a barba a si próprias.
Bibliografia

Apêndices

Paradoxos (20 – 20 de 481)


O infinito “completado”
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Cauchy (1789–1857)
Sistema Formal
Paradoxos I Formula a aritmetização da análise, define limite, funções, funções
Matemáticos
Hilbert
Gödel
contínuas e convergência de séries e seqüências infinitas.
Turing
Church

Máquinas de
Turing
I A soma dos infinitos termos de uma P. G. está bem definida quando
Teoria da
Computabili- |q| < 1:
dade ∞
X a1
Bibliografia
S∞ = a1 qn = .
Apêndices 1−q
n=0

Matemáticos (21 – 24 de 481)


O conceito do infinito
ICCC 2024

Julliano
Nascimento
Dedekind (1831–1916)
Introdução
I Estabelece o conceito de infinito, o Princípio da Indução e o conceito de
Motivação
Sistema Formal
número real.
Paradoxos
Matemáticos
Hilbert
Gödel
Turing
Church
I “Diz-se que um sistema S é infinito quando é semelhante a uma parte
Máquinas de própria dele mesmo; caso contrário S se diz sistema finito.
Turing
I S0 é infinito se existe uma bijeção f : S0 → S e S ⊂ S0 .
Teoria da
Computabili-
dade

Bibliografia Exemplo 1.1


Apêndices
N
I O conjunto dos números Naturais é infinito!
P N
I Os elementos do conjunto ⊂ dos números pares estão em
N
correspondência biunívoca com os elementos de ( 2i : → e P N
N P
2i : → ).

Matemáticos (22 – 24 de 481)


O “receio” do infinito
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal Cantor (1845–1918)
Paradoxos
Matemáticos
Hilbert
I Define a Teoria dos Conjuntos e prova a existência de conjuntos infinitos
Gödel
Turing
com diferentes cardinalidades.
Church

Máquinas de
Turing

Teoria da I Existem diferentes cardinais infinitos!!!


N N N
Computabili-
dade I Diagonalização finita (| | = | × |).
Bibliografia

Apêndices
N N
I Diagonalização infinita (| | < |P( )|).

Matemáticos (23 – 24 de 481)


Antecedentes Históricos
ICCC 2024

Julliano
Nascimento
Fundamentação da Matemática
Introdução
Motivação I Ao fim do século XIX os matemáticos começam a se deparar com
Sistema Formal
Paradoxos situações que apontam a necessidade de uma fundamentação mais
Matemáticos
Hilbert cuidadosa da Matemática.
Gödel
Turing I Conceitos não completamente compreendidos e formalizados levam a
Church
grandes avanços neste período:
Máquinas de
Turing I Dedekind (1831–1916): Princípio da Indução e conceito de número real.
Teoria da I Cauchy (1789–1857): Aritmetização da análise, definição de limite,
Computabili-
dade funções, funções contínuas e convergência de séries e seqüências infinitas.
Bibliografia
I Peano (1858–1932): Axiomatização da Aritmética.
Apêndices
I Hilbert (1868–1943): Fundamentação da Geometria.
I Bolzano (1781–1848): Noção abstrata de conjunto finito e infinito.
I Cantor (1845–1918): Teoria dos Conjuntos e existência de conjuntos
infinitos com diferentes cardinalidades.

Matemáticos (24 – 24 de 481)


Antecedentes Históricos
ICCC 2024

Julliano
Nascimento
Paris, 1900
Introdução
Motivação I International Congress of Mathematicians in Paris, 1900.
Sistema Formal
Paradoxos
Matemáticos I David Hilbert reuniu reuniu 23 problemas em aberto e convocou uma
Hilbert
Gödel união de esforços para que se buscasse a solução daqueles problemas.
Turing
Church I Episódio relevante na busca pela fundamentação da matemática:
Máquinas de I Na época os matemáticos e filósofos se sentiam incomodados com a
Turing

Teoria da
existência de problemas cuja falsidade ou veracidade, até então, não
Computabili- haviam sido provadas.
dade
I A presença de problemas supostamente verdadeiros ou supostamente
Bibliografia
falsos permeando todo aparato matemático representava uma ameaça ao
Apêndices
rigor matemático que se buscava.
I Não havia consenso com relação a uma parte da matemática identificada
por Hilbert como ideal ou abstrata.

Hilbert (25 – 36 de 481)


Antecedentes Históricos
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
A visão de David Hilbert
Sistema Formal
Paradoxos
I Contrapunha à matemática ideal o conjunto de números naturais e suas
Matemáticos
Hilbert
manipulações finitárias (matemática real).
Gödel
Turing
I Acreditava na matemática como um sistema formal, sustentado por uma
Church
pequena quantidade de axiomas, e completo:
Máquinas de
Turing I Qualquer proposição expressa naquele sistema poderia ser provada no
Teoria da próprio sistema.
Computabili-
dade I Matemática infinitária (ideal) vinha a ser uma extensão conservativa da
Bibliografia matemática finitista:
Apêndices I A qualquer enunciado demonstrado na matemática ideal tem-se uma prova
na matemática real.

Hilbert (26 – 36 de 481)


Paris, 1900
ICCC 2024

Julliano
Nascimento
Hilbert, D. (1900)
Introdução
Motivação
Sistema Formal
(. . . ) Essa convicção da solubilidade de qualquer problema matemático
Paradoxos
Matemáticos
representa para nós um poderoso estímulo durante o trabalho; escutamos em
Hilbert nós a voz constante: “Esse é o problema, procura a solução. Podes
Gödel
Turing encontrá-la pelo pensamento puro, pois em matemática não existe nenhum
Church

Máquinas de
ignorabimus!”.
Turing

Teoria da Desafio!!!
Computabili-
dade I International Congress of Mathematicians in Paris, 1900
Bibliografia I 23 problemas em aberto, para os quais buscava-se uma solução.
Apêndices I Um desafio aos matemáticos da época!!!
I Chamada a uma união de esforços para que se buscasse a solução
daqueles problemas.

Hilbert (27 – 36 de 481)


Problemas de Hilbert
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos Desafio!!!
Matemáticos
Hilbert I International Congress of Mathematicians in Paris, 1900.
Gödel
Turing
Church
I 23 problemas matemáticos identificados como desafios para o século que
Máquinas de iniciava.
Turing
I 10º problema da lista diz respeito a algoritmos!
Teoria da
Computabili-
dade
I Definição de Algoritmo (informal):
Bibliografia
I Coleção finita de instruções simples para a execução de alguma tarefa.
Apêndices

Hilbert (28 – 36 de 481)


Problemas de Hilbert
ICCC 2024

Julliano
Nascimento

Introdução I Polinômio:
Motivação
Sistema Formal
Paradoxos
I Soma de termos, compostos de produtos de variáveis e um coeficiente
Matemáticos constante.
Hilbert
Gödel
Turing
I 6 · x · x · x · y · z · z = 6x3 yz2
Church
I 6x3 yz2 + 3xy2 − x3 − 10 = 0
Máquinas de
Turing I Raiz de um polinômio é uma atribuição de valores às variáveis tal que o
Teoria da valor do polinômio seja 0.
Computabili-
dade I x = 5, y = 3 e z = 0 ⇒ raiz inteira
Bibliografia
I Alguns polinômios tem raiz inteira e outros não!
Apêndices

10º Problema
Desenvolver um algoritmo para testar se um polinômio tem uma raiz inteira.

Hilbert (29 – 36 de 481)


Problemas de Hilbert
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
I Hilbert não usou o termo Algoritmo, mas um conceito intuitivo:
Sistema Formal
Paradoxos
I “. . . a process acoording to which it can be determined by a finite number of
Matemáticos
Hilbert
operations. . . ”
Gödel
Turing
I Sabe-se, hoje, que não existe um tal algoritmo!
Church
I Yuri Matijasevic, 1970.
Máquinas de
Turing I Conclusão virtualmente impossível, para matemáticos do início do século
Teoria da
Computabili-
20, apenas com o conceito intuitivo de algoritmo.
dade I Conclusão teve que esperar o desenvolvimento de uma definição clara de
Bibliografia
algoritmo.
Apêndices
I Conceito intuitivo pode ser adequado para criar algoritmos para certas
tarefas.
I Inútil para provar que não existe algoritmo para uma tarefa em particular.

Hilbert (30 – 36 de 481)


O programa de Hilbert
ICCC 2024

Julliano
Nascimento
Congresso Internacional de Bolonha, 1928
Introdução
Motivação
Sistema Formal
I O Programa de Hilbert propõe a formalização da matemática visando
Paradoxos
Matemáticos
garantir rigidez e solidez a toda construção matemática.
Hilbert
Gödel
I Em termos gerais, a proposta era mostrar que a matemática real é um
Turing
Church
sistema formal sustentado por um pequeno conjunto de axiomas:
Máquinas de 1. completo,
Turing 2. consistente e
Teoria da
Computabili-
3. decidível!!!
dade

Bibliografia

Apêndices De 1900 a 1930, grande parte da comunidade matemática mundial acreditou


na existência de uma matemática segura, finitária, provadamente correta e
livre de imprecisões.

Hilbert (31 – 36 de 481)


Antecedentes Históricos
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert
O Problema de Decisão de Hilbert
Gödel
Turing
I A terceira das questões:
Church
I “Hilbert’s Entscheidungsproblem”.
Máquinas de I Encontrar um mecanismo genérico (e finitário!) que, ao considerar um
Turing

Teoria da enunciado qualquer formulado em Lógica de Primeira Ordem, fosse capaz


Computabili-
dade
de verificar sua validade ou não.
Bibliografia

Apêndices

Hilbert (32 – 36 de 481)


A matemática “real”
ICCC 2024

Julliano
Nascimento

Introdução
Completa
Motivação
Sistema Formal I Há sempre um enunciado que pode ser expresso no sistema e cuja prova
Paradoxos
Matemáticos pode ser construída no próprio sistema.
Hilbert
Gödel
Turing
I Sistema capaz de provar ou refutar qualquer uma de suas afirmações.
Church

Máquinas de
Turing Consistente
Teoria da I Livre de contradições, ou seja, livre de paradoxos.
Computabili-
dade

Bibliografia
Decidível
Apêndices
I Existe um modo de distinguir as afirmações que podem ser demonstradas
das que não podem ser?

Hilbert (33 – 36 de 481)


Prova absoluta da consistência
ICCC 2024

Julliano
Nascimento

Introdução
Motivação Proposta de Hilbert
Sistema Formal
Paradoxos I Considerar matemática como signos sem significado e expressões que
Matemáticos
Hilbert ocorrem no interior do sistema.
Gödel
Turing I Possibilidade de compor enunciados usando-se signos e expressões e
Church
transmitindo importantes informações sobre o sistema formal.
Máquinas de
Turing I Estes enunciados pertencem ao que Hilbert chamou de metamatemática.
Teoria da
Computabili-
I A descrição, discussão teorização acerca dos sistemas pertencem à
dade metamatemática.
Bibliografia
I Os sistemas formais que os matemáticos constroem pertencem à
Apêndices
matemática.

Hilbert (34 – 36 de 481)


ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert Metamatemática
Gödel
Turing I Conjunto das articulações sobre os conceitos de matemática.
Church
I As fórmulas “0=1” e “5=2+3” pertencem à matemática.
Máquinas de
Turing I As afirmações “A equação ‘0=1’ é falsa” ou “A equação ‘5=2+3’ é
Teoria da verdadeira” pertencem à metamatemática.
Computabili-
dade

Bibliografia

Apêndices

Hilbert (35 – 36 de 481)


Prova absoluta da consistência
ICCC 2024

Julliano
Nascimento

Introdução
Motivação Proposta de Hilbert
Sistema Formal
Paradoxos
Matemáticos
I Através da análise de sentenças metamatemáticas, poder-se-ia mostrar
Hilbert
Gödel
que era impossível deduzir teoremas contraditórios.
Turing
Church
I Exigências do programa de Hilbert:
Máquinas de I não se poderia fazer menção a um numero infinito de propriedades
Turing
estruturais das fórmulas, nem realizar-se um número infinito de operações
Teoria da
Computabili- com as mesmas.
dade I não se fazer referência a consistência de outros sistemas axiomáticos.
Bibliografia
I O sistema deveria provar sua consistência utilizando seus próprios
Apêndices
recursos!

Hilbert (36 – 36 de 481)


A percepção de Gödel
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos I Com um sistema suficientemente complexo, complexo o suficiente para
Hilbert
Gödel representar toda a aritmética, o programa de Hilbert estará fadado ao
Turing
Church
insucesso:
Máquinas de I Na hipótese dos axiomas serem consistentes, existem sentenças
Turing
verdadeiras que não podem ser extraídas dos axiomas, ou seja, são
Teoria da
Computabili-
formalmente indecidíveis. O sistema é então dito incompleto.
dade
I Será possível encontrar uma afirmação que não possa ser provada dentro
Bibliografia

Apêndices
do sistema?

Gödel (37 – 61 de 481)


A percepção de Gödel
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert
Gödel
Turing
I Um sistema consistente em que fosse possível expressar paradoxos seria
Church naturalmente incompleto.
Máquinas de
Turing
I Ou a linguagem é suficientemente pobre, incapaz de expressar paradoxos
Teoria da
...
Computabili- I . . . ou o sistema é suficientemente pobre, incapaz de “provar” paradoxos !!!
dade

Bibliografia

Apêndices

Gödel (38 – 61 de 481)


Os Teoremas de Gödel
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos Viena, 1930/31
Matemáticos
Hilbert I Kurt Gödel, 1931. “Uber formal unentscheidbare Satze der Principia
Gödel
Turing
Church
Mathernatica und verwant der Systeme, I”, Monatshefte Math. Phys., 38
Máquinas de (1931). 173-198.
Turing

Teoria da
I Os Teoremas da Incompletude de Gödel jogam por terra as duas
Computabili-
dade
primeiras questões do programa de Hilbert, e o faz retornar de sua
Bibliografia aposentadoria para repensar as bases matemáticas.
Apêndices

Gödel (39 – 61 de 481)


Os Teoremas de Gödel
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos I Os Teoremas de Gödel focalizam sistemas formais “expressivos o
Matemáticos
Hilbert
suficiente” para conter a teoria dos números e enunciam (em versão
Gödel
Turing
informal):
Church
1. Todo sistema formal é incompleto, ou seja, há sempre um enunciado que
Máquinas de
Turing pode ser expresso no sistema, mas cuja prova, não pode ser construída no
Teoria da próprio sistema;
Computabili-
dade 2. O enunciado que declara a consistência de um sistema não pode ser
Bibliografia
provado no próprio sistema.
I Não se pode usar a matemática para provar a consistência da própria
Apêndices
matemática – circularidade.

Gödel (40 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert
Gödel
Turing
Church
“Seja T um sistema formal ‘suficientemente expressivo’. Então T é incompleto,
Máquinas de
Turing isto é, existem sentenças G em T tais que nem G nem ¬G são provadas em T”.
Teoria da
Computabili-
dade

Bibliografia

Apêndices

Gödel (41 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento

Introdução
Motivação A estratégia de Gödel
Sistema Formal
Paradoxos
Matemáticos
Hilbert
1. Reduzir a matemática à aritmética;
Gödel
Turing
I A aritmética era considerada a parte segura da matemática por ser concreta
Church
e finitária. Toda proposição da matemática deveria ser escrita como uma
Máquinas de
Turing
proposição da aritmética.
Teoria da 2. Enumerar as proposições matemáticas;
Computabili-
dade 3. Reproduzir a sentença auto-referente;
Bibliografia
4. Demonstrar que a sentença auto-referente não pode ser provada no
Apêndices
sistema.

Gödel (42 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento

Introdução
Motivação A estratégia de Gödel
Sistema Formal
Paradoxos
Matemáticos
Hilbert
1. Reduzir a matemática à aritmética;
Gödel
Turing 2. Enumerar as proposições matemáticas;
Church
I A classificação reduziria a números tanto as expressões matemáticas
Máquinas de
Turing quanto as expressões metamatemáticas. Qualquer destas expressões
Teoria da passaria a ser encarada como um número.
Computabili-
dade 3. Reproduzir a sentença auto-referente;
Bibliografia
4. Demonstrar que a sentença auto-referente não pode ser provada no
Apêndices
sistema.

Gödel (43 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento

Introdução
Motivação A estratégia de Gödel
Sistema Formal
Paradoxos
Matemáticos
Hilbert
1. Reduzir a matemática à aritmética;
Gödel
Turing 2. Enumerar as proposições matemáticas;
Church

Máquinas de
3. Reproduzir a sentença auto-referente;
Turing I Tomar o número referente a uma proposição negativa e aplicar a proposição
Teoria da
Computabili-
denotada ao número que a denota.
dade
4. Demonstrar que a sentença auto-referente não pode ser provada no
Bibliografia
sistema.
Apêndices

Gödel (44 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento

Introdução
Motivação A estratégia de Gödel
Sistema Formal
Paradoxos
Matemáticos
Hilbert
1. Reduzir a matemática à aritmética;
Gödel
Turing 2. Enumerar as proposições matemáticas;
Church

Máquinas de 3. Reproduzir a sentença auto-referente;


Turing
4. Demonstrar que a sentença auto-referente não pode ser provada no
Teoria da
Computabili- sistema.
dade
I Ao supor verdadeira a questão obtida pela auto-referência, conclui-se que a
Bibliografia
mesma é falsa, e ao supô-la falsa, conclui-se que é verdadeira.
Apêndices

Gödel (45 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert
A estratégia de Gödel
Gödel
Turing
1. Reduzir a matemática à aritmética:
Church
I Aritmética sofre menos interferência da intuição e do desejo. Não há
Máquinas de
Turing desenhos nem analogias com a natureza para guiar o raciocínio, que passa
Teoria da a se valer apenas de inserções lógicas.
Computabili- I O sistema deveria provar sua consistência utilizando seus próprios recursos!
dade

Bibliografia

Apêndices

Gödel (46 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento
A estratégia de Gödel
Introdução
Motivação
2. Enumerar as proposições matemáticas:
Sistema Formal
Paradoxos
Matemáticos I Associar a cada símbolo do cálculo formal um determinado número.
Hilbert
Gödel
Turing
I Repetir o mesmo para cada sentença e até mesmo para demonstrações.
Church

Máquinas de
I Assim, pode-se aritmetizar o cálculo, ou seja, espelhá-lo dentro da própria
Turing aritmética. (O sistema deveria provar sua consistência utilizando seus próprios
Teoria da recursos!)
Computabili-
dade

Bibliografia

Apêndices

Gödel (47 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento
A estratégia de Gödel
Introdução
Motivação
2. Enumerar as proposições matemáticas:
Sistema Formal
Paradoxos
Matemáticos I Fixar o conjunto finito de símbolos e estabelecer uma ordem arbitrária.
Hilbert
Gödel
Turing Sinal Número de Gödel Significado
Church
¬ 1 Não
Máquinas de
Turing ∨ 2 Ou
Teoria da
→ 3 Se. . . então
Computabili- ∃ 4 Existe
dade
= 5 Igual
Bibliografia 0 6 Zero
Apêndices s 7 Sucessor
( 8 Pontuação
) 9 Pontuação
, 10 Pontuação

Gödel (48 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento
A estratégia de Gödel
Introdução
Motivação
2. Enumerar as proposições matemáticas:
Sistema Formal
Paradoxos
Matemáticos I Associar números primos maiores do que 10 às variáveis independentes.
Hilbert
Gödel
Turing Variável Número de Gödel
Church
x 11
Máquinas de
Turing y 13
Teoria da
z 17
Computabili- w 19
dade

Bibliografia

Apêndices

Gödel (49 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento
A estratégia de Gödel
Introdução
Motivação
2. Enumerar as proposições matemáticas:
Sistema Formal
Paradoxos
Matemáticos I Associar o quadrado dos números primos maiores do que 10 aos símbolos de
Hilbert
Gödel funções.
Turing
Church
Função Número de Gödel
Máquinas de
Turing f 112
Teoria da g 132
Computabili- h 172
dade

Bibliografia

Apêndices

Gödel (50 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento
A estratégia de Gödel
Introdução
Motivação
2. Enumerar as proposições matemáticas:
Sistema Formal
Paradoxos
Matemáticos I Associar o cubo dos números primos maiores do que 10 aos predicados.
Hilbert
Gödel
Turing Predicado Número de Gödel
Church
p 113
Máquinas de
Turing q 133
Teoria da
r 173
Computabili- s 193
dade

Bibliografia

Apêndices

Gödel (51 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento
A estratégia de Gödel
Introdução
Motivação
2. Enumerar as proposições matemáticas:
Sistema Formal
Paradoxos
Matemáticos I Utilizar a seqüência de primos como base e o numero de cada símbolo como
Hilbert
Gödel expoente. Tomar o produto destes fatores.
Turing
Church

Máquinas de
“Existe um x que é sucessor de y” ≡ (∃x)(x = s y)
Turing

Teoria da 28 × 34 × 511 × 79 × 118 × 1311 × 175 × 197 × 2313 × 299


Computabili-
dade I A fórmula matemática não tem que fazer sentido
Bibliografia
I tendo apenas que ser possível dentro da escrita matemática.
Apêndices
∨¬ → 22 × 31 × 53 = 1500
I 100 = 22 × 52 não é número de Gödel!!!

Gödel (52 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento

Introdução A estratégia de Gödel


Motivação
Sistema Formal
Paradoxos
3. Reproduzir a sentença auto-referente.
Matemáticos
Hilbert
Gödel
#p número de Gödel da fórmula p.
Turing
Church p ⇒ q “p é a prova de q”.
Máquinas de
Turing

Teoria da
Computabili-
dade

Bibliografia

Apêndices

Gödel (53 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento

Introdução A estratégia de Gödel


Motivação
Sistema Formal
Paradoxos
3. Reproduzir a sentença auto-referente.
Matemáticos
Hilbert
Gödel
Turing
Para uma dada fórmula B(x),
Church
A ⇒ B(#A)
Máquinas de
Turing
significa que:
Teoria da
Computabili- A é a prova de B(#A),
dade

Bibliografia ou seja,
Apêndices A é a prova de que seu número satisfaz B.

Gödel (54 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento

Introdução A estratégia de Gödel


Motivação
Sistema Formal
Paradoxos
3. Reproduzir a sentença auto-referente.
Matemáticos
Hilbert
Gödel
Turing
Suponha, agora, que B(x) expressa:
Church

Máquinas de
Turing
“x é número de uma prova’.
Teoria da
Computabili- A sentença de Gödel é uma sentença A que satisfaz:
dade

Bibliografia
A ⇔ ¬B(#A).
Apêndices

A é a prova de que seu número não é número de uma prova.

Gödel (55 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento

Introdução A estratégia de Gödel


Motivação
Sistema Formal
Paradoxos
3. Reproduzir a sentença auto-referente.
Matemáticos
Hilbert
Gödel
I A ⇔ ¬B(#A):
Turing
Church
A Um número é Richardiano . . .
Máquinas de
Turing
⇔ . . . se e somente se . . .
Teoria da
¬B() . . . ele não possui a propriedade . . .
Computabili- #A . . . denotada por ele.
dade

Bibliografia

Apêndices

Gödel (56 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal A estratégia de Gödel
Paradoxos
Matemáticos
Hilbert 4. Demonstrar que
Gödel
Turing a sentença auto-referente (A ⇔ ¬B(#A)) não pode ser provada no sistema.
Church

Máquinas de I Se A é verdadeira então ¬B(#A) também é.


Turing

Teoria da I Decorre, então, que a sentença de número #A, não pode ser demonstrada,
Computabili-
dade sendo portanto, falsa.
Bibliografia
I Porém a sentença #A é a própria A.
Apêndices

Gödel (57 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal A estratégia de Gödel
Paradoxos
Matemáticos
Hilbert 4. Demonstrar que
Gödel
Turing a sentença auto-referente (A ⇔ ¬B(#A)) não pode ser provada no sistema.
Church

Máquinas de I Se A é falsa então ¬B(#A) também é.


Turing

Teoria da I Decorre, então, que a sentença de número #A, pode ser demonstrada, sendo
Computabili-
dade portanto, verdadeira.
Bibliografia
I Porém a sentença #A é a própria A.
Apêndices

Gödel (58 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal A estratégia de Gödel
Paradoxos
Matemáticos
Hilbert 4. Demonstrar que
Gödel
Turing a sentença auto-referente (A ⇔ ¬B(#A)) não pode ser provada no sistema.
Church

Máquinas de I Conclui-se então que, se A é verdadeira, então é falsa, e se A é falsa então é


Turing

Teoria da
verdadeira, o que não é possível!!!
Computabili-
dade

Bibliografia

Apêndices

Gödel (59 – 61 de 481)


O Teorema da Incompletude
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert
Gödel
Conclusões
Turing
Church I O Teorema da Incompletude de Gödel mostra que um sistema consistente
Máquinas de é naturalmente incompleto, ou seja, existem sentenças que apesar de
Turing

Teoria da
expressas no sistema, não podem ser provadas no sistema.
Computabili-
dade

Bibliografia

Apêndices

Gödel (60 – 61 de 481)


Consequências dos Teoremas de Gödel
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal I O primeiro Teorema mostra à comunidade matemática da época que a
Paradoxos
Matemáticos
Hilbert
busca pela solução de alguns dos problemas relacionados por Hilbert
Gödel
Turing
poderia ser inútil.
Church

Máquinas de I O segundo Teorema vai de encontro à formalização da matemática.


Turing
Demonstrar a consistência da matemática enquanto sistema formal
Teoria da
Computabili- implicaria em circularidade: usar a matemática para provar a consistência
dade
da própria matemática.
Bibliografia

Apêndices I A divulgação dos Teoremas de Gödel causa uma enorme angústia dentre
a comunidade matemática!

Gödel (61 – 61 de 481)


O trabalho de Turing
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
“Computável”
Sistema Formal
Paradoxos Alan Turing, 1936. “On computable numbers, with an application to the
Matemáticos
Hilbert Entscheidungsproblem”. Proceedings of the London Mathematical Society,
Gödel
Turing Series 2, 42, pp 230-265.
Church

Máquinas de
Turing

Teoria da
I O estudante de graduação Alan Turing em 1936:
Computabili-
dade
I Introduz a noção de computabilidade.
Bibliografia
I Apresenta uma máquina hipotética através da qual ele formaliza o conceito
Apêndices
de computável.
I Mostra que o Problema de Decisão de Hilbert não tem solução.

Turing (62 – 69 de 481)


O que é Computabilidade?
ICCC 2024

Julliano
Nascimento

Introdução “Computável”
Motivação
Sistema Formal
Paradoxos
I Termo para designar o conjunto de números reais cuja expansão decimal
Matemáticos
Hilbert
pode ser calculada em tempo finito, através de recursos finitos.
Gödel I Corresponde ao conjunto de funções computáveis.
Turing
Church I π é computável: dado n ∈ N, existe algoritmo e calcula seus n primeiros
Máquinas de dígitos decimais e para.
Turing

Teoria da
I “Máquina de Computar”: artefato teórico capaz de obter a expansão
Computabili-
dade decimal de todo número.
Bibliografia I Identificar os processos necessários para computar um número
Apêndices equivaleria a identificar o conjunto de números computáveis.
I Questão: O que pode ser efetuado pela máquina de computar?

Turing (63 – 69 de 481)


O que é Computabilidade?
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Alan Turing
Paradoxos
Matemáticos I Como responder à questão: Os números computados pela máquina
Hilbert
Gödel realmente formam o conjunto intuitivamente considerado “computável”?
Turing
Church

Máquinas de
I Prova matemática de que:
Turing ⇒ Todos os números “computáveis” podem ser obtidos pela máquina.
Teoria da
Computabili-
⇐ Todos os números que a máquina computa são números “computáveis”.
dade

Bibliografia I Suficiente para provar que a máquina não computa nada além do que
Apêndices “números computáveis”?

Turing (64 – 69 de 481)


O que é Computabilidade?
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Objeto e representação
Sistema Formal
Paradoxos
I Máquina de Turing: M = (S, Σ, Γ, δ, s0 , sa , sr ).
Matemáticos
Hilbert
Gödel I Correspondência do aparato formal com uma realidade:
Turing
Church I números e o processo real de computá-los em nossas mentes ou numa
Máquinas de máquina física do mundo real.
Turing

Teoria da I Algumas questões:


Computabili-
dade I Como estabelecer a correspondência exata entre a definição formal e o
Bibliografia objeto do mundo real ao qual a definição deve corresponder?
Apêndices I A definição apresentada reflete a realidade?
I A definição apresentada impõe uma nova a realidade?

Turing (65 – 69 de 481)


O que é Computabilidade?
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert
Objeto e representação
Gödel
Turing
I Tripla estratégia de Turing:
Church
I apelar à intuição;
Máquinas de
Turing
I estabelecer correspondências com outras definições que se proponham a
Teoria da definir o mesmo objeto; e
Computabili- I usar exemplos convincentes.
dade

Bibliografia

Apêndices

Turing (66 – 69 de 481)


O que é Computabilidade?
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos A atualidade
Matemáticos
Hilbert I Dado o enorme avanço tecnológico e científico desde 1936:
Gödel
Turing I “Computável” pode agora ser definido de modo comprovadamente fiel à
Church
realidade?
Máquinas de
Turing I Persiste a necessidade de apelar à intuição, a exemplos, e outras
Teoria da estratégias?
Computabili-
dade
I Os problemas considerados não computáveis em 1936 são os mesmos
Bibliografia
problemas não computáveis dos dias de hoje?
Apêndices

Turing (67 – 69 de 481)


O que é Computabilidade?
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Conceituação de tudo que pode ser realizado por computador.
Paradoxos
Matemáticos
Hilbert Importância para os estudantes de Ciência da Computação
Gödel
Turing
Church
I A Computabilidade mostra ao profissional em formação dois importantes
Máquinas de
resultados (negativos) com relação ao computador:
Turing 1. Constatação de que nem tudo se pode resolver através do computador
Teoria da
Computabili-
(conseqüência do trabalho de Kurt Gödel).
dade 2. Impossibilidade de caracterizar a classe de problemas computáveis
Bibliografia (abordado por Turing).
Apêndices I Visão informal: sabemos que existem problemas não resolvíveis através
de computadores, mas não sabemos exatamente quais são.

Turing (68 – 69 de 481)


O que é Computabilidade?
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert
Gödel
Turing É através do estudo da Computabilidade que o profissional da área de
Church

Máquinas de
informática adquire pleno conhecimento da real capacidade dos
Turing computadores, e passa a lidar com seu instrumento de trabalho de maneira
Teoria da
Computabili-
realística, sem mitos.
dade

Bibliografia

Apêndices

Turing (69 – 69 de 481)


O trabalho de Church
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert
Gödel
I No mesmo ano, um pouco antes de Turing, Church chega à mesma
Turing
Church conclusão, de forma independente, e por um caminho diverso àquele
Máquinas de traçado por Turing.
Turing

Teoria da
Computabili-
I Alonzo Church, 1936. “An unsolvable problem of elementary number
dade theory”. American J. of Math., 58(1936), 345 – 363.
Bibliografia

Apêndices

Church (70 – 75 de 481)


Church & Turing
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert
Gödel
Turing Turing e Church atacam a terceira questão levantada por Hilbert e põem fim a
Church

Máquinas de
abordagem formalista da matemática. Inicia-se uma nova era, onde problemas
Turing não solucionados se confundem com problemas não solucionáveis, e não há
Teoria da
Computabili-
mecanismo efetivo que permita distinguir um do outro.
dade

Bibliografia

Apêndices

Church (71 – 75 de 481)


Church & Turing
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
A máquinas de Turing
Matemáticos
Hilbert
Gödel
I Uma MT pode ser instruída para realizar qualquer tipo de cálculo
Turing
Church
imaginável.
Máquinas de I Permite a definição de uma “ordem” para todos os cálculos imagináveis.
Turing

Teoria da
I A partir dessa ordem, utilizando um argumento de diagonalização,
Computabili-
dade define-se um problema que, ao contrário do que pensava Hilbert, não
Bibliografia pode ser resolvido matematicamente (números não computáveis).
Apêndices

Church (72 – 75 de 481)


Lambda Cálculo
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
Paradoxos
Matemáticos
Hilbert
Gödel
Turing I Church responde a mesma questão com um formalismo chamado lambda
Church
cálculo.
Máquinas de
Turing I Foi de extrema importância para a IA (base para o Lisp, a primeira
Teoria da linguagem de programação voltada para a manipulação simbólica).
Computabili-
dade

Bibliografia

Apêndices

Church (73 – 75 de 481)


Church & Turing
ICCC 2024

Julliano
Nascimento

Introdução
Motivação I Apesar das enormes diferenças de notação e enfoque, Turing provou, em
Sistema Formal
Paradoxos um apêndice de seu artigo, a equivalência entre sua abordagem e a de
Matemáticos
Hilbert Church:
Gödel
Turing
I Os “cálculos” definidos por esses dois mecanismos são os únicos possíveis,
Church
e qualquer outro tipo de “cálculo” que possa ser inventado ou será menos
Máquinas de
Turing expressivo ou equivalente a eles.
Teoria da I Evidentemente, essa tese não pode ser “provada” no sentido matemático;
Computabili-
dade pode apenas ser refutada caso um mecanismo mais poderoso seja
Bibliografia encontrado.
Apêndices
I Até agora, todos os novos mecanismos de cálculo propostos desde a
década de 30 foram provados equivalentes a todos os demais.
I Redes neuronais, algoritmos genéticos, . . .

Church (74 – 75 de 481)


Tese de Church-Turing
ICCC 2024

Julliano
Nascimento

Introdução
Motivação
Sistema Formal
I Definição de algoritmo, 1936:
Paradoxos
Matemáticos
I Alonzo Church: Sistema de notação chamado λ-Cálculo.
Hilbert
Gödel
I Alan Turing: Máquina de Turing.
Turing I As duas definições são equivalentes.
Church

Máquinas de
Turing
Tese de Church-Turing
Teoria da
Computabili-
dade
I Conexão entre a noção informal de algoritmo e a definição exata.
Bibliografia
Noção Intuitiva Def. de Algoritmo
Apêndices
de Algoritmo ≡ (Máquina de Turing)

Church (75 – 75 de 481)


Hierarquia de Chomsky
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing
Máquinas de Turing
Tipo 0
Variações de MT’s
10º de Hilbert
Tipo 1 Recursivamente enumeráveis (NDTM)
Teoria da
Tipo 2 Recursivas (MT que para)
Computabili-
dade Sensível ao contexto (LBA)
Bibliografia Livre de contexto (NPDA)
Tipo 3
Apêndices Livre de contexto determinística (DPDA)
Regular (DFA)

Máquinas de Turing (76 – 98 de 481)


Máquinas de Turing
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de Modelos de dispositivos computacionais


Turing
Máquinas de Turing I Autômatos Finitos → adequado para dispositivos com pequena
Variações de MT’s
10º de Hilbert
quantidade de memória.
Teoria da
Computabili-
dade
I Autômatos com Pilha → adequado para dispositivos com memória
Bibliografia
ilimitada, mas de acesso limitado como pilha.
Apêndices

I Máquina de Turing → Similar aos autômatos, mas com memória ilimitada


e de acesso irrestrito.

Máquinas de Turing (77 – 98 de 481)


Máquinas de Turing
ICCC 2024

Julliano
Nascimento Modelo Simplificado
Introdução I Fita infinita é a memória ilimitada.
Máquinas de
Turing
I Cabeça de leitura/gravação move-se para a esquerda ou direita na fita.
Máquinas de Turing
Variações de MT’s
I Conteúdo inicial da fita é a cadeia de entrada (demais posições da fita em
10º de Hilbert
branco).
Teoria da
Computabili- I Processa até produzir uma saída (aceita/rejeita).
dade

Bibliografia

Apêndices
a b a a ...

Controle Finito
de Estados

Máquinas de Turing (78 – 98 de 481)


Máquinas de Turing
ICCC 2024

Julliano
Nascimento

Introdução
Exemplo 2.1
Máquinas de I L = {u#u | u ∈ {0, 1}∗ }.
Turing
Máquinas de Turing
Variações de MT’s I Máquina de Turing para verificar se w = u#u ∈ L, com u ∈ {0, 1}∗ :
10º de Hilbert

Teoria da
1. Verificar se o símbolo # pertence a w.
Computabili- I Em caso negativo, rejeita.
dade

Bibliografia 2. Verificar se posições relativas à direita e à esquerda do símbolo # contém o


Apêndices mesmo símbolo.
I Em caso negativo, rejeita.

3. Após testar os símbolos à esquerda do símbolo #, verificar se ainda tem


símbolos à direita sem testar.
I Em caso positivo rejeita e em caso negativo aceita.

Máquinas de Turing (79 – 98 de 481)


Máquinas de Turing
ICCC 2024

Julliano
Nascimento
Exemplo 2.2
Introdução

Máquinas de
I L = {u#u | u ∈ {0, 1}∗ }.
Turing
Máquinas de Turing
Variações de MT’s 0 1 1 0 0 0 # 0 1 1 0 0 0 ...
10º de Hilbert

Teoria da x 1 1 0 0 0 # 0 1 1 0 0 0 ...
Computabili-
dade

Bibliografia x 1 1 0 0 0 # x 1 1 0 0 0 ...
Apêndices
x 1 1 0 0 0 # x 1 1 0 0 0 ...

x x 1 0 0 0 # x 1 1 0 0 0 ...

x x x x x x # x x x x x x ...
aceita

Máquinas de Turing (80 – 98 de 481)


Máquinas de Turing
ICCC 2024

Julliano
Nascimento

Introdução Definição 2.3


Máquinas de
Turing I Uma Máquina de Turing é definida pela 7-upla M = (S, Σ, Γ, δ, s0 , sa , sr ),
Máquinas de Turing
Variações de MT’s
onde:
10º de Hilbert
I S é o conjunto de estados,
Teoria da
Computabili- I Σ é o alfabeto de entrada ( < Σ),
dade

Bibliografia I Γ é o alfabeto da fita ( ∈ Γ e Σ ⊂ Γ),


Apêndices I δ : S × Γ → S × Γ × {E, D} é a função de transição,
I s0 ∈ S é o estado inicial,
I sa ∈ S é o estado de aceitação, e
I sr ∈ S é o estado de rejeição (sa , sr ).

Máquinas de Turing (81 – 98 de 481)


Funcionamento de uma MT
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing I M = (S, Σ, Γ, δ, s0 , sa , sr ):
Máquinas de Turing
Variações de MT’s 1. Entrada w = w1 w2 . . . wn ∈ Σ∗ nas n posições à esquerda na fita.
10º de Hilbert
2. Restante da fita fica em branco.
Teoria da
Computabili- 3. Cabeça de leitura/gravação posicionada na primeira posição da fita.
dade
4. Mudança de posição da cabeça de leitura/gravação é determinada pela
Bibliografia
função de transição.
Apêndices
5. Qualquer movimento para a esquerda do início da fita coloca a cabeça no
início da fita.
6. Processamento prossegue até alcançar ou o estado de aceitação ou o de
rejeição.

Máquinas de Turing (82 – 98 de 481)


Máquinas de Turing
ICCC 2024

Julliano
Nascimento
Definição 2.4
Introdução I Configuração C = usv:
Máquinas de I s : Estado corrente no processamento (s ∈ S).
Turing
Máquinas de Turing I uv : Conteúdo da fita (u, v ∈ Γ∗ ).
Variações de MT’s
10º de Hilbert I v1 : Posição da cabeça de leitura/gravação (v = v1 v2 . . . vk ).
Teoria da
Computabili-
I Configuração C1 gera configuração C2 se a máquina passa da
dade
configuração C1 para a C2 em um único passo.
Bibliografia

Apêndices
Exemplo 2.5
I Configuração 1011si 01111:
1 0 1 1 0 1 1 1 1 ...

si

Máquinas de Turing (83 – 98 de 481)


Máquinas de Turing
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing I Funcionamento:
Máquinas de Turing
Variações de MT’s I a, b, c ∈ Γ.
10º de Hilbert
I u, v ∈ Γ∗ .
Teoria da
Computabili- I si , s j ∈ S.
dade

Bibliografia
I δ(si , b) = (s j , c, E) ⇒ uasi bv gera us j acv.
Apêndices I δ(si , b) = (s j , c, D) ⇒ uasi bv gera uacs j v.
I δ(si , b) = (s j , c, E) ⇒ si bv gera s j cv.
I δ(si , b) = (s j , c, D) ⇒ si bv gera cs j v.

Máquinas de Turing (84 – 98 de 481)


Máquinas de Turing
ICCC 2024

Julliano
Nascimento

Introdução Definição 2.6


Máquinas de
Turing I M = (S, Σ, Γ, δ, s0 , sa , sr ).
Máquinas de Turing
Variações de MT’s
10º de Hilbert
I M aceita a entrada w se existe uma sequência de configurações
Teoria da C1 , C2 , . . . , Ck , tal que:
Computabili-
dade I C1 = s0 w é a configuração inicial,
Bibliografia
I Cada Ci gera Ci+1 , e
Apêndices
I Ck é uma configuração de aceitação.

I sa é o estado de uma configuração de aceitação.


I sr é o estado de uma configuração de rejeição.

Máquinas de Turing (85 – 98 de 481)


Máquinas de Turing
ICCC 2024

Julliano
Nascimento

Introdução I M = (S, Σ, Γ, δ, s0 , sa , sr ).
Máquinas de
Turing
Máquinas de Turing
Variações de MT’s Definição 2.7
10º de Hilbert

Teoria da
I L(M) : linguagem de M.
Computabili-
dade I Linguagem reconhecida por M.
Bibliografia I Coleção de cadeias que M aceita.
Apêndices

Definição 2.8
I Linguagem L Turing-reconhecível:
I Existe uma máquina de Turing M tal que L(M) = L.
I Linguagem recursivamente enumerável.

Máquinas de Turing (86 – 98 de 481)


Máquinas de Turing
ICCC 2024

Julliano
Nascimento

Introdução I Resultados possíveis de M = (S, Σ, Γ, δ, s0 , sa , sr ):


Máquinas de I aceita, rejeita ou cicla.
Turing
Máquinas de Turing I M falha em aceitar uma cadeia se entra no estado sr ou quando cicla.
Variações de MT’s
10º de Hilbert
I Se M cicla, M simplesmente não para (não necessariamente repetindo os
Teoria da mesmos passos).
Computabili-
dade

Bibliografia Definição 2.9


Apêndices
I M decide uma linguagem L se a reconhece e para com qualquer entrada.
I Uma linguagem é decidível se alguma máquina de Turing a decide.
I Linguagem recursiva.
I Toda linguagem decidível é Turing-reconhecível, mas nem toda linguagem
Turing-reconhecível é decidível.

Máquinas de Turing (87 – 98 de 481)


Máquinas de Turing
ICCC 2024

Julliano
Nascimento Exemplo 2.10 (Linguagens decidíveis)
n
Introdução I L1 = {02 | n ≥ 0}.
Máquinas de
Turing
Máquinas de Turing
I L2 = {w#w | w ∈ {0, 1}∗ }.
Variações de MT’s

I L3 = {ai b3i | i ≥ 1}.


10º de Hilbert

Teoria da
Computabili-
dade I L4 = {ai b j ck | i. j = k e i, j, k ≥ 1}.
Bibliografia

Apêndices I L5 = {#x1 #x2 # . . . #xn | xi ∈ {0, 1}∗ e xi , x j , para cada i , j}.

Exemplo 2.11 (Linguagens Turing reconhecíveis)


I Todas as anteriores!

I No decorrer do curso: linguagens não decidíveis.

Máquinas de Turing (88 – 98 de 481)


Descrição de Máquinas de Turing
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing
Máquinas de Turing
Variações de MT’s I M = (S, Σ, Γ, δ, s0 , sa , sr ).
10º de Hilbert

Teoria da I Descrição formal:


Computabili-
dade I Especificação de cada um dos sete elementos.
Bibliografia I Tais descrições tendem a ser muito grandes.
Apêndices
I Descrição de alto nível:
I Esboço do modo de funcionamento.

Máquinas de Turing (89 – 98 de 481)


Exemplos de Máquinas de Turing
ICCC 2024

Julliano
Nascimento

Introdução Exemplo 2.12


Máquinas de n
Turing I L1 = {02 | n ≥ 0} = {0, 00, 0000, 00000000, . . . }.
Máquinas de Turing
Variações de MT’s
10º de Hilbert I w ∈ L1 .
Teoria da
Computabili- I Máquina de Turing M que reconhece L1 :
dade

Bibliografia 1. Percorrer a fita, da esquerda para a direita, e marcar um 0 e pular um 0.


Apêndices I Fita contém apenas um 0 ⇒ aceita.
I Fita contém um número ímpar n > 1 de 0´s ⇒ rejeita.

2. Mover a cabeça de leitura/gravação para o início da fita.


3. Voltar ao passo 1.

Máquinas de Turing (90 – 98 de 481)


Exemplos de Máquinas de Turing
ICCC 2024
Exemplo 2.13
Julliano
n
Nascimento I L1 = {02 | n ≥ 0}.
Introdução
I M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, X,}, δ, s0 , sa , sr ).
Máquinas de
Turing
Máquinas de Turing X→E
Variações de MT’s
0→E
10º de Hilbert

Teoria da
Computabili-
s0 0000 xxs2 x
s4
dade s1 000 xxxs2 
→D xs2 00 xxs4 x
Bibliografia X→D
→E x0s3 0 xs4 xx
Apêndices
0→ ,D x0xs2  s4 xxx
s0 s1 s2 X→D
0 → X, D x0s4 x s4 xxx
X→D
xs4 0x s1 xxx
→D →D 0→D 0 → X, D s4 x0x xs1 xx
s4 x0x xxs1 x
s1 x0x xxxs1 
sr sa s3 xs1 0x xxxsa

→D X→D
Máquinas de Turing (91 – 98 de 481)
Exemplos de Máquinas de Turing
ICCC 2024
Exemplo 2.14
Julliano
Nascimento
I L2 = {u#u | u ∈ {0, 1}∗ }.
Introdução

Máquinas de I Máquina de Turing para verificar se w = u#u ∈ L, com u ∈ {0, 1}∗ :


Turing
Máquinas de Turing 1. Verificar se o símbolo # pertence a w.
Variações de MT’s
10º de Hilbert
I Em caso negativo, rejeita.
Teoria da
Computabili- 2. Verificar se posições relativas à direita e à esquerda do símbolo # contém o
dade mesmo símbolo.
Bibliografia I Em caso negativo, rejeita.
Apêndices
3. Após testar os símbolos à esquerda do símbolo #, verificar se ainda tem
símbolos à direita sem testar.
I Em caso positivo rejeita e em caso negativo aceita.

Máquinas de Turing (92 – 98 de 481)


Exemplos de Máquinas de Turing
ICCC 2024
Exemplo 2.14
Julliano
Nascimento
I M = ({s0 , . . . , s13 , sa , sr }, {0, 1, #}, {0, 1, #, X,}, δ, s0 , sa , sr ):
Introdução
0, 1 → D 0, 1 → E 0, 1 → D X→D
Máquinas de
Turing
Máquinas de Turing
s2 s4 s6 s8
→D
Variações de MT’s
10º de Hilbert
#→E #→D

Teoria da
1 → , D
Computabili- 1 → X, D 1 → X, E
dade #→D X→D
X→D
Bibliografia

Apêndices s0 sa s11 s10 s9 0, 1, X, # → E


→D #→D →D

0 → , D 0 → X, D 0 → X, E

s1 #→E
s3 →D s5 #→D
s7

0, 1 → D 0, 1 → E 0, 1 → D X→D

Máquinas de Turing (93 – 98 de 481)


Exemplos de Máquinas de Turing
ICCC 2024
Exemplo 2.14
Julliano
Nascimento
I Versão simplificada:
Introdução
I M = ({s0 , . . . , s7 , sa , sr }, {0, 1, #}, {0, 1, #, X,}, δ, s0 , sa , sr ):
Máquinas de
Turing 0, 1 → D X→D
Máquinas de Turing
Variações de MT’s
10º de Hilbert
s2 s4
Teoria da #→D 1, X → E
Computabili-
dade
1 → X, D
Bibliografia 0, 1 → E
#→D X→D
Apêndices

s0 sa s7 s6 s5
→D #→E

0 → X, D X→E
X→D
0, X → E
#→D
s1 s3

0, 1 → D X→D
Máquinas de Turing (94 – 98 de 481)
Exemplos de Máquinas de Turing
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing
Exemplo 2.15
Máquinas de Turing
Variações de MT’s I L3 = {ai b3i | i ≥ 1}.
10º de Hilbert

Teoria da
Computabili-
dade a → X, D

Bibliografia

Apêndices a, Y → D a, Y → E Y → Y, D

s0
a → X, D b → Y, D b → Y, D
s3
b → Y, E X → X, D
s5 →D
s1 s2 s4 sa

Máquinas de Turing (95 – 98 de 481)


Exemplos de Máquinas de Turing
ICCC 2024

Julliano
Nascimento Exemplo 2.16
Introdução I L4 = {ai b j ck | i. j = k e i, j, k ≥ 1}.
Máquinas de
Turing
Máquinas de Turing
I MT para verificar se u ∈ L, com u ∈ {a, b, c}+ :
Variações de MT’s
10º de Hilbert
1. Verificar se u é da forma aa∗ bb∗ cc∗ (da esquerda para a direita).
Teoria da
I Em caso negativo, rejeita.
Computabili-
dade
2. Retornar cabeça de leitura/gravação para a extremidade esquerda.
Bibliografia

Apêndices 3. Marcar um a e percorrer a fita para a direita até encontrar um b.


Alternadamente, marcar b’s e c’s.
I Marcou todos os c’s e sobrou b’s, rejeita.

4. Se existir a’s sem marcar, desmarcar b’s e repetir passo 3.


5. Verificar se todos os c’s estão marcados.
I Em caso positivo aceita e em caso negativo rejeita.

Máquinas de Turing (96 – 98 de 481)


Exemplos de Máquinas de Turing
ICCC 2024

Julliano
Nascimento
Exemplo 2.17
Introdução
I L5 = {#x1 #x2 # . . . #xn | xi ∈ {0, 1}∗ e xi , x j , para cada i , j}.
Máquinas de
Turing I MT para verificar se w ∈ L:
Máquinas de Turing
Variações de MT’s
1. Marcar o símbolo mais à esquerda na fita.
10º de Hilbert
I Se espaço em branco, aceita; se # continua e caso contrário rejeita.
Teoria da
Computabili-
dade 2. Procurar o próximo # e marcá-lo.
Bibliografia
I Se nenhum # é encontrado, aceita (só x1 na fita!).
Apêndices
3. Comparar as cadeias à direita dos # marcados.
I Se iguais, rejeita.

4. Desmarcar o # da direita e marcar o próximo à sua direita.


I Se não encontrar #, desmarcar o # da esquerda e marcar os dois próximos à
sua direita (se disponível apenas um #, aceita).

5. Retornar ao passo 3.

Máquinas de Turing (97 – 98 de 481)


Exemplos de Máquinas de Turing
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing
Exemplo 2.18 (Exercícios)
Máquinas de Turing
Variações de MT’s
I Construir os diagramas de estados de máquinas de Turing que
10º de Hilbert
reconheçam, por estado final, as seguintes linguagens sobre o alfabeto
Teoria da
Computabili-
Σ = {a, b}:
dade
1. L1 = {ai b j | i ≥ 0, j ≥ i}.
Bibliografia 2. L2 = {ai b j ai b j | i, j > 0}.
Apêndices 3. L3 = {w ∈ {a, b}∗ | w contém o mesmo número de a’s e b’s}.
4. L4 N
= {an b3n | n ∈ + }.
5. L5 = {xcy | x, y ∈ {a, b}∗ e |x| , |y|}.

Máquinas de Turing (98 – 98 de 481)


Variações da Máquina de Turing
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
I Linear Bounded Automata.
Turing
Máquinas de Turing
Variações de MT’s
I Máquina com múltiplas fitas.
10º de Hilbert

Teoria da I Máquina não determinística.


Computabili-
dade

Bibliografia
I Decisor.
Apêndices
I Enumerador (Contador).

O modelo original e suas variações têm o mesmo poder de processamento, ou


seja, reconhecem a mesma classe de linguagens.

Variações de MT’s (99 – 120 de 481)


Robustez do Modelo da Máquina de Turing
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing
Máquinas de Turing
Variações de MT’s
10º de Hilbert
I M = (S, Σ, Γ, δ, s0 , sa , sr ).
Teoria da
I δ : S × Γ → S × Γ × {E, D}.
Computabili-
dade
I δ : S × Γ → S × Γ × {E, D, P}.
Bibliografia
I Permite a cabeça de leitura/gravação ficar parada.
Apêndices
I Esta característica aumenta o poder do modelo?
I Não! Pode-se simular um modelo com o outro.

Variações de MT’s (100 – 120 de 481)


Linear Bounded Automaton
ICCC 2024

Julliano
Nascimento

Introdução
I Máquina de Turing em que o movimento da cabeça de leitura/gravação é
Máquinas de
Turing
Máquinas de Turing
restrito ao pedaço da fita que contém a cadeia de entrada.
Variações de MT’s
10º de Hilbert
I Máquina de Turing com uma quantidade limitada de memória.
Teoria da
I Somente resolve problemas que requerem memória que cabe na fita usada
Computabili-
dade
para a cadeia de entrada.
I Ao usar um alfabeto da fita maior do que o alfabeto de entrada a memória
Bibliografia

Apêndices
disponível é aumentada de um fator constante.
I Dada uma entrada de tamanho n, a quantidade de memória disponível é
linear em n.

Controle
a b a b a
Fita de Trabalho

Variações de MT’s (101 – 120 de 481)


MT com múltiplas fitas
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing
I M = (S, Σ, Γ1 , Γ2 , . . . , Γk , δ, s0 , sa , sr ), onde:
Máquinas de Turing
Variações de MT’s I δ : S × Γk → S × Γk × {E, D}k .
10º de Hilbert

Teoria da
I k : número de fitas.
Computabili-
dade I δ(si , a1 , . . . , ak ) = (s j , b1 , . . . , bk , E, D, . . . , E):
Bibliografia
I si : estado corrente.
Apêndices
I Cabeças 1 a k lêem símbolos a1 , . . . , ak .
I s j : próximo estado.
I Cabeças 1 a k escrevem símbolos b1 , . . . , bk .

Variações de MT’s (102 – 120 de 481)


MT com múltiplas fitas
ICCC 2024

Julliano
Nascimento
Teorema 2.19
Introdução
Toda máquina de Turing com múltiplas fitas é equivalente a alguma máquina
Máquinas de
Turing de Turing com apenas uma fita.
Máquinas de Turing
Variações de MT’s
10º de Hilbert Demonstração.
Teoria da
Computabili-
I Simular a máquina de Turing com k fitas com uma máquina de Turing com
dade uma fita.
Bibliografia I M1 : Máquina com k fitas.
Apêndices I M2 : Máquina com 1 fita.
I Armazenar as k entradas da máquina M1 na fita da máquina M2 .
I Usar o símbolo # para separar as k entradas na fita M2 .
I Marcar na fita da máquina M2 as posições das cabeças de leitura/gravação.
I Usar novos símbolos que devem ser adicionados ao alfabeto da fita.

Variações de MT’s (103 – 120 de 481)


MT com múltiplas fitas
ICCC 2024

Julliano
Nascimento
Exemplo 2.20
Introdução

Máquinas de I M1 : Máquina com 3 fitas.


Turing
Máquinas de Turing
Variações de MT’s
I M2 : Máquina com 1 fita.
10º de Hilbert

Teoria da
Computabili- M1 0 1 0 1 0 └┘
...
dade

Bibliografia

Apêndices a a a └┘
...

b a └┘ ...

M2 # 0 1 0 1 0 # a a a # b a # └┘
...

Variações de MT’s (104 – 120 de 481)


MT com múltiplas fitas
ICCC 2024

Julliano
Nascimento

Introdução
I Comportamento de M2 com a entrada w = w1 · · · wn :
Máquinas de
Turing I Armazenar as k entradas da máquina M1 na fita da máquina M2 :
Máquinas de Turing

Variações de MT’s
10º de Hilbert
# w1 w2 · · · wn # • # • # · · · #
Teoria da
I Cabeça de leitura/gravação de M2 move-se do primeiro # ao (k + 1)-ésimo #
Computabili- para determinar as posições da cabeças virtuais.
dade

Bibliografia
I M2 realiza segunda passagem na fita para atualização (conforme função de
Apêndices
transição).
I Se uma das cabeças virtuais de M2 move-se para a direita e encontra um #:
I M1 move a correspondente cabeça para uma posição em branco da fita (ainda
não lida).
I M2 desloca o conteúdo da fita (a partir do #) e escreve o símbolo  na posição
aberta na fita.

Variações de MT’s (105 – 120 de 481)


MT com múltiplas fitas
ICCC 2024

Julliano
Nascimento Corolário 2.21
Introdução
Uma linguagem é Turing-reconhecível se e somente se alguma máquina de
Máquinas de Turing com múltiplas fitas a reconhece.
Turing
Máquinas de Turing
Variações de MT’s Demonstração.
10º de Hilbert

Teoria da ⇒
Computabili-
dade I Linguagem Turing-reconhecível é reconhecida por uma máquina de Turing
Bibliografia com apenas uma fita.
Apêndices
I Máquina de Turing com apenas uma fita é um caso especial de máquina
com múltiplas fitas.


I Consequência do teorema anterior.


Variações de MT’s (106 – 120 de 481)


MT não determinística (NTM)
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing
Máquinas de Turing
I M = (S, Σ, Γ, δ, s0 , sa , sr ), onde:
Variações de MT’s
10º de Hilbert I δ : S × Γ → P(S × Γ × {E, D}).
Teoria da
Computabili- I Processamento de uma NTM:
dade

Bibliografia I Subconjuntos de estados e transições organizados como uma árvore.


Apêndices I Ramos correspondem a diferentes opções de processamentos da máquina
(não determinismo).
I Se algum ramo leva a um estado de aceitação, a máquina aceita a entrada.

Variações de MT’s (107 – 120 de 481)


MT não determinística (NTM)
ICCC 2024

Julliano
Nascimento

Introdução Teorema 2.22


Máquinas de Toda máquina de Turing não determinística (NTM) é equivalente a alguma
Turing
Máquinas de Turing
máquina de Turing determinística (DTM).
Variações de MT’s
10º de Hilbert

Teoria da
Computabili-
Esquema da prova
dade
I Simular uma NTM qualquer com uma DTM.
Bibliografia

Apêndices I DTM deve testar todos os ramos do processamento da NTM.


I Encontrou um estado de aceitação em algum dos ramos?
Sim DTM aceita.
Não Simulação não termina.

Variações de MT’s (108 – 120 de 481)


MT não determinística (NTM)
ICCC 2024

Julliano
Nascimento Esquema da prova
Introdução I DNTM N e cadeia w.
Máquinas de
Turing I Processamento de w é uma árvore T:
Máquinas de Turing
Variações de MT’s
10º de Hilbert
I Cada ramo é uma das opções do não determinismo.
Teoria da I Cada nó é uma configuração de N.
Computabili-
dade I Raiz de T é a configuração inicial.
Bibliografia

Apêndices I Busca em profundidade em T, por DTM D, de um estado de aceitação:


I D pode descer em um ramo infinito e nunca encontrar estado de aceitação
em outro ramo.
I (Melhor abordagem) Busca em largura em T:
I Garantia de que D visita cada nó de T até encontrar configuração de
aceitação.

Variações de MT’s (109 – 120 de 481)


MT não determinística (NTM)
ICCC 2024

Julliano
Nascimento

Introdução
Esquema da prova
Máquinas de I DTM com três fitas:
Turing
Máquinas de Turing I Fita 1 → cadeia de entrada (nunca é alterada).
Variações de MT’s
10º de Hilbert I Fita 2 → cópia da fita da NTM em algum ramo do processamento.
Teoria da
Computabili- I Fita 3 → posição da DTM na árvore da processamento da NTM.
dade

Bibliografia
D 0 0 1 0 └┘
...
Apêndices
Entrada

x x # 0 1 x └┘
...

Simulação

1 2 3 3 2 3 1 2 1 1 3 └┘
...

Endereço

Variações de MT’s (110 – 120 de 481)


MT não determinística (NTM)
ICCC 2024

Julliano
Nascimento

Introdução
Esquema da prova
Máquinas de I Fita 3 da DTM:
Turing
Máquinas de Turing I Cada nó da árvore tem no máximo b filhos.
Variações de MT’s
10º de Hilbert I b → tamanho do maior conjunto possível de escolhas numa transição da NTM.
Teoria da
Computabili- I Cada nó recebe um endereço sobre o alfabeto Σb = {1, 2, . . . , b}.
dade
I 231 → 2o filho da raiz, 3o filho deste 2o e 1o filho desse 3o .
Bibliografia

Apêndices
I Cada símbolo indica a próxima transição da NTM a ser simulada.
I Endereço pode ser inválido e não corresponder a um nó.
I Símbolo não corresponde a uma escolha disponível para a configuração.
I Cadeia sobre Σb representa ramo do processamento da NTM da raiz até o
nó endereçado pela cadeia.

Variações de MT’s (111 – 120 de 481)


MT não determinística (NTM)
ICCC 2024

Julliano
Nascimento Esquema da prova
Introdução I Funcionamento da DTM:
Máquinas de
Turing 1. Fita 1 contém cadeia w e fitas 2 e 3 estão vazias.
Máquinas de Turing
Variações de MT’s 2. Copiar Fita 1 para Fita 2.
10º de Hilbert
3. Usar Fita 2 para simular a NTM com entrada w em um ramo do
Teoria da
Computabili- processamento.
dade I Antes de cada passo da NTM, consultar o próximo símbolo na Fita 3 para
Bibliografia determinar a transição a ser simulada.
Apêndices I Se Fita 3 está vazia ou escolha é inválida, abortar esse ramo e ir para o passo
4.
I Se encontrar configuração de rejeição, ir para o passo 4.
I Se encontrar configuração de aceitação, aceitar a cadeia w.

4. Trocar a cadeia da Fita 3 (próxima cadeia na ordem lexicográfica). Voltar ao


passo 2 (Simular o processamento da NTM no próximo ramo).

Variações de MT’s (112 – 120 de 481)


MT não determinística (NTM)
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing
Corolário 2.23
Máquinas de Turing
Variações de MT’s
Uma linguagem é Turing-reconhecível se e somente se alguma máquina de
10º de Hilbert Turing não determinística a reconhece.
Teoria da
Computabili-
dade Demonstração.
Bibliografia
⇒ Qualquer DTM é automaticamente uma NTM.
Apêndices
⇐ Consequência do Teorema anterior.

Variações de MT’s (113 – 120 de 481)


MT não determinística (NTM)
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing Corolário 2.24
Máquinas de Turing
Variações de MT’s Uma linguagem é decidível se e somente se alguma máquina de Turing não
10º de Hilbert
determinística a decide.
Teoria da
Computabili-
dade Demonstração.
Bibliografia

Apêndices
I Modificar a prova do teorema anterior para a DTM parar em um ramo do
processamento no qual NTM também para.


Variações de MT’s (114 – 120 de 481)


Decisor
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing
Máquinas de Turing
Variações de MT’s
10º de Hilbert

Teoria da
Computabili- I Máquina de Turing não determinística que para em todos os ramos do
dade

Bibliografia
processamento para todas as cadeias de entrada.
Apêndices

Variações de MT’s (115 – 120 de 481)


Enumerador (Contador)
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing
Máquinas de Turing
I Máquina de Turing com uma impressora acoplada.
Variações de MT’s
10º de Hilbert I Dispositivo de saída para cadeias “geradas” pela máquina.
Teoria da
Computabili-
Controle
dade 0 1 0 1 0 └┘
...
Fita de Trabalho
Bibliografia

Apêndices
Impressora
abba
baba
aa

Variações de MT’s (116 – 120 de 481)


Enumerador (Contador)
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing
Máquinas de Turing
Variações de MT’s I Começa o processamento com a fita de trabalho vazia.
10º de Hilbert

Teoria da I Se não para, pode imprimir uma lista infinita de cadeias.


Computabili-
dade I A linguagem enumerada por E é a coleção de cadeias eventualmente
Bibliografia impressas.
Apêndices
I E pode gerar as cadeias da linguagem em qualquer ordem, com possíveis
repetições.

Variações de MT’s (117 – 120 de 481)


Enumerador (Contador)
ICCC 2024

Julliano
Nascimento Teorema 2.25
Uma linguagem é Turing-reconhecível se e somente se algum Enumerador a
Introdução
gera.
Máquinas de
Turing
Máquinas de Turing
Variações de MT’s
Demonstração.
10º de Hilbert

Teoria da
⇐=
Computabili-
dade I Enumerador E que gera a linguagem L.
Bibliografia I Máquina de Turing M que reconhece L.
Apêndices
I Processamento de M com a cadeia w ∈ L:
1. Execute E. Compare w com cada cadeia gerada por E.
2. Se w aparece na saída de E, aceite.

Variações de MT’s (118 – 120 de 481)


Enumerador (Contador)
ICCC 2024

Julliano
Nascimento Teorema 2.25
Uma linguagem é Turing-reconhecível se e somente se algum Enumerador a
Introdução
gera.
Máquinas de
Turing
Máquinas de Turing
Variações de MT’s
Demonstração.
10º de Hilbert

Teoria da
=⇒
Computabili-
dade I Máquina de Turing M que reconhece L.
Bibliografia I Enumerador E que gera a linguagem L.
Apêndices
I s1 , s2 , . . . , si 7→ lista de todas as possíveis cadeias em Σ∗ .
I Processamento de E:
1. Ignore a cadeia de entrada.
2. Repita os passos 3 e 4 para i = 1, 2, 3, . . . .
3. Execute M por i passos para cada s1 , s2 , . . . , si .
4. Se qualquer processamento aceita, imprima a correspondente cadeia s.


Variações de MT’s (119 – 120 de 481)


Enumerador (Contador)
ICCC 2024

Julliano
Nascimento Teorema 2.25
Uma linguagem é Turing-reconhecível se e somente se algum Enumerador a
Introdução
gera.
Máquinas de
Turing
Máquinas de Turing
Variações de MT’s
Demonstração.
10º de Hilbert

Teoria da
=⇒
Computabili-
dade
I Se M aceita uma cadeia w, eventualmente w vai aparecer na lista gerada
Bibliografia por E.
Apêndices I Aparece na lista infinitas vezes.
I M é executada desde o início para cada cadeia e repetição do passo 2.
I Simula a execução de M em paralelo para todas as possíveis cadeias de
entrada.

Variações de MT’s (120 – 120 de 481)


10º Problema de Hilbert
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de I D = {p | p é um polinômio com raiz inteira}.


Turing
Máquinas de Turing
Variações de MT’s
10º de Hilbert Versão simplificada
Teoria da
Computabili- I D1 = {p | p é um polinômio sobre x com raiz inteira}.
dade
I Máquina de Turing M1 que reconhece D1 :
Bibliografia

Apêndices 1. Testar p com a variável x, sucessivamente, com valores


0, 1, −1, 2, −2, 3, −3, . . .
2. Se o valor do polinômio é zero para qualquer valor de x, aceite.
I Se p tem raiz inteira, M1 eventualmente a encontra e aceita.
I Se p não tem raiz inteira, M1 vai ciclar.

10º de Hilbert (121 – 123 de 481)


10º Problema de Hilbert
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de I M1 pode ser modificada para decidir D1 ?


Turing
Máquinas de Turing
Variações de MT’s
10º de Hilbert

Teoria da
Computabili-
I D1 = {p | p é um polinômio sobre x com raiz inteira}.
dade
I Máquina M2 (M1 modificada) para decidir D1 :
Bibliografia
I Calcular limites para o valor da variável x e limitar a busca a tais limites.
Apêndices
I Raiz está entre os limites ±k cmax
c1 :
I k é o número de termos do polinômio.
I cmax é o coeficiente de maior valor absoluto.
I c1 é o coeficiente de maior ordem.
I Se não existe raiz dentro desses limites, a máquina rejeita.

10º de Hilbert (122 – 123 de 481)


10º Problema de Hilbert
ICCC 2024

Julliano
Nascimento

Introdução
I É possível desenvolver uma máquina de Turing M, similar à M2 , que
Máquinas de
Turing decide D?
Máquinas de Turing
Variações de MT’s I D = {p | p é um polinômio com raiz inteira}.
10º de Hilbert

Teoria da
Computabili-
dade
Teorema 2.26 (Matijasevic)
Bibliografia I É impossível calcular tais limites para polinômios com mais de uma
Apêndices variável.

I D é Turing-reconhecível? SIM.
I D é decidível? NÃO.

10º de Hilbert (123 – 123 de 481)


Objetivos
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing

Teoria da
Computabili-
I Investigar o poder de algoritmos para a solução de problemas.
dade
Decidibilidade
Problema da I Explorar os limites da possibilidade de solução de problemas por
Aceitação por MT’s

Bibliografia
processos algorítmicos.
Apêndices
I Demonstrar que certos problemas podem ser resolvidos por processos
algorítmicos e outros não.

Decidibilidade (124 – 145 de 481)


Notação
ICCC 2024

Julliano
Nascimento

Introdução I Entrada para uma máquina de Turing é sempre uma cadeia definida sobre
Máquinas de um alfabeto.
Turing

Teoria da I Se a entrada for outro objeto, o mesmo deve ser representado como uma
Computabili-
dade cadeia.
Decidibilidade
Problema da I Cadeias podem representar polinômios, grafos, gramáticas, autômatos e
Aceitação por MT’s
combinações de tais objetos.
Bibliografia

Apêndices I Codificação:
I hOi representa o objeto O.
I hO1 , O2 , . . . , Ok i representa os objetos O1 , O2 , . . . , Ok .

I A codificação em si pode ser feita de diversos modos.


I Uma máquina de Turing sempre pode traduzir uma codificação para outra
qualquer!

Decidibilidade (125 – 145 de 481)


Máquina de Turing Universal
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing

Teoria da
Computabili-
dade I Máquina de Turing capaz de simular qualquer outra máquina de Turing.
Decidibilidade
Problema da I A máquina deve conter na fita:
Aceitação por MT’s

Bibliografia
I O conjunto de instruções sobre o comportamento da máquina a ser
Apêndices
simulada;
I O conteúdo da fita da máquina a ser simulada.

Decidibilidade (126 – 145 de 481)


Linguagens Decidíveis
Linguagens Regulares
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing I Problemas decidíveis:
Teoria da
Computabili- I Um dado autômato finito aceita uma cadeia em particular?
dade I A linguagem de um autômato finito é vazia?
Decidibilidade
Problema da
Aceitação por MT’s
I Dois autômatos finitos são equivalentes?
Bibliografia

Apêndices I Outros problemas computacionais podem ser formulados como a


pertinência a uma certa linguagem.
I Mostrar que a linguagem é decidível equivale a mostrar que o problema
computacional é decidível.

Decidibilidade (127 – 145 de 481)


Linguagens Decidíveis
Linguagens Regulares
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing

Teoria da Problema da aceitação para DFA’s


Computabili-
dade
Decidibilidade
I ADFA = {hD, wi | D é um DFA que aceita a cadeia w}.
Problema da
Aceitação por MT’s
I Codificações de todos os DFA’s com as cadeias que os mesmos aceitam.
Bibliografia I Testar se hD, wi pertence à linguagem ADFA equivale a testar se o DFA D
Apêndices
aceita a cadeia w.

Decidibilidade (128 – 145 de 481)


Linguagens Decidíveis
Linguagens Regulares
ICCC 2024

Julliano
Nascimento Teorema 3.1
Introdução
A linguagem ADFA é decidível.
Máquinas de
Turing Esquema da prova.
Teoria da
Computabili-
dade
I Para mostrar que esta linguagem é decidível, mostramos uma máquina de
Decidibilidade
Problema da
Turing que decide ADFA .
Aceitação por MT’s

Bibliografia M1 = “Sobre a entrada hD, wi onde D é um DFA e w uma cadeia:


Apêndices 1. Simule o DFA D sobre a cadeia w.
2. Se a simulação termina em um estado de aceitação do DFA, aceite. Se ela
termina em um estado de não-aceitação do DFA, rejeite.”

Decidibilidade (129 – 145 de 481)


Linguagens Decidíveis
Linguagens Regulares
ICCC 2024

Julliano
Nascimento Teorema 3.1
Introdução
A linguagem ADFA é decidível.
Máquinas de
Turing Esquema da prova.
Teoria da
Computabili-
dade
I Codificação hD, wi : entrada da máquina M1 :
Decidibilidade I Representação do DFA D com a cadeia w.
Problema da
Aceitação por MT’s I D: lista de seus componentes, ou seja, Σ, S, s0 , δ e F.
Bibliografia I w: cadeia de entrada de D.
Apêndices

Decidibilidade (130 – 145 de 481)


Linguagens Decidíveis
Linguagens Regulares
ICCC 2024

Julliano
Nascimento Teorema 3.1
Introdução
A linguagem ADFA é decidível.
Máquinas de
Turing Esquema da prova.
Teoria da
Computabili-
dade
I Comportamento da máquina M1 :
Decidibilidade I M1 recebe hD, wi e testa a codificação. Se inválida, rejeita.
Problema da
Aceitação por MT’s I Fita é usada para acompanhar o estado corrente do DFA e símbolo
Bibliografia
corrente da cadeia w.
Apêndices I Inicialmente, s0 é o estado inicial de D e o símbolo corrente é o símbolo
mais a esquerda de w.
I Estado e símbolo atualizados de acordo com função de transição δ.
I M1 aceita a entrada hD, wi ⇒ M1 processa o último símbolo de w e A está
em um estado final.
I M1 rejeita a entrada hD, wi ⇒ M1 processa o último símbolo de w e A não
está em um estado final.


Decidibilidade (131 – 145 de 481)


Linguagens Decidíveis
Linguagens Regulares
ICCC 2024

Julliano
Nascimento

Introdução
ANFA = {hN, wi | N é um NFA que aceita a cadeia w}.
Máquinas de
Turing

Teoria da
Teorema 3.2
Computabili-
dade
A linguagem ANFA é decidível.
Decidibilidade
Problema da
Aceitação por MT’s Esquema da prova.
Bibliografia
I A máquina de Turing M2 abaixo decide ANFA .
Apêndices

M2 = “Sobre a entrada hN, wi onde N é um NFA e w uma cadeia:


1. Converta o NFA N em um DFA equivalente A.
2. Rode a máquina de Turing M1 sobre a entrada hA, wi.
3. Se M1 aceita, aceite; caso contrário, rejeite.”


Decidibilidade (132 – 145 de 481)


Linguagens Decidíveis
Linguagens Regulares
ICCC 2024

Julliano
Nascimento

Introdução AER = {hR, wi | Cadeia w é gerada pela expressão regular R}.


Máquinas de
Turing
Teorema 3.3
Teoria da
Computabili- A linguagem AER é decidível.
dade
Decidibilidade
Problema da
Aceitação por MT’s
Esquema da prova.
Bibliografia I A máquina de Turing M3 decide AER :
Apêndices
M3 = “Sobre a entrada hR, wi onde R é uma expressão regular e w uma
cadeia:
1. Converta a expressão regular R em um NFA equivalente N.
2. Rode a máquina de Turing M2 sobre a entrada hN, wi.
3. Se M2 aceita, aceite; caso contrário, rejeite.”


Decidibilidade (133 – 145 de 481)


Linguagens Decidíveis
Linguagens Regulares
ICCC 2024

Julliano
Nascimento VDFA = {hDi | D é um DFA e L(D) = ∅}.
Introdução
Teorema 3.4
Máquinas de
Turing A linguagem VDFA é decidível.
Teoria da
Computabili-
dade
Esquema da prova.
Decidibilidade
Problema da I Um DFA aceita uma cadeia se e somente se é possível alcançar, a partir
Aceitação por MT’s

Bibliografia
do estado inicial, um estado final.
Apêndices I A máquina de Turing M4 decide VDFA :
M4 = “Sobre a entrada hDi, onde D é um DFA:
1. Marque o estado inicial de D.
2. Repita o passo 3 até que nenhum novo estado seja marcado:
3. Marque qualquer estado que tenha uma transição chegando nele a partir de
qualquer estado que já está marcado.
4. Se nenhum estado final está marcado, aceite; caso contrário, rejeite.”

Decidibilidade (134 – 145 de 481)
Linguagens Decidíveis
Linguagens Regulares
ICCC 2024

Julliano
Nascimento
EQDFA = {hA, Bi | A e B são DFA’s e L(A) = L(B)}.
Introdução

Máquinas de Teorema 3.5


Turing
A linguagem EQDFA é decidível.
Teoria da
Computabili-
dade
Decidibilidade
Esquema da prova.
Problema da
Aceitação por MT’s
I DFA C aceita cadeias aceitas só por A ou só por B.
Bibliografia

Apêndices I L(A) = L(B) ⇒ L(C) = ∅.


   
I L(C) = L(A) ∩ L(B) ∪ L(A) ∩ L(B) .


Decidibilidade (135 – 145 de 481)
Linguagens Decidíveis
Linguagens Regulares
ICCC 2024

Julliano
Nascimento
EQDFA = {hA, Bi | A e B são DFA’s e L(A) = L(B)}.
Introdução

Máquinas de Teorema 3.5


Turing
A linguagem EQDFA é decidível.
Teoria da
Computabili-
dade
Decidibilidade
Esquema da prova.
Problema da
Aceitação por MT’s
I Diferença simétrica de L(A) e L(B):
Bibliografia

Apêndices

L(A) L(B)


Decidibilidade (136 – 145 de 481)
Linguagens Decidíveis
Linguagens Regulares
ICCC 2024

Julliano
Nascimento
EQDFA = {hA, Bi | A e B são DFA’s e L(A) = L(B)}.
Introdução

Máquinas de Teorema 3.5


Turing
A linguagem EQDFA é decidível.
Teoria da
Computabili-
dade
Decidibilidade
Esquema da prova.
Problema da
Aceitação por MT’s
I Construção do DFA C:
Bibliografia
I Ideia usada para mostrar que linguagens regulares são fechadas para as
Apêndices
operações de complementação, união e interseção.
I A máquina de Turing M5 decide EQDFA :
M5 = “Sobre a entrada hA, Bi onde A e B são DFA’s:
1. Construa o DFA C como descrito.
2. Rode a máquina de Turing M4 sobre a entrada hCi.
3. Se M4 aceita, aceite; caso contrário, rejeite.”

Decidibilidade (137 – 145 de 481)
Linguagens Decidíveis
Linguagens Livres de Contexto
ICCC 2024

Julliano
Nascimento
AGLC = {hG, wi | G é uma GLC que gera a cadeia w}.
Introdução

Máquinas de Teorema 3.6


Turing
A linguagem AGLC é decidível.
Teoria da
Computabili-
dade
Decidibilidade
Esquema da prova.
Problema da
Aceitação por MT’s
I Usar G para listar todas as derivações e determinar se alguma leva a w.
Bibliografia
I Infinitas derivações podem ter de ser verificadas.
Apêndices
I Se G não gera w, o algoritmo nunca termina.
I Gera máquina de Turing que reconhece AGLC , mas não a decide.


Decidibilidade (138 – 145 de 481)
Linguagens Decidíveis
Linguagens Livres de Contexto
ICCC 2024

Julliano
Nascimento
AGLC = {hG, wi | G é uma GLC que gera a cadeia w}.
Introdução

Máquinas de Teorema 3.6


Turing
A linguagem AGLC é decidível.
Teoria da
Computabili-
dade
Decidibilidade
Esquema da prova.
Problema da
Aceitação por MT’s
I G na forma normal de Chomsky ⇒ derivação de w é feita em 2|w| − 1
Bibliografia

Apêndices
passos.
I A máquina de Turing M6 decide AGLC :
M6 = “Sobre a entrada hG, wi, onde G é uma GLC e w uma cadeia:
1. Converta G para uma GLC equivalente na forma normal de Chomsky.
2. Se |w| > 0, liste todas as derivações com 2|w| − 1 passos, senão liste todas
com 1 passo.
3. Se alguma destas derivações gera w, aceite; caso contrário, rejeite.”

Decidibilidade (139 – 145 de 481)
Linguagens Decidíveis
Linguagens Livres de Contexto
ICCC 2024

Julliano
Nascimento

Introdução
VGLC = {hGi | G é uma GLC e L(G) = ∅}.
Máquinas de
Turing Teorema 3.7
Teoria da A linguagem VGLC é decidível.
Computabili-
dade
Decidibilidade
Problema da
Esquema da prova.
Aceitação por MT’s

Bibliografia I Usar máquina de Turing M6 para verificar se G gera alguma cadeia w?


Apêndices I Para determinar que VGLC = ∅, todas as possíveis cadeias w devem ser
testadas.
I Processo pode não terminar, dado o número infinito de possíveis cadeias w.

Decidibilidade (140 – 145 de 481)


Linguagens Decidíveis
Linguagens Livres de Contexto
ICCC 2024

Julliano
Nascimento

Introdução
VGLC = {hGi | G é uma GLC e L(G) = ∅}.
Máquinas de
Turing Teorema 3.7
Teoria da A linguagem VGLC é decidível.
Computabili-
dade
Decidibilidade
Problema da
Esquema da prova.
Aceitação por MT’s

Bibliografia I Testar se variável inicial pode gerar uma cadeia de símbolos terminais.
Apêndices
I Determinar quais variáveis podem gerar cadeias de terminais.
I Marcar tais variáveis.
I No final verificar se a variável inicial está marcada.

Decidibilidade (141 – 145 de 481)


Linguagens Decidíveis
Linguagens Livres de Contexto
ICCC 2024

Julliano
Nascimento

Introdução
VGLC = {hGi | G é uma GLC e L(G) = ∅}.
Máquinas de
Turing Teorema 3.7
Teoria da A linguagem VGLC é decidível.
Computabili-
dade
Decidibilidade
Problema da
Esquema da prova.
Aceitação por MT’s

Bibliografia I A máquina de Turing M7 decide VGLC :


Apêndices
M7 = “Sobre a entrada hGi, onde G é uma GLC:
1. Marque todos os símbolos terminais em G.
2. Repetir o passo 3 até que nenhuma nova variável seja marcada.
3. Marque qualquer variável A tal que a regra A → U1 U2 . . . Uk pertence a G e
cada símbolo U1 U2 . . . Uk já está marcado.
4. Se a variável inicial não está marcada, aceite; caso contrário, rejeite.”


Decidibilidade (142 – 145 de 481)


Linguagens Decidíveis
Linguagens Livres de Contexto
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing EQGLC = {hG, Hi | G e H são GLC ’s e L(G) = L(H)}.
Teoria da
Computabili- Teorema 3.8
dade
Decidibilidade A linguagem EQGLC não é decidível.
Problema da
Aceitação por MT’s

Bibliografia Esquema da prova.


Apêndices
I A classe de linguagens livres de contexto não é fechada para as
operações de complementação e interseção.
I Demonstração do teorema será abordada no tópico Reduções.


Decidibilidade (143 – 145 de 481)


Linguagens Decidíveis
Linguagens Livres de Contexto
ICCC 2024

Julliano
Nascimento
Teorema 3.9
Introdução Toda linguagem livre de contexto é decidível.
Máquinas de
Turing Esquema da prova.
Teoria da
Computabili- I Considerar uma LLC arbitrária L.
dade
Decidibilidade
Problema da
I Mostrar que L é decidível.
Aceitação por MT’s

Bibliografia
I Considerar uma GLC G que gera L.
Apêndices I A máquina de Turing M8 decide L.
M8 = “Sobre a entrada w:
1. Seja G uma GLC para L.
2. Rode a máquina de Turing M6 sobre a entrada hG, wi.
3. Se M6 aceita, aceite; caso contrário, rejeite.”


Decidibilidade (144 – 145 de 481)


Relação entre Classes de Linguagens
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing

Teoria da
Computabili-
Turing-reconhecível
dade
Decidibilidade
Problema da decidível
Aceitação por MT’s

Bibliografia
livre de contexto
Apêndices

regular

Decidibilidade (145 – 145 de 481)


Introdução
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing

Teoria da
I Objetivo:
Computabili-
dade
I Provar que existe um problema específico que é algoritmicamente insolúvel.
Decidibilidade
Problema da I Um dos mais importantes teoremas da Teoria da Computação.
Aceitação por MT’s

Bibliografia I Teorema demonstra que computadores são limitados sob certos aspectos.
Apêndices I Que tipo de problema é insolúvel com o auxílio de um computador?
I Problemas ininteligíveis e com formulações altamente complexas?
I Não, problemas comuns podem ser insolúveis por computadores.

Problema da Aceitação por MT’s (146 – 182 de 481)


Exemplo de problema insolúvel por computador
ICCC 2024

Julliano
Nascimento

Introdução
I Dados:
Máquinas de
Turing I Programa de computador.
Teoria da I Especificação precisa do que o programa supostamente realiza.
Computabili-
dade I Objetivo:
Decidibilidade
Problema da I Verificar se o programa realmente realiza o especificado.
Aceitação por MT’s
I Verificar se o programa está correto.
Bibliografia

Apêndices

I Se programa e especificação são objetos matematicamente precisos,


então é possível automatizar o processo de verificação por meio de um
novo programa de computador?
I NÃO. Este problema é insolúvel por computador!

Problema da Aceitação por MT’s (147 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

Julliano
Nascimento
AMT = {hM, wi | M é uma máquina de Turing que aceita a cadeia w}.
Introdução

Máquinas de
Teorema 3.10
Turing A linguagem AMT não é decidível.
Teoria da
Computabili-
dade
Decidibilidade
Problema da
Aceitação por MT’s
I A máquina de Turing M9 reconhece AMT .
Bibliografia M9 = “Sobre a entrada hM, wi, onde M é uma máquina de Turing e w uma
Apêndices cadeia:
1. Simule a máquina M com a cadeia w.
2. Se M entra no estado de aceitação, aceite. Se M entra no estado de
rejeição, rejeite.”
I Por que M9 não decide a linguagem AMT ?
I Se M cicla com a cadeia w, M9 cicla com a entrada hM, wi.
I Se M9 pudesse determinar que M não para com w, ela poderia rejeitar.
I Um algoritmo não pode determinar tal coisa!

Problema da Aceitação por MT’s (148 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing

Teoria da
Computabili- I M9 é uma Máquina de Turing Universal.
dade
Decidibilidade I UTM – Universal Turing Machine.
Problema da
Aceitação por MT’s I Máquina de Turing capaz de simular qualquer outra a partir de sua
Bibliografia descrição.
Apêndices I As UTM’s exerceram importante papel no estimulo ao desenvolvimento de
computadores que armazenam programas na memória principal.

Problema da Aceitação por MT’s (149 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

Julliano
Nascimento
Método da Diagonalização
Introdução
I Georg Cantor, 1873.
Máquinas de
Turing I Problema da medição do tamanho de conjuntos infinitos.
Teoria da I Dados dois conjuntos infinitos, os dois são de mesmo tamanho ou um deles
Computabili-
dade é maior que o outro?
Decidibilidade
Problema da
Aceitação por MT’s
Z
I Ex: P = {n = 2k | k ∈ + } e S = {s | s ∈ {0, 1}∗ }.
Bibliografia I Cantor ⇒ dois conjuntos finitos tem o mesmo tamanho se os elementos
Apêndices de um conjunto podem ser “emparelhados” com os elementos do outro
conjunto.
I Método compara os tamanhos sem recorrer à contagem dos elementos.
I Ideia pode ser estendida para conjuntos infinitos.

Método da Diagonalização

Problema da Aceitação por MT’s (150 – 182 de 481)


Linguagens que não são Turing-reconhecíveis
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing

Teoria da
Computabili- I Algumas linguagens não são decidíveis e nem mesmo
dade
Decidibilidade
Turing-reconhecíveis.
Problema da
Aceitação por MT’s
I O conjunto de linguagens não é contavelmente infinito.
Bibliografia
I O conjunto de máquinas de Turing é contavelmente infinito.
Apêndices I Como uma máquina de Turing reconhece apenas uma linguagem, alguma
linguagem não é reconhecida por nenhuma máquina de Turing.

Problema da Aceitação por MT’s (151 – 182 de 481)


Linguagens que não são Turing-reconhecíveis
ICCC 2024

Julliano
Nascimento
Teorema 3.11
Introdução Algumas linguagens não são Turing-reconhecíveis.
Máquinas de
Turing
Esquema da prova.
Teoria da
Computabili-
dade
1. Mostrar que o conjunto de todas as máquinas de Turing é contavelmente
Decidibilidade
Problema da
infinito.
Aceitação por MT’s

Bibliografia
2. Mostrar que o conjunto de todas as linguagens não é contavelmente
Apêndices infinito.
3. Portanto, não há uma correspondência entre o conjunto de todas as
linguagens e o conjunto de todas as máquinas de Turing.
4. Conclusão: algumas linguagens não são reconhecidas por nenhuma
máquina de Turing!


Problema da Aceitação por MT’s (152 – 182 de 481)


Linguagens que não são Turing-reconhecíveis
ICCC 2024

Julliano
Nascimento Lema 3.12
Introdução 1. O conjunto de todas as máquinas de Turing é contavelmente infinito.
Máquinas de
Turing

Teoria da
Demonstração.
Computabili-
dade
I Para qualquer alfabeto Σ, Σ∗ é contavelmente infinito .
Decidibilidade
Problema da
I Existe um número finito de cadeias de cada comprimento.
Aceitação por MT’s
I Listar elemento por ordem de tamanho: cadeias de tamanho 0, as tamanho
Bibliografia
1, as de tamanho 2, etc.
Apêndices I Corresponder as cadeias da lista com os elementos de . N
I Uma máquina M pode ser codificada na cadeia hMi.
I Excluir da lista as cadeias que não são codificações de máquinas de
Turing.
I Corresponder as demais cadeias com os elementos de . N


Problema da Aceitação por MT’s (153 – 182 de 481)


Linguagens que não são Turing-reconhecíveis
ICCC 2024

Julliano
Nascimento

Introdução Lema 3.13 (Conjunto Lambda)


Máquinas de
Turing 2. O conjunto Λ de todas as linguagens não é contavelmente infinito.
Teoria da
Computabili-
dade
Decidibilidade
Demonstração.
Problema da
Aceitação por MT’s

Bibliografia
I O conjunto B de todas as sequências binárias infinitas não é
Apêndices
contavelmente infinito.
I Prova por diagonalização similar à prova do Teorema 6.9.
I Λ é o conjunto de todas as linguagens.
I Mostrar que existe uma correspondência entre Λ e B.


Problema da Aceitação por MT’s (154 – 182 de 481)


Linguagens que não são Turing-reconhecíveis
ICCC 2024

Julliano
Nascimento

Introdução Lema 3.13 (Conjunto Lambda)


Máquinas de
Turing 2. O conjunto Λ de todas as linguagens não é contavelmente infinito.
Teoria da
Computabili-
dade
Decidibilidade
Demonstração.
Problema da
Aceitação por MT’s

Bibliografia
I Mostrar que existe uma correspondência entre Λ e B:
Apêndices
I Σ∗ = {s1 , s2 , s3 , . . . }.
I Cada L ∈ Λ corresponde a uma única sequência de B.
(
I Sequência característica χL de L: χLi = 1 se si ∈ L,
0 se si < L.


Problema da Aceitação por MT’s (155 – 182 de 481)


Linguagens que não são Turing-reconhecíveis
ICCC 2024

Julliano
Nascimento

Introdução Lema 3.13 (Conjunto Lambda)


Máquinas de
Turing 2. O conjunto Λ de todas as linguagens não é contavelmente infinito.
Teoria da
Computabili-
dade
Decidibilidade
Demonstração.
Problema da
Aceitação por MT’s

Bibliografia
I Mostrar que existe uma correspondência entre Λ e B:
Σ = { a , b }
Apêndices Σ∗ = { ε , a , b , aa , ab , ba , bb , aaa , aab , ··· }
L = { a , aa , ab , aaa , aab , ··· }
χL = 0 1 0 1 1 0 0 1 1 ···

Problema da Aceitação por MT’s (156 – 182 de 481)


Linguagens que não são Turing-reconhecíveis
ICCC 2024

Julliano
Nascimento

Introdução Lema 3.13 (Conjunto Lambda)


Máquinas de
Turing 2. O conjunto Λ de todas as linguagens não é contavelmente infinito.
Teoria da
Computabili-
dade
Decidibilidade
Demonstração.
Problema da
Aceitação por MT’s

Bibliografia
I Mostrar que existe uma correspondência entre Λ e B:
Apêndices
I Função f : Λ → B é bijetora.
I f (L) é a sequência característica de L.
I Como B não é contavelmente infinito, Λ também não o é.

Problema da Aceitação por MT’s (157 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

AMT = {hM, wi | M é máquina de Turing que aceita a cadeia w}.


Julliano
Nascimento

Introdução Teorema 3.10


Máquinas de
Turing
A linguagem AMT não é decidível.
Teoria da
Computabili-
Demonstração.
dade I Para uma contradição, supor que AMT é decidível.
Decidibilidade
Problema da
Aceitação por MT’s
I Logo, existe uma máquina de Turing H que decide AMT , onde:
(
Bibliografia aceite, se M aceita w,
H(hM, wi) =
Apêndices rejeite, se M não aceita w.

Problema da Aceitação por MT’s (158 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

AMT = {hM, wi | M é máquina de Turing que aceita a cadeia w}.


Julliano
Nascimento

Introdução Teorema 3.10


Máquinas de
Turing
A linguagem AMT não é decidível.
Teoria da
Computabili-
Demonstração.
dade
Decidibilidade
Problema da
Aceitação por MT’s
H(hM, wi)
Bibliografia
M M
Apêndices
aceita w não aceita w

aceite rejeite

Problema da Aceitação por MT’s (159 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

AMT = {hM, wi | M é máquina de Turing que aceita a cadeia w}.


Julliano
Nascimento

Introdução Teorema 3.10


Máquinas de
Turing
A linguagem AMT não é decidível.
Teoria da
Computabili-
Demonstração.
dade I Construir a máquina D que usa H como subrotina:
Decidibilidade
Problema da
I D chama H para determinar o que M faz quando sua entrada é a sua
Aceitação por MT’s
própria descrição hMi.
Bibliografia
I Resposta da máquina D será o oposto da obtida com H.
Apêndices
I Descrição da máquina D:
D = “Sobre a entrada hMi, onde M é uma máquina de Turing:
1. Rode a máquina H com entrada hM, hMii.
2. Se H aceita, rejeite. Se H rejeita, aceite.”

Problema da Aceitação por MT’s (160 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

AMT = {hM, wi | M é máquina de Turing que aceita a cadeia w}.


Julliano
Nascimento

Introdução Teorema 3.10


Máquinas de
Turing
A linguagem AMT não é decidível.
Teoria da
Computabili-
Demonstração.
dade
Decidibilidade
D(hMi)
Problema da
Aceitação por MT’s

Bibliografia
H(hM, hMii)
Apêndices
M M
aceita w não aceita w

aceite rejeite

rejeite aceite

Problema da Aceitação por MT’s (161 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

AMT = {hM, wi | M é máquina de Turing que aceita a cadeia w}.


Julliano
Nascimento

Introdução Teorema 3.10


Máquinas de
Turing
A linguagem AMT não é decidível.
Teoria da
Computabili-
Demonstração.
dade I Descrição da máquina D:
Decidibilidade
Problema da
Aceitação por MT’s D = “Sobre a entrada hMi, onde M é uma máquina de Turing:
Bibliografia 1. Rode a máquina H com entrada hM, hMii.
Apêndices 2. Se H aceita, rejeite. Se H rejeita, aceite.”
I Resumo da máquina D:
(
aceite se M não aceita hMi,
D(hMi) =
rejeite se M aceita hMi.

Problema da Aceitação por MT’s (162 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

AMT = {hM, wi | M é máquina de Turing que aceita a cadeia w}.


Julliano
Nascimento

Introdução Teorema 3.10


Máquinas de
Turing
A linguagem AMT não é decidível.
Teoria da
Computabili-
Demonstração.
dade I O que acontece quando D é chamado com sua própria codificação hDi?
Decidibilidade
(
aceite se D não aceita hDi,
D(hDi) =
Problema da
Aceitação por MT’s →|←
Bibliografia
re jeite se D aceita hDi.
Apêndices

Problema da Aceitação por MT’s (163 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

AMT = {hM, wi | M é máquina de Turing que aceita a cadeia w}.


Julliano
Nascimento

Introdução Teorema 3.10


Máquinas de
Turing
A linguagem AMT não é decidível.
Teoria da
Computabili-
Demonstração.
dade
Decidibilidade
D(hDi)
Problema da
Aceitação por MT’s

Bibliografia
H(hD, hDii)
Apêndices
D D
aceita hDi não aceita hDi

aceite rejeite

rejeite aceite

Problema da Aceitação por MT’s (164 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

AMT = {hM, wi | M é máquina de Turing que aceita a cadeia w}.


Julliano
Nascimento

Introdução Teorema 3.10


Máquinas de
Turing
A linguagem AMT não é decidível.
Teoria da
Computabili-
Demonstração.
dade I O que acontece quando D é chamado com sua própria codificação hDi?
Decidibilidade
(
aceite se D não aceita hDi,
D(hDi) =
Problema da
Aceitação por MT’s →|←
Bibliografia
re jeite se D aceita hDi.
Apêndices
I Revisão:
I H aceita hM, wi exatamente quanto M aceita w.
I D rejeita hMi exatamente quanto M aceita hMi.
I D rejeita hDi exatamente quanto D aceita hDi. →|←

Problema da Aceitação por MT’s (165 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

AMT = {hM, wi | M é máquina de Turing que aceita a cadeia w}.


Julliano
Nascimento

Introdução Teorema 3.10


Máquinas de
Turing
A linguagem AMT não é decidível.
Teoria da
Computabili-
Demonstração.
dade I Não importa o que D faça, ela é forçada a fazer o oposto! (Contradição)
Decidibilidade
Problema da
Aceitação por MT’s
I As máquinas de Turing D e H não podem existir!
Bibliografia I Portanto, AMT não é decidível.
Apêndices

Problema da Aceitação por MT’s (166 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

Julliano
Nascimento Onde é usado o argumento da diagonalização?
Introdução

Máquinas de
I Tabela do comportamento de H e D:
Turing I Posição [i, j] é aceite se Mi aceita hM j i.
Teoria da I Posição [i, j] em branco se Mi rejeita hM j i ou cicla.
Computabili-
dade
Decidibilidade
Problema da
Aceitação por MT’s

Bibliografia

Apêndices

Problema da Aceitação por MT’s (167 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

Julliano
Nascimento Onde é usado o argumento da diagonalização?
Introdução

Máquinas de
I Tabela do comportamento de H e D:
Turing I Posição [i, j] é aceite se Mi aceita hM j i.
Teoria da I Posição [i, j] em branco se Mi rejeita hM j i ou cicla.
Computabili-
dade
Decidibilidade
I Exemplo:
Problema da
Aceitação por MT’s hM1 i hM2 i hM3 i hM4 i ···
Bibliografia M1 aceite aceite
Apêndices M2 aceite aceite aceite aceite
M3 ···
M4 aceite aceite
.. ..
. .

Problema da Aceitação por MT’s (168 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

Julliano
Nascimento Onde é usado o argumento da diagonalização?
Introdução

Máquinas de
I Resultado de H com entradas da tabela anterior:
Turing I Posição [i, j] é o valor de H com entrada hMi , hM j ii.
Teoria da
Computabili-
dade
Decidibilidade
Problema da
Aceitação por MT’s

Bibliografia

Apêndices

Problema da Aceitação por MT’s (169 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

Julliano
Nascimento Onde é usado o argumento da diagonalização?
Introdução

Máquinas de
I Resultado de H com entradas da tabela anterior:
Turing I Posição [i, j] é o valor de H com entrada hMi , hM j ii.
Teoria da
Computabili- I Ex.: se M3 não aceita hM2 i, posição [i, j] é re jeite pois H rejeita entrada
dade
Decidibilidade hMi , hM j ii.
Problema da
Aceitação por MT’s
hM1 i hM2 i hM3 i hM4 i ···
Bibliografia M1 aceite rejeite aceite rejeite
Apêndices M2 aceite aceite aceite aceite
M3 rejeite rejeite rejeite rejeite ···
M4 aceite aceite rejeite rejeite
.. ..
. .

Problema da Aceitação por MT’s (170 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

Julliano
Nascimento Onde é usado o argumento da diagonalização?
Introdução

Máquinas de
I D ocorre na lista M1 , M2 , . . . das máquinas de Turing.
Turing
I D computa o oposto das entradas na diagonal principal da matriz.
Teoria da
Computabili-
dade
Decidibilidade
Problema da
Aceitação por MT’s

Bibliografia

Apêndices

Problema da Aceitação por MT’s (171 – 182 de 481)


Problema da Aceitação por MT’s
ICCC 2024

Julliano
Nascimento Onde é usado o argumento da diagonalização?
Introdução

Máquinas de
I D ocorre na lista M1 , M2 , . . . das máquinas de Turing.
Turing
I D computa o oposto das entradas na diagonal principal da matriz.
Teoria da
Computabili- I Contradição ocorre na posição marcada com ?
dade
Decidibilidade
I Conteúdo da posição deve ser o oposto de si próprio.
Problema da
Aceitação por MT’s hM1 i hM2 i hM3 i hM4 i ··· hDi ···
Bibliografia M1 aceite rejeite aceite rejeite aceite
Apêndices M2 aceite aceite aceite aceite aceite
M3 rejeite rejeite rejeite rejeite ··· rejeite ···
M4 aceite aceite rejeite rejeite aceite
.. .. ..
. . .
D rejeite rejeite aceite aceite ?
.. .. ..
. . .

Problema da Aceitação por MT’s (172 – 182 de 481)


Linguagem co-Turing-reconhecível
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de Definição 3.14


Turing

Teoria da
I Complemento de uma linguagem L:
Computabili- I Conjunto de cadeias que não pertencem a L:
dade
Decidibilidade
Problema da
L = {s | s ∈ Σ∗ , L ⊆ Σ∗ e s < L}.
Aceitação por MT’s

Bibliografia

Apêndices Definição 3.15


I Linguagem co-Turing-reconhecível:
I Linguagem cujo complemento é Turing-reconhecível.

Problema da Aceitação por MT’s (173 – 182 de 481)


Linguagem co-Turing-reconhecível
ICCC 2024

Julliano
Nascimento

Introdução Teorema 3.16


Máquinas de
Turing
Uma linguagem é decidível se e somente se ela é Turing-reconhecível e
Teoria da co-Turing-reconhecível (ela e seu complemento são Turing-reconhecíveis).
Computabili-
dade
Decidibilidade
Problema da
Aceitação por MT’s
co-Turing-reconhecível
Bibliografia

Apêndices Decidível

Turing-reconhecível

Problema da Aceitação por MT’s (174 – 182 de 481)


Linguagem co-Turing-reconhecível
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing
Teorema 3.16
Teoria da Uma linguagem é decidível se e somente se ela é Turing-reconhecível e
Computabili-
dade co-Turing-reconhecível (ela e seu complemento são Turing-reconhecíveis).
Decidibilidade
Problema da
Aceitação por MT’s Demonstração (=⇒).
Bibliografia
I Se A é decidível, então A é Turing-reconhecível.
Apêndices

I Se A é decidível, então A é Turing-reconhecível.




Problema da Aceitação por MT’s (175 – 182 de 481)


Linguagem co-Turing-reconhecível
ICCC 2024

Julliano
Nascimento
Teorema 3.16
Uma linguagem é decidível se e somente se ela é Turing-reconhecível e
Introdução
co-Turing-reconhecível (ela e seu complemento são Turing-reconhecíveis).
Máquinas de
Turing

Teoria da
Demonstração (⇐=).
Computabili-
dade
Decidibilidade
I Máquina de Turing M1 reconhece A.
Problema da
Aceitação por MT’s
I Máquina de Turing M2 reconhece A.
Bibliografia
I Máquina de Turing M que decide A:
Apêndices

M = “Sobre a entrada w:
1. Rode, em paralelo, as máquinas M1 e M2 sobre a entrada w.
2. Se M1 aceita, M aceite; se M2 aceita, M rejeite.”

Problema da Aceitação por MT’s (176 – 182 de 481)


Linguagem co-Turing-reconhecível
ICCC 2024

Julliano
Nascimento
Teorema 3.16
Uma linguagem é decidível se e somente se ela é Turing-reconhecível e
Introdução
co-Turing-reconhecível (ela e seu complemento são Turing-reconhecíveis).
Máquinas de
Turing

Teoria da
Demonstração (⇐=).
Computabili-
dade
Decidibilidade
I Máquina de Turing M1 reconhece A.
Problema da
Aceitação por MT’s
I Máquina de Turing M2 reconhece A.
Bibliografia
I Máquina de Turing M que decide A:
Apêndices

M = “Sobre a entrada w:
1. Rode, em paralelo, as máquinas M1 e M2 sobre a entrada w.
2. Se M1 aceita, aceite; se M2 aceita, rejeite.”
Obs. Rodar as duas máquinas em paralelo significa que a máquina M tem duas
fitas, uma para simular M1 e outra para simular M2 . Neste caso, M simula
uma passo de cada máquina e para quando uma delas aceita.


Problema da Aceitação por MT’s (177 – 182 de 481)


Linguagem co-Turing-reconhecível
ICCC 2024

Julliano
Nascimento
Teorema 3.16
Uma linguagem é decidível se e somente se ela é Turing-reconhecível e
Introdução
co-Turing-reconhecível (ela e seu complemento são Turing-reconhecíveis).
Máquinas de
Turing

Teoria da
Demonstração (⇐=).
Computabili-
dade
Decidibilidade
I A máquina de Turing M decide A:
Problema da
Aceitação por MT’s I Dada uma cadeia w, w ∈ A ou w ∈ A.
Bibliografia I M1 ou M2 tem que aceitar w.
Apêndices I Como M para quando M1 ou M2 aceita, M sempre para.
I M aceita todas as cadeias em A e rejeita as demais.
I Logo, M decide A, ou seja, A é decidível.

Problema da Aceitação por MT’s (178 – 182 de 481)


Uma linguagem que não é Turing-reconhecível
ICCC 2024

Julliano
Nascimento

Introdução
I AMT = {hM, wi | M é máquina de Turing e M aceita a cadeia w}.
Máquinas de
Turing I AMT = {hM, wi | M não é Máquina de Turing ou M não aceita a cadeia w}.
Teoria da
Computabili-
dade
Decidibilidade Teorema 3.17
Problema da
Aceitação por MT’s A linguagem AMT não é Turing-reconhecível.
Bibliografia

Apêndices Demonstração.
I AMT é Turing-reconhecível.
I Se AMT fosse Turing-reconhecível, AMT seria decidível.
I Portanto, AMT não é Turing-reconhecível.


Problema da Aceitação por MT’s (179 – 182 de 481)


Resumo 1/2
ICCC 2024

Julliano
Nascimento

Introdução Linguagens decidíveis


Máquinas de
Turing I ADFA = {hD, wi | D é um DFA que aceita a cadeia w}.
Teoria da
Computabili- I ANFA = {hN, wi | N é um NFA que aceita a cadeia w}.
dade
Decidibilidade I AER = {hR, wi | Cadeia w é gerada pela expressão regular R}.
Problema da
Aceitação por MT’s
I VDFA = {hAi | A é um DFA e L(A) = ∅}.
Bibliografia

Apêndices
I EQDFA = {hA, Bi | A e B são DFA’s e L(A) = L(B)}.
I AGLC = {hG, wi | G é uma GLC que gera a cadeia w}.
I VGLC = {hGi | G é uma GLC e LG = ∅}.
I Toda linguagem livre de contexto é decidível.

Problema da Aceitação por MT’s (180 – 182 de 481)


Resumo 2/2
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de I MT universal (UTM): pode simular qualquer MT dada como entrada.


Turing

Teoria da
I AMT é Turing-reconhecível, mas não é Turing-decidível.
Computabili-
dade I Conjuntos contáveis e não contáveis
Decidibilidade
Problema da
I O conjunto de todas as MT’s é contável.
Aceitação por MT’s
I O conjunto de todas as linguagens é incontável. Há linguagens que não são
Bibliografia
Turing-reconhecíveis (AMT , por exemplo).
Apêndices
I Uma linguagem é co-Turing-reconhecível se seu complemento é
Turing-reconhecível.
I Uma linguagem é decidível se e somente se ela é Turing-reconhecível e
co-Turing-reconhecível.

Problema da Aceitação por MT’s (181 – 182 de 481)


Relação entre Classes de Linguagens
ICCC 2024

Julliano
Nascimento

Introdução

Máquinas de
Turing
Todas as linguagens
Teoria da
Computabili-
dade Turing-reconhecível
Decidibilidade
Problema da
Aceitação por MT’s

Bibliografia
decidível
Apêndices
livre de contexto

regular

Problema da Aceitação por MT’s (182 – 182 de 481)


Livros Texto
ICCC 2024

Julliano
Nascimento

Introdução
J. E. Hopcroft; J. Ullman.
Máquinas de Introdução à Teoria de Autômatos, Linguagens e Computação.
Turing
Ed. Campus.
Teoria da
Computabili- T. A. Sudkamp.
dade Languages and Machines – An Introduction to the Theory of Computer Science.
Bibliografia Addison Wesley Longman, Inc. 1998.
Livros e Artigos
M. Sipser.
Apêndices
Introduction to the Theory of Computation.
PWS Publishing Company, 1997.
H. R. Lewis; C. H. Papadimitriou
Elementos de Teoria da Computação.
Bookman, 2000.
E. Nagel, J. N. Newman
A Prova de Gödel.
2 ed. São Paulo: Perspectiva, 2001.

Livros e Artigos (183 – 184 de 481)


Artigos
ICCC 2024

Julliano
Nascimento

Introdução
I. Cafezeiro, E. H. Heausler
Computabilidade: Um pouco de história. . . Um pouco de matemática.
Máquinas de
Turing
VI ERIMG, DCC-UFLA, http://tinyurl.com/c8gvjjw, 2007.

Teoria da C. V. D’Alkaine
Computabili- Os trabalhos de Gödel e as denominadas ciências exatas. Em homenagem ao centenário do
dade
nascimento de Kurt Gödel.
Bibliografia Rev. Bras. Ens. Fis., 28(4):525–530. São Paulo. 2006.
Livros e Artigos
R. Kubrusly
Apêndices
Uma Viagem Informal ao Teorema de Gödel: O preço da matemática é o eterno matemático.
http://tinyurl.com/cgk6388, 2008.
L. M. Pereira
Gödel e a Computabilidade.
http://tinyurl.com/d8dggdq, 2008.
C. Dixon
How Aristotle Created the Computer.
https://www.theatlantic.com/technology/archive/2017/03/aristotle-computer/518697/,
2017.

Livros e Artigos (184 – 184 de 481)


Conjuntos - Notação
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos I Conjunto: coleção não ordenada de elementos.
Relações e Funções
Diagonalização
Lógica
I S = {x | P(x)} (P é um predicado unário).
Definições,
Teoremas e Provas I S = {x | P(x)} ≡ (∀ x)[(x ∈ S ⇒ P(x)) ∧ (P(x) ⇒ x ∈ S)].
Alfabetos e
Linguagens

Autômatos e
I Conjuntos padrões:
Linguagens
I N : inteiros não negativos (0 ∈ N).
Linguagens
I Z : inteiros.
Q
Livres de
Contexto I : racionais.
I R : reais.
I C : complexos.
I ∅ : conjunto vazio.

Conjuntos (185 – 193 de 481)


Conjuntos - Notação
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos I A ( B ≡ A ⊂ B ≡ A ⊆ B e A , B : subconjunto próprio.
Relações e Funções
Diagonalização
Lógica
I A = B ⇒ A ⊆ B e B ⊆ A.
Definições,
Teoremas e Provas
Alfabetos e I Para qualquer conjunto S , ∅:
Linguagens

Autômatos e
I S ⊆ S : subconjunto impróprio.
Linguagens I ∅ ⊂ S : ∅ é subconjunto próprio de qualquer conjunto S.
Linguagens
Livres de
Contexto I P(S) : conjunto das partes de S.
I conjunto potência de S.
I todos os subconjuntos de S.
I |P(S)| = 2|S| . (Exercício: Provar esta igualdade.)

Conjuntos (186 – 193 de 481)


Operações em conjuntos
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos I U : conjunto universo.
I A − B = {x ∈ U | x ∈ A e x < B}.
Conjuntos
Relações e Funções

I A ∩ B = {x ∈ U | x ∈ A e x ∈ B}.
Diagonalização
Lógica

I A ∪ B = {x ∈ U | x ∈ A ou x ∈ B}.
Definições,
Teoremas e Provas
Alfabetos e
Linguagens

Autômatos e
Linguagens I A : complemento do conjunto A.
Linguagens
Livres de U
I A = {x | x ∈ e x < A}.
I A = A0 = AC = { A .
Contexto
U
I A∩A=∅eA∪A= . U
I {A quando A ⊆ B.
B
I {B quando B ⊆ A.
A

Conjuntos (187 – 193 de 481)


Produto Cartesiano
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições,
I A × B = {(a, b) | a ∈ A e b ∈ B}
Teoremas e Provas
Alfabetos e n
I Ai = A1 × A2 × . . . × An = {(a1 , a2 , . . . , an ) | ai ∈ Ai }
Linguagens
Q
Autômatos e i=1
Linguagens

Linguagens
n
I Ai = A, i = 1, . . . , n ⇒ Ai = An
Q
Livres de
Contexto i=1

Conjuntos (188 – 193 de 481)


Propriedades de conjuntos
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos I A ⊆ (A ∪ B) e B ⊆ (A ∪ B).
Relações e Funções
Diagonalização I (A ∩ B) ⊆ A e (A ∩ B) ⊆ B.
Lógica
Definições,
Teoremas e Provas
Alfabetos e
I A ⊆ D e B ⊆ D ⇒ (A ∪ B) ⊆ D.
Linguagens
I D ⊆ A e D ⊆ B ⇒ D ⊆ (A ∩ B).
Autômatos e
Linguagens

Linguagens I |A ∪ B| ≤ |A| + |B|.


Livres de
Contexto I |A ∩ B| ≤ min{|A|, |B|}.
I |A − B| ≤ |A|.
I |A × B| ≤ |A|.|B|.

Conjuntos (189 – 193 de 481)


Princípio da Inclusão e Exclusão
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos I |A ∪ B| = |A| + |B| − |A ∩ B|.
Conjuntos
Relações e Funções
Diagonalização
Lógica
I |A ∪ B ∪ C| = |A| + |B| + |C| − |A ∩ B| − |A ∩ C| − |B ∩ C| + |A ∩ B ∩ C|.
Definições,  P n
Teoremas e Provas
Alfabetos e



 |Ai | −
Linguagens 
 i=1P
+

Autômatos e
Linguagens



 |Ai ∩ A j |


 1≤i<j≤n
Linguagens
I |A1 ∪ · · · ∪ An | = 
 P
Livres de  |Ai ∩ A j ∩ Ak | −
Contexto 
 1≤i<j<k≤n


..


. +






n+1

 (−1) |A1 ∩ · · · ∩ An |.

Conjuntos (190 – 193 de 481)


Leis da álgebra de conjuntos
ICCC 2024

Julliano
Nascimento I Comutativas:
Fundamentos I A ∪ B = B ∪ A.
Matemáticos
Conjuntos
I A ∩ B = B ∩ A.
Relações e Funções
Diagonalização
Lógica I Associativas:
Definições,
Teoremas e Provas I (A ∪ B) ∪ C = A ∪ (B ∪ C).
Alfabetos e
Linguagens I (A ∩ B) ∩ C = A ∪ (B ∩ C).
Autômatos e
Linguagens
I Distributivas:
Linguagens
Livres de I (A ∪ B) ∩ C = (A ∩ C) ∪ (B ∩ C).
Contexto
I (A ∩ B) ∪ C = (A ∪ C) ∩ (B ∪ C).

I Identidades:
I (A ∪ ∅) = A.
I U U
(A ∪ ) = .
I (A ∩ ∅) = ∅.
I U
(A ∩ ) = A.
Conjuntos (191 – 193 de 481)
Leis da álgebra de conjuntos
ICCC 2024

Julliano
Nascimento
I Idempotentes:
Fundamentos
Matemáticos
I (A ∪ A) = A.
Conjuntos I (A ∩ A) = A.
Relações e Funções
Diagonalização
Lógica
I Complementação:
U
Definições,
Teoremas e Provas
Alfabetos e
Linguagens
I (A ∪ AC ) = .
I (A ∩ AC ) = ∅.
Autômatos e
Linguagens I U C
= ∅.
Linguagens I ∅ = .
C
U
(AC )C = A.
Livres de
Contexto
I

I DeMorgan:
I (A ∪ B)C = AC ∩ BC .
I (A ∩ B)C = AC ∪ BC .
I A − (B ∪ C) = (A − B) ∩ (A − C).
I A − (B ∩ C) = (A − B) ∪ (A − C).

Conjuntos (192 – 193 de 481)


Partição de um conjunto
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
I Π = {Ai ⊂ A | i ∈ I}.
Definições,
Teoremas e Provas I I : conjunto de índices (não necessariamente finito).
Alfabetos e
Linguagens I A : conjunto qualquer.
Autômatos e
Linguagens I Π é uma partição de A se:
Linguagens I Ai ∩ A j = ∅, ∀ i , j, i, j ∈ I.
Livres de
I Ai = A.
S
Contexto
i∈I

Conjuntos (193 – 193 de 481)


Relação binária
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica I R ⊆ A × A:
Definições,
Teoremas e Provas
Alfabetos e
I a R b ⇔ (a, b) ∈ R.

N N
Linguagens

Autômatos e I R1 = {(x, y) | x = y + 1} ⊆ × .
N N.
Linguagens

Linguagens I R2 = {(x, y) | x + y é impar} ⊆ ×


Livres de
Contexto N N
I R3 = {(x, y) | x.y é par} ⊆ × .

Relações e Funções (194 – 209 de 481)


Tipos de relação
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
I A, B : conjuntos finitos.
Diagonalização
Lógica
Definições,
I R = {(a, b) | a ∈ A e b ∈ B}:
Teoremas e Provas
Alfabetos e
I um-para-um (injetiva, biunívoca).
Linguagens
I um-para-vários.
Autômatos e
Linguagens I vários-para-um (unívoca).
Linguagens
I vários-para-vários.
Livres de
Contexto I Relação inversa:
I R = {(a, b) | a ∈ A e b ∈ B}.
I R−1 = {(b, a) ∈ B × A | (a, b) ∈ R}.

Relações e Funções (195 – 209 de 481)


Operações com relações
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições, I R1 , R2 : relações definidas no conjunto finito S , ∅.
Teoremas e Provas
Alfabetos e
Linguagens I x(R1 ∪ R2 )y ⇔ xR1 y ou x R2 y.
Autômatos e
Linguagens I x(R1 ∩ R2 )y ⇔ xR1 y e x R2 y.
Linguagens
Livres de I x(RC )y ⇔ x R
6 1 y ((x, y) < R1 ).
Contexto 1

Relações e Funções (196 – 209 de 481)


Propriedades
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
I R : relação definida no conjunto finito S , ∅.
Diagonalização
Lógica
Definições,
I xRx, ∀ x ∈ S : Reflexiva.
Teoremas e Provas
Alfabetos e
Linguagens
I xR
6 x, ∀ x ∈ S ((x, x) < R) : Irreflexiva.
Autômatos e
Linguagens I xRy ⇒ yRx, ∀ x, y ∈ S : Simétrica.
Linguagens
Livres de I xRy e yRx ⇒ x = y, ∀ x, y ∈ S : Antissimétrica.
Contexto
I x , y ⇒ xR
6 y ou y R
6 x : Antissimétrica.
I xRy e yRz ⇒ xRz, ∀ x, y, z ∈ S : Transitiva.

Relações e Funções (197 – 209 de 481)


Fecho de uma relação
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização I R, R∗ : relações definidas no conjunto finito S , ∅.
Lógica
Definições,
Teoremas e Provas I R∗ é o fecho de R em relação à propriedade P se:
Alfabetos e
Linguagens
I R∗ tem a propriedade P;
Autômatos e
Linguagens I R ⊆ R∗ ;
Linguagens I R∗ é o menor conjunto que satisfaz os ítens anteriores;
Livres de
Contexto I R∗ é subconjunto de qualquer outra relação em S que inclui R e tem a
propriedade P.

Relações e Funções (198 – 209 de 481)


Fecho de uma relação
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções Exemplo 6.1
Diagonalização
Lógica
Definições,
I S = {1, 2, 3}.
Teoremas e Provas
Alfabetos e
Linguagens I R = {(1, 1), (1, 2), (1, 3), (3, 1), (2, 3)}.
Autômatos e I Fecho reflexivo: {(1, 1), (1, 2), (1, 3), (3, 1), (2, 3), (2, 2), (3, 3)}.
Linguagens

Linguagens I Fecho simétrico: {(1, 1), (1, 2), (1, 3), (3, 1), (2, 3), (2, 1), (3, 2)}.
Livres de
Contexto I Fecho transitivo: {(1, 1), (1, 2), (1, 3), (3, 1), (2, 3), (3, 2), (3, 3), (2, 1), (2, 2)}.

Relações e Funções (199 – 209 de 481)


Ordem parcial
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
I R : relação definida no conjunto finito S , ∅.
Definições,
Teoremas e Provas
Alfabetos e
I R é de ordem parcial se é reflexiva, antissimétrica e transitiva:
Linguagens
I ∀ x ∈ S ⇒ xRx.
Autômatos e
Linguagens
I ∀ x, y ∈ S, xRy e yRx ⇒ x = y.
Linguagens
I ∀ x, y, z ∈ S, xRy e yRz ⇒ xRz.
Livres de
Contexto I x ≤ y(R) ≡ (x, y) ∈ R:
I x precede y na relação R.

Relações e Funções (200 – 209 de 481)


Ordem total
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições,
Teoremas e Provas I R : relação definida no conjunto finito S , ∅.
Alfabetos e
Linguagens
I R é de ordem total se:
Autômatos e
Linguagens I R é de ordem parcial.
Linguagens I ∀ x, y ∈ S ⇒ x ≤ y(R) ou y ≤ x(R).
Livres de
Contexto

Relações e Funções (201 – 209 de 481)


Relação de equivalência
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização I R : relação definida no conjunto finito S , ∅.
Lógica
Definições,
Teoremas e Provas I R é relação de equivalência se e somente se é reflexiva, simétrica e
Alfabetos e
Linguagens transitiva:
Autômatos e
Linguagens
I ∀ x ∈ S ⇒ xRx.
I ∀ x, y ∈ S, xRy ⇒ yRx.
Linguagens
Livres de I ∀ x, y, z ∈ S, xRy e yRz ⇒ xRz.
Contexto

I R = {(x, y) ∈ N × N | x − y = 3 · k para algum k ∈ Z}.

Relações e Funções (202 – 209 de 481)


Classe de equivalência
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
I R : relação definida no conjunto finito S , ∅.
I a = {x ∈ S | xRa e a ∈ S} : classe de equivalência módulo R determinada
Relações e Funções
Diagonalização
Lógica
Definições,
Teoremas e Provas
por a.
Alfabetos e
Linguagens I S/R : conjunto das classes de equivalência módulo R.
Autômatos e
Linguagens

Linguagens
Teorema 6.2
Livres de
Contexto
Se R é relação de equivalência sobre o conjunto S, então S/R é partição de S.

Teorema 6.3
Se Π é uma partição do conjunto S, então existe uma relação R de
equivalência sobre S, de modo que S/R = Π.

Relações e Funções (203 – 209 de 481)


Relação n-ária
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
I S1 , S2 , · · · , Sn – conjuntos.
Diagonalização
Lógica I Relação n-ária em S1 , S2 , · · · , Sn :
Definições,
Teoremas e Provas I Subconjunto de S1 × S2 × · · · × Sn .
Alfabetos e
Linguagens

Autômatos e
I Relação unária R em um conjunto S:
Linguagens I R ⊆ S.
Linguagens
Livres de
I x ∈ S satisfaz R se e somente se x ∈ R.
Contexto
I Relação n-ária R em um conjunto S:
I R ⊆ Sn .
I Conjunto de n-uplas ordenadas de elementos de S.

Relações e Funções (204 – 209 de 481)


Funções
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização Definição
Lógica
Definições,
Teoremas e Provas
I f : A R B ⊂ A × B : função de um conjunto A no conjunto B.
Alfabetos e
Linguagens I Cada elemento de A aparece exatamente uma vez como primeiro
Autômatos e
Linguagens
componente de um par ordenado de f .
Linguagens
I Método para associar cada a ∈ A a um único b ∈ B. Logo, se
Livres de
Contexto
(a, b), (a, c) ∈ f ⇒ b = c.

Relações e Funções (205 – 209 de 481)


Funções
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Notação
Relações e Funções
Diagonalização I f : A R B ( f : A → B):
Lógica
Definições, I A é o domínio (D( f )) e B o contra-domínio de f .
Teoremas e Provas
Alfabetos e
Linguagens
I (a, b) ∈ f ⇒ f (a) = b.
I b é a imagem de a por f .
Autômatos e
Linguagens I a é a pré-imagem de b por f .
Linguagens
Livres de I Uma relação R de A em B é uma função f : A → B se:
Contexto
I D( f ) = A;
I Dado a ∈ D( f ), é único o elemento b ∈ B tal que (a, b) ∈ f .

Relações e Funções (206 – 209 de 481)


Funções
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Propriedades
Definições,
Teoremas e Provas I Uma função f : A → B pode ser:
Alfabetos e
Linguagens
I Injetora: ∀ b ∈ B, ∃ no máximo um a ∈ A tal que f (a) = b.
Autômatos e
Linguagens I Sobrejetora: ∀ b ∈ B, ∃ pelo menos um a ∈ A tal que f (a) = b.
Linguagens I Bijetora: ∀ b ∈ B, ∃ exatamente um a ∈ A tal que f (a) = b.
Livres de
Contexto

Relações e Funções (207 – 209 de 481)


Funções
ICCC 2024

Julliano
Nascimento
Função identidade
Fundamentos
Matemáticos
Conjuntos
I f : A → A é identidade (iA ) se f (a) = a, ∀ a ∈ A.
Relações e Funções
Diagonalização
Lógica
Definições,
Teoremas e Provas
Função composta
Alfabetos e
Linguagens I f : A → B.
Autômatos e
Linguagens I g : B → C.
Linguagens
Livres de
I g ◦ f : A → C.
Contexto
I (g ◦ f )(a) = g( f (a)).

Teorema 6.4
Se f : A → B e g : B → C são bijeções, então (g ◦ f ) é uma bijeção.

Relações e Funções (208 – 209 de 481)


Funções
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização Função inversa
Lógica
Definições,
Teoremas e Provas
I Seja f : A → B. Se existir g : B → A tal que (g ◦ f ) = iA e ( f ◦ g) = iB , g é
chamada de inversa de f (denotada por f −1 ).
Alfabetos e
Linguagens

Autômatos e
Linguagens

Linguagens Teorema 6.5


Livres de
Contexto Seja f : A → B. f é uma bijeção se e somente se f −1 existe.

Relações e Funções (209 – 209 de 481)


Conjuntos equinumerosos
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições,
Teoremas e Provas
I A, B : conjuntos quaisquer.
Alfabetos e
Linguagens I A e B são equinumerosos se existir uma bijeção f : A → B.
Autômatos e I Se existe f : A → B, então existe f −1 : B → A.
Linguagens
I Equinumerosidade é uma relação de equivalência.
Linguagens
Livres de
Operações com Linguagens
Contexto

Diagonalização (210 – 224 de 481)


Conjuntos finitos e infinitos
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições,
Teoremas e Provas I Um conjunto é:
N.
Alfabetos e
Linguagens
I Finito se ele é equinumeroso com {1, 2, . . . , n}, para algum n ∈
Autômatos e
I Infinito se ele não é finito!!!
N
Linguagens

Linguagens
I Contavelmente infinito se é equinumeroso com .
Livres de
Contexto

Diagonalização (211 – 224 de 481)


Conjuntos de mesmo Tamanho
ICCC 2024

Julliano
Nascimento

Fundamentos
I Georg Cantor, 1873.
Matemáticos
Conjuntos
I Problema da medição do tamanho de conjuntos infinitos.
Relações e Funções
Diagonalização
I Dados dois conjuntos infinitos, os dois são de mesmo tamanho ou um deles
Lógica
é maior que o outro?
Z
Definições,
Teoremas e Provas
Alfabetos e
I Ex: P = {n = 2 · k | k ∈ + } e S = {s | s ∈ {0, 1}∗ }.
Linguagens
I Cantor ⇒ dois conjuntos finitos tem o mesmo tamanho se os elementos
Autômatos e
Linguagens de um conjunto podem ser emparelhados com os elementos do outro
Linguagens conjunto.
Livres de
Contexto I Método compara os tamanhos sem recorrer à contagem dos elementos.
I Ideia pode ser estendida para conjuntos infinitos.

Definição 6.6
Um conjunto A é contável se é finito ou tem o mesmo tamanho que o conjunto
N.

Diagonalização (212 – 224 de 481)


Conjuntos de mesmo Tamanho
ICCC 2024

Julliano
Nascimento Exemplo 6.7
Fundamentos
Matemáticos
I N = {0, 1, 2, 3, . . . }.
Conjuntos
I P = {2, 4, 6, . . . }.
N (P ⊂ N)!
Relações e Funções
Diagonalização
Lógica I Intuitivamente P parece ser menor que
Definições,
Teoremas e Provas
N
I Segundo a definição de Cantor, e P têm o mesmo tamanho.
N
Alfabetos e
Linguagens

Autômatos e
I A função f (n) = 2n + 2 faz o mapeamento de para P:
Linguagens

Linguagens
Livres de
n f (n)
Contexto 0 2
1 4
2 6
.. ..
. .

Diagonalização (213 – 224 de 481)


Conjuntos de mesmo Tamanho
ICCC 2024

Julliano
Nascimento
Exemplo 6.8
Fundamentos I N∗ = {1, 2, 3, . . . }.
I Q∗+ = { mn | m, n ∈ N}.
Matemáticos
Conjuntos

I Intuitivamente Q∗+ parece ser muito maior que N∗ !


Relações e Funções
Diagonalização
Lógica

I Segundo a definição de Cantor, N∗ e Q∗+ têm o mesmo tamanho.


Definições,
Teoremas e Provas
Alfabetos e

I Listar todos os elementos de Q∗+ e corresponder com N∗ .


Linguagens

Autômatos e
Linguagens
I 11 , 21 , 31 , · · · , 12 , 22 , 23 , · · · , 31 , 32 , . . .
Linguagens
Livres de I Primeiro da lista com 1, segundo com 2, etc.
Contexto
I Problema: elementos da sub-lista 21 , 22 , 23 , · · · nunca seriam considerados.

Diagonalização (214 – 224 de 481)


Conjuntos de mesmo Tamanho
ICCC 2024

Julliano
Nascimento
Exemplo 6.8
Fundamentos
Matemáticos
I Correspondência entre Q∗+ e N∗:
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições,
Teoremas e Provas
Alfabetos e
Linguagens
1 1 1 1 1
1 2 3 4 5
Autômatos e
Linguagens 2 2 2 2 2
1 2 3 4 5
Linguagens
Livres de
Contexto 3 3 3 3 3
1 2 3 4 5

4 4 4 4 4
1 2 3 4 5

5 5
1 2

Diagonalização (215 – 224 de 481)


Conjuntos de mesmo Tamanho
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica I Quaisquer dois conjuntos infinitos têm o mesmo tamanho?
N.
Definições,
Teoremas e Provas
Alfabetos e
I NÃO. Existem conjuntos infinitos que não têm correspondência com
Linguagens
I Tais conjuntos não são contavelmente infinitos.
Autômatos e
Linguagens I Cantor provou que R não é contavelmente infinito.
Linguagens I A prova de Cantor mostra que o intervalo [0, 1] não é contavelmente infinito.
Livres de
Contexto I Argumento de Diagonalização de Cantor.

Diagonalização (216 – 224 de 481)


Método da Diagonalização
ICCC 2024

Julliano
Nascimento
Teorema 6.9
O intervalo [0, 1] não é contavelmente infinito.
Fundamentos
Matemáticos
Conjuntos Demonstração.
Relações e Funções
Diagonalização
Lógica
Definições,
1. Supor que o intervalo [0, 1] é infinito enumerável.
Teoremas e Provas
Alfabetos e
I É possível enumerar todos os números deste intervalo como uma
sequência (r1 , r2 , r3 , . . . ).
Linguagens

Autômatos e
Linguagens I Cada um de tais números pode ser representado como uma expansão
Linguagens decimal.
Livres de
Contexto

Problema da Aceitação por MT’s

Diagonalização (217 – 224 de 481)


Método da Diagonalização
ICCC 2024

Julliano
Nascimento
Teorema 6.9
O intervalo [0, 1] não é contavelmente infinito.
Fundamentos
Matemáticos
Conjuntos Demonstração.
Relações e Funções
Diagonalização
Lógica
Definições,
2. Arranjar os números em uma lista (eles não precisam estar em ordem).
Teoremas e Provas
Alfabetos e
I No caso de números com duas expansões decimais, como
0, 499 · · · = 0, 500 . . . , escolher aquela que acaba com 9’s.
Linguagens

Autômatos e
Linguagens

Linguagens
Livres de
Contexto

Problema da Aceitação por MT’s

Diagonalização (218 – 224 de 481)


Método da Diagonalização
ICCC 2024

Julliano
Nascimento
Teorema 6.9
O intervalo [0, 1] não é contavelmente infinito.
Fundamentos
Matemáticos
Conjuntos Demonstração.
Relações e Funções
Diagonalização
Lógica
Definições,
3. Supor que as expansões decimais do início da seqüência são como se
Teoremas e Provas segue:
= 0, 5 1 0 5 1 1 0 . . .
Alfabetos e
Linguagens r1
Autômatos e
r2 = 0, 4 1 3 2 0 4 3 . . .
Linguagens r3 = 0, 8 2 4 5 0 2 6 . . .
Linguagens
r4 = 0, 2 3 3 0 1 2 6 . . .
Livres de r5 = 0, 4 1 0 7 2 4 6 . . .
Contexto r6 = 0, 9 9 3 7 8 3 8 . . .
r7 = 0, 0 1 0 5 1 3 5 . . .
..
.

Problema da Aceitação por MT’s

Diagonalização (219 – 224 de 481)


Método da Diagonalização
ICCC 2024

Julliano
Nascimento
Teorema 6.9
O intervalo [0, 1] não é contavelmente infinito.
Fundamentos
Matemáticos
Conjuntos Demonstração.
Relações e Funções
Diagonalização
Lógica
Definições,
4. Construir um x ∈ [0, 1], considerando o k-ésimo dígito depois da vírgula da
Teoremas e Provas
Alfabetos e
expansão decimal de rk (dígitos em vermelho):
Linguagens

Autômatos e r1 = 0, 5 1 0 5 1 1 0 . . .
Linguagens r2 = 0, 4 1 3 2 0 4 3 . . .
Linguagens r3 = 0, 8 2 4 5 0 2 6 . . .
Livres de r4 = 0, 2 3 3 0 1 2 6 . . .
Contexto
r5 = 0, 4 1 0 7 2 4 6 . . .
r6 = 0, 9 9 3 7 8 3 8 . . .
r7 = 0, 0 1 0 5 1 3 5 . . .
..
.


Problema da Aceitação por MT’s

Diagonalização (220 – 224 de 481)


Método da Diagonalização
ICCC 2024

Julliano
Nascimento
Teorema 6.9
O intervalo [0, 1] não é contavelmente infinito.
Fundamentos
Matemáticos
Conjuntos Demonstração.
Relações e Funções
Diagonalização
Lógica
Definições,
5. Definir, a partir desses dígitos, os dígitos do número x como:
Teoremas e Provas
Alfabetos e (
Linguagens
4 se o k-ésimo dígito de rk é 5,
Autômatos e xk =
Linguagens 5 se o k-ésimo dígito de rk não é 5.
Linguagens
Livres de
Contexto I xk é o k-ésimo dígito de x.
I x = 0, 4555554 . . . para o exemplo dado.

Problema da Aceitação por MT’s

Diagonalização (221 – 224 de 481)


Método da Diagonalização
ICCC 2024

Julliano
Nascimento
Teorema 6.9
O intervalo [0, 1] não é contavelmente infinito.
Fundamentos
Matemáticos
Conjuntos Demonstração.
Relações e Funções
Diagonalização
Lógica
Definições,
6. O número x é um número real dentro do intervalo [0, 1].
Teoremas e Provas
Alfabetos e
Linguagens
7. Logo, rn = x para algum n (supôs-se que (r1 , r2 , r3 , . . . ) enumera todos os
Autômatos e números reais no intervalo [0, 1]).
Linguagens

Linguagens
8. No entanto, por causa do modo que os dígitos de x foram escolhidos, x
Livres de
Contexto
difere na n-ésima posição de rn .

Problema da Aceitação por MT’s

Diagonalização (222 – 224 de 481)


Método da Diagonalização
ICCC 2024

Julliano
Nascimento
Teorema 6.9
O intervalo [0, 1] não é contavelmente infinito.
Fundamentos
Matemáticos
Conjuntos Demonstração.
Relações e Funções
Diagonalização
Lógica
Definições,
9. Logo, x não está na seqüência (r1 , r2 , r3 , . . . ).
Teoremas e Provas
Alfabetos e
Linguagens
10. Assim, essa seqüência não é uma enumeração do conjunto de todos os
Autômatos e reais no intervalo [0, 1] (contradição).
Linguagens

Linguagens
11. Portanto, hipótese de que o intervalo [0, 1] é contavelmente finita deve ser
Livres de
Contexto
falsa.

Problema da Aceitação por MT’s

Diagonalização (223 – 224 de 481)


Método da Diagonalização
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Teorema 6.10
Relações e Funções
Diagonalização
I Se A ⊆ B e B é contável, então A é contável.
Lógica
Definições, I Se A ⊆ B e A não é contavelmente infinito, então B não é contavelmente
Teoremas e Provas
Alfabetos e
Linguagens
infinito.
Autômatos e
Linguagens
Teorema 6.11
Linguagens
Livres de O conjunto R não é contavelmente infinito.
Contexto

Teorema 6.12
O conjunto P(A) não é contavelmente infinito para qualquer conjunto infinito A.

Diagonalização (224 – 224 de 481)


Operações booleanas
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjunção Disjunção Negação
Conjuntos 0∧0=0 0∨0=0 ¬0 = 1
Relações e Funções
Diagonalização 0∧1=0 0∨1=1 ¬1 = 0
Lógica
Definições,
Teoremas e Provas
1∧0=0 1∨0=1
Alfabetos e
Linguagens
1∧1=1 1∨1=1
Autômatos e
Linguagens

Linguagens
Livres de
Contexto
OU Exclusivo Implicação Igualdade
0⊕0=0 0→0=1 0↔0=1
0⊕1=1 0→1=1 0↔1=0
1⊕0=1 1→0=0 1↔0=0
1⊕1=0 1→1=1 1↔1=1

Lógica (225 – 226 de 481)


Expressões booleanas
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização

=
Lógica
Definições, P ∧ (Q ∨ R) (P ∧ Q) ∨ (P ∧ R)
Teoremas e Provas
Alfabetos e
Linguagens
P ∨ (Q ∧ R) = (P ∨ Q) ∧ (P ∨ R)
Autômatos e P∨Q = ¬(¬P ∧ ¬Q)
Linguagens
P→Q = ¬P ∨ Q
Linguagens
Livres de P↔Q = (P → Q) ∧ (Q → p)
Contexto
P⊕Q = ¬(P ↔ Q)

Lógica (226 – 226 de 481)


Definições Recursivas
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização I Definição recursiva de um conjunto:
Lógica
Definições,
Teoremas e Provas
I Especificação de um método para a construção dos elementos do conjunto.
Alfabetos e
Linguagens

Autômatos e
I Componentes de uma definição:
Linguagens I Base – subconjunto finito de elementos, os quais pertencem ao conjunto em
Linguagens
Livres de
definição.
Contexto I Conjunto de operações – necessárias para a construção de novos
elementos a partir de outros pré-definidos.

Definições, Teoremas e Provas (227 – 265 de 481)


Definições Recursivas
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Exemplo 6.13
Diagonalização
Lógica
I Função sucessor:
Definições,
Teoremas e Provas I s(n) = n + 1.
N:
Alfabetos e
Linguagens
I Definição do conjunto
N
Autômatos e
Linguagens I Base → 0 ∈ .
Linguagens N N
I Recursão → Se n ∈ , então s(n) ∈ .
Livres de
Contexto N
I Fecho → n ∈ se n pode ser obtida a partir de 0 com um número finito de
aplicações da função s.

Definições, Teoremas e Provas (228 – 265 de 481)


Definições Recursivas
ICCC 2024

Julliano
Nascimento

Exemplo 6.14
N:
Fundamentos
Matemáticos
Conjuntos
I Soma de dois números m, n ∈
Relações e Funções
Diagonalização
I Base → Se n = 0, então m + n = m.
Lógica I Recursão → m + s(n) = s(m + n).
Definições,
Teoremas e Provas I Fecho → m + n = k se a igualdade pode ser obtido a partir de m + 0 = m com
Alfabetos e
Linguagens
um número finito de aplicações da função s.
Autômatos e
Linguagens I Ex:.
Linguagens
Livres de
3+2 = s(s(s(0))) + s(s(0))
Contexto = s(s(s(s(0))) + s(0))
= s(s(s(s(s(0))) + 0))
= s(s(s(s(s(0))))) (caso base)
3+2 = 5

Definições, Teoremas e Provas (229 – 265 de 481)


Princípio da boa ordenação
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos

N : subconjunto de números naturais.


Relações e Funções
Diagonalização
Lógica I ∅,A⊆
Definições,
Teoremas e Provas
Alfabetos e I Elemento mínimo:
Linguagens

Autômatos e
I min(A) = a ⇔ a ∈ A e a ≤ x, ∀ x ∈ A.
Linguagens
I Princípio da boa ordenação:
N
Linguagens
Livres de I Todo ∅ , A ⊆ possui elemento mínimo.
Contexto
N
I ∀ A ⊆ , A , ∅ ⇒ ∃ min(A).

Definições, Teoremas e Provas (230 – 265 de 481)


Indução Finita
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização

N que satisfaça:
Lógica
Definições,
Teoremas e Provas I Seja A ⊆
Alfabetos e
Linguagens
1) 0 ∈ A,
Autômatos e
N
2) ∀ k ∈ , k ∈ A ⇒ (k + 1) ∈ A.
N.
Linguagens

Linguagens I Nestas condições, A =


Livres de
Contexto

Definições, Teoremas e Provas (231 – 265 de 481)


Indução Matemática
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições,
Teoremas e Provas
I Seja P(n) uma proposição associada a um inteiro não negativo n e que
Alfabetos e
Linguagens
satisfaz:
1) P(0) é verdadeira,
N
Autômatos e
Linguagens
2) ∀ k ∈ , se P(k) é verdadeira, então P(k + 1) também é verdadeira.
Linguagens
Livres de
Contexto
I Nestas condições, P(n) é verdadeira para todo n ∈ N.

Definições, Teoremas e Provas (232 – 265 de 481)


Indução Matemática
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções

N
Diagonalização
Lógica
Definições,
Teoremas e Provas
I P(n): n! > 2n , ∀ 4 ≤ n ∈ .
Alfabetos e
Linguagens
I Demonstração por indução:
Autômatos e N
1. Definir o conjunto A = {n ∈ | P(n) é verdadeira.}.
Linguagens
N
2. Provar que A = − {0, 1, 2, 3}.
N − {0, 1, 2, 3}.
Linguagens
Livres de
Contexto
I Nestas condições, P(n) é verdadeira para todo n ∈

Definições, Teoremas e Provas (233 – 265 de 481)


Indução Matemática
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
I P(n): n! > 2n , ∀ 4 ≤ n ∈ N.
Conjuntos
Relações e Funções I Demonstração por indução:
Diagonalização
Lógica 1. Base → Para n = 4, 4! = 24 > 16 = 24 ;
Definições,
Teoremas e Provas I 4 ∈ A.
Alfabetos e
Linguagens
2. Hipótese indutiva → Suponha que k! > 2k para k = 4, 5, . . . , n.
Autômatos e
Linguagens (n + 1)! = n!(n + 1)
Linguagens
> 2n .(n + 1) (hipótese indutiva)
3. Passo indutivo →
Livres de > 2n .2 (já que n + 1 > 2)
Contexto
= 2n+1
I ∀ k ≥ 4, k ∈ A ⇒ (k + 1) ∈ A.

I Nestas condições, P(n) é verdadeira para todo n ∈ N − {0, 1, 2, 3}.


I A= N − {0, 1, 2, 3}.

Definições, Teoremas e Provas (234 – 265 de 481)


Teoremas e Provas
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos I Teorema: respostas a questões matemáticas.
Relações e Funções
Diagonalização I Se certas condições são verdadeiras, então alguma conclusão também é
Lógica
Definições, verdadeira.
Teoremas e Provas
Alfabetos e
I Hipótese verdadeira =⇒ Tese verdadeira.
Linguagens

Autômatos e I Instância do teorema:


Linguagens
I Atribuição particular de valores a variáveis livres nas hipóteses e
Linguagens
Livres de conclusões.
Contexto I Variáveis livres podem assumir quaisquer valores do universo em discussão.
I Teorema correto:
I Tese verdadeira para toda instância que torne a hipótese verdadeira.

Definições, Teoremas e Provas (235 – 265 de 481)


Teoremas e Provas
ICCC 2024

Julliano
Nascimento

Fundamentos I Contraexemplo
Matemáticos
Conjuntos I Instância que torna a hipótese verdadeira mas leva a uma conclusão falsa.
Relações e Funções
Diagonalização I Encontrar um contraexemplo é suficiente para mostrar que o teorema é
Lógica
Definições, falso.
Teoremas e Provas
Alfabetos e
I Único modo de mostrar que um teorema é verdadeiro é provando-o!
Linguagens

Autômatos e
Linguagens Exemplo 6.15
Linguagens
Livres de I Teorema 1 : Se x > 3 e y < 2, então x2 − 2y > 5.
Contexto
I x = 5 e y = 1 ⇒ 23 > 5 : Não prova o teorema, apenas verifica uma
instância.
I Teorema 2 : Se x > 3, então x2 − 2y > 5.
I x = 4 e y = 6 ⇒ x2 − 2.y = 4 > 5! : Contraexemplo.

Definições, Teoremas e Provas (236 – 265 de 481)


Teoremas e Provas
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições,
I A prova é um argumento dedutivo cujas premissas são as hipóteses e
Teoremas e Provas
Alfabetos e
cuja conclusão é a tese do teorema.
Linguagens
I Argumento válido.
Autômatos e
Linguagens I Forma lógica das hipóteses ⇒ forma lógica da conclusão.
Linguagens
Livres de
I Qual a estratégia de prova mais adequada às várias formas de hipóteses
Contexto e teses?

Definições, Teoremas e Provas (237 – 265 de 481)


Teoremas e Provas
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições,
Teoremas e Provas
I Regras básicas:
Alfabetos e
Linguagens I Nunca afirme alguma coisa se você não puder justificá-la completamente.
Autômatos e I Se você tem qualquer dúvida a respeito da justificativa para uma afirmação,
Linguagens
então ela não é adequada.
Linguagens
Livres de
I Se o seu raciocínio não o convence, como convencerá a outros?
Contexto

Definições, Teoremas e Provas (238 – 265 de 481)


Teoremas e Provas
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições,
Teoremas e Provas
I Supor e Afirmar
Alfabetos e
Linguagens I Afirmar um enunciado é alegar que o mesmo é verdadeiro e isso não é
Autômatos e aceitável em uma prova, a menos que possa ser justificado.
Linguagens
I Supor um enunciado permite dizer o que poderia ser verdadeiro se o
Linguagens
Livres de enunciado fosse verdadeiro.
Contexto

Definições, Teoremas e Provas (239 – 265 de 481)


Transformação do Problema
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
I Provar uma conclusão da forma P → Q
Diagonalização
Lógica
a) Adicione P à lista de hipóteses.
Definições,
Teoremas e Provas
b) Mude a conclusão de P → Q para Q.
Alfabetos e
Linguagens
I Se resolver o novo problema, na verdade terá mostrado que se P é
Autômatos e verdadeiro então Q também é verdadeiro, ou seja, terá resolvido o problema
Linguagens original P → Q.
Linguagens
Livres de I Notação:
Contexto
I Dados: enunciados conhecidos ou aqueles que se assumiu serem
verdadeiros em algum ponto da demonstração.
I Objetivo: enunciados a serem provados.

Definições, Teoremas e Provas (240 – 265 de 481)


Teoremas e Provas
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos I Provar uma conclusão da forma P → Q:
Conjuntos
Relações e Funções
Diagonalização
a) Suponha que P é verdadeiro.
Lógica b) Use este postulado para concluir que Q é verdadeiro.
Definições,
Teoremas e Provas
Alfabetos e
Linguagens
Exemplo 6.16
R. Prove que se 0 < a < b, então a2 < b2.
Autômatos e
Linguagens I Sejam a, b ∈
Linguagens
Livres de R
I Dados: a, b ∈ (hipótese).
Contexto I Objetivo: Se 0 < a < b, então a2 < b2 (tese).

R
I Dados: a, b ∈ , 0 < a < b.
I Objetivo: a2 < b2 .

Definições, Teoremas e Provas (241 – 265 de 481)


Provar um “Objetivo” da forma P → Q
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos I Rascunho:
Relações e Funções
Diagonalização Dados Objetivo
Lógica
..
Definições,
Teoremas e Provas . P→Q Antes da transformação.
Alfabetos e
Linguagens
..
. Q Depois da transformação.
Autômatos e
Linguagens P
Linguagens
Livres de I Solução:
Contexto
Suponha que P é verdadeiro.
[Prove que Q é verdadeiro]
Portanto, P → Q.

Definições, Teoremas e Provas (242 – 265 de 481)


“Objetivo” da forma P → Q ≡ ¬Q → ¬P
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos I Rascunho :
Relações e Funções
Diagonalização Dados Objetivo
..
Lógica
Definições,
Teoremas e Provas . P→Q Antes da transformação.
..
Alfabetos e
Linguagens

Autômatos e
. ¬P Depois da transformação.
Linguagens ¬Q
Linguagens
Livres de
Contexto
I Solução:
Suponha que Q é falso.
[Prove que ¬P é verdadeiro]
Portanto, P → Q.

Definições, Teoremas e Provas (243 – 265 de 481)


“Objetivo” da forma P → Q ≡ ¬Q → ¬P
ICCC 2024

Julliano
Nascimento

Fundamentos Exemplo 6.17


R e tais que a > b. Prove que se a.c ≤ b.c, então c < 0.
Matemáticos
Conjuntos
Relações e Funções
I Sejam a, b, c ∈
Diagonalização
Dados Objetivo
R
Lógica
Definições,
Teoremas e Provas a, b, c ∈ a.c ≤ b.c ⇒ c ≤ 0
Alfabetos e
a>b
R
Linguagens

Autômatos e a, b, c ∈ a.c > b.c


Linguagens a>b
Linguagens c>0
Livres de
Contexto
I Solução:
Suponha c > 0. Multiplicando ambos os lados da desigualdade a > b
por c conclui-se que a.c > b.c. Portanto, se a.c ≤ b.c então c ≤ 0.

Definições, Teoremas e Provas (244 – 265 de 481)


“Objetivo” da forma ¬P
ICCC 2024

Julliano
Nascimento

Fundamentos I Se possível, reescreva o objetivo de alguma outra forma (enunciado


Matemáticos
Conjuntos positivo) e use uma das estratégias de prova.
Relações e Funções
Diagonalização
Lógica
Definições,
Teoremas e Provas
Exemplo 6.18
U. Suponha que A ∩ C ⊆ B e a ∈ C. Prove
Alfabetos e
Linguagens

Autômatos e
I Sejam os conjuntos A, B, C ⊆
Linguagens que a < A\B.
Linguagens
Livres de I Rascunho:
Contexto
Dados Objetivo
A, B, C ⊆U a < A\B
A∩C⊆B
a∈C

Definições, Teoremas e Provas (245 – 265 de 481)


“Objetivo” da forma ¬P
ICCC 2024

Julliano
Nascimento

Fundamentos I Se possível, reescreva o objetivo de alguma outra forma (enunciado


Matemáticos
Conjuntos positivo) e use uma das estratégias de prova.
Relações e Funções
Diagonalização
Lógica
Definições,
Teoremas e Provas
Exemplo 6.18
Alfabetos e
Linguagens

Autômatos e
I Obs-1:
Linguagens
P → Q ≡ ¬P ∨ Q ≡ ¬(P ∧ ¬Q)
Linguagens
Livres de
Contexto

I Obs-2:
a < A\B ≡ ¬(a ∈ A ∧ a < B) [Definição de A\B]
≡ a<A∨a∈B [DeMorgan]
≡ a∈A⇒a∈B [Condicional]

Definições, Teoremas e Provas (246 – 265 de 481)


“Objetivo” da forma ¬P
ICCC 2024

Julliano
Nascimento

Fundamentos I Se possível, reescreva o objetivo de alguma outra forma (enunciado


Matemáticos
Conjuntos positivo) e use uma das estratégias de prova.
Relações e Funções
Diagonalização
Lógica
Definições,
Teoremas e Provas
Exemplo 6.18
Alfabetos e
Linguagens

Autômatos e
I Rascunho:
Linguagens
Dados Objetivo
Linguagens
Livres de
Contexto
U
A, B, C ⊆ a∈A⇒a∈B
A∩C⊆B
a∈C
U
A, B, C ⊆ a∈B
A∩C⊆B
a∈C
a∈A

Definições, Teoremas e Provas (247 – 265 de 481)


“Objetivo” da forma ¬P
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos I Nem sempre um objetivo da forma ¬P pode ser reescrito como
Conjuntos
Relações e Funções "enunciado positivo".
Diagonalização
Lógica I Rascunho :
Definições,
Teoremas e Provas
Alfabetos e
Dados Objetivo
Linguagens
..
Autômatos e . ¬P
Linguagens
..
Linguagens . hContradiçãoi
Livres de P
Contexto
I Solução:
Suponha que P é verdadeiro.
[Prove a contradição]
Portanto, P é falso.

Definições, Teoremas e Provas (248 – 265 de 481)


“Objetivo” da forma ¬P
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições,
Teoremas e Provas
Alfabetos e
I Prova por contradição:
Linguagens
I Vantagem : supor P verdadeiro permite crescer a lista de hipóteses.
Autômatos e
Linguagens
I Desvantagem : Objetivo vago, ou seja, produzir uma contradição de alguma
Linguagens coisa que é verdadeiro.
Livres de
Contexto

Definições, Teoremas e Provas (249 – 265 de 481)


“Objetivo” da forma ¬P
ICCC 2024

Julliano
Nascimento

Fundamentos
Exemplo 6.19
Matemáticos
Conjuntos
Relações e Funções
I Dados x, y ∈ R, prove que se x2 + y = 13 e y , 4 então x , 3.
Diagonalização I x , 3 ≡ ¬(x = 3), logo estratégia anterior não pode ser usada.
Lógica
Definições,
Teoremas e Provas Dados Objetivo
Alfabetos e
Linguagens x, y ∈R x2 + y = 13 e y , 4 ⇒ x , 3
Autômatos e
Linguagens
x, y ∈R x,3
x2 + y = 13
Linguagens y,4
Livres de
Contexto x, y ∈R hContradiçãoi
x2 + y = 13
y,4
x=3

Definições, Teoremas e Provas (250 – 265 de 481)


Usar um “Dado” da forma ¬P
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos I Numa prova por contradição tente fazer de P o objetivo.
Conjuntos
Relações e Funções I Se P pode ser provado, P contradiz o dado ¬P.
Diagonalização
Lógica
Dados Objetivo
Definições,
Teoremas e Provas ..
Alfabetos e
Linguagens
. hContradiçãoi
Autômatos e
¬P
Linguagens ..
Linguagens
. P
Livres de ¬P
Contexto

I Solução:
[Prove que P é verdadeiro]
Como já se sabe que ¬P é verdadeiro, tem-se uma contradição.

Definições, Teoremas e Provas (251 – 265 de 481)


Provas por contradição
ICCC 2024

Julliano
Nascimento I Provas por contradição podem ser usadas com objetivos que não são da
Fundamentos forma ¬P.
Matemáticos
Conjuntos
Relações e Funções Exemplo 6.20
Diagonalização
Lógica
Definições,
U
I Dados A, B, C ⊆ , tais que A\B ⊆ C, prove que se x ∈ A\C, então x ∈ B.
Dados Objetivo Solução
Teoremas e Provas
Alfabetos e
A\B ⊆ C x ∈ A\C ⇒ x ∈ B
Linguagens
A\B ⊆ C x∈B Suponha x ∈ A\C.
Autômatos e x ∈ A\C [Prove que x ∈ B].
Linguagens Portanto, se x ∈ A\C, então x ∈ B.
Linguagens A\B ⊆ C hContradiçãoi Suponha x ∈ A\C.
Livres de x ∈ A\C Suponha x < B.
Contexto
x<B [Prove a contradição].
Assim, x ∈ B.
Portanto, se x ∈ A\C, então x ∈ B.
A\B ⊆ C x∈C Suponha x ∈ A\C (x ∈ A e x < C).
x∈A Suponha x < B.
x<C [Prove que x ∈ C].
x<B Isto contradiz o fato de x < C.
Assim, x ∈ B.
Portanto, se x ∈ A\C, então x ∈ B.

Definições, Teoremas e Provas (252 – 265 de 481)


“Dado” da forma P → Q
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições,
Teoremas e Provas
Alfabetos e
I Se P é dado também ou se é possível provar que P é verdadeiro, conclua
Linguagens
que Q é verdadeiro.
Autômatos e
Linguagens
I Se P e P → Q são verdadeiros, então Q também é verdadeiro.
Linguagens
I Se P → Q é verdadeiro e Q é falso, então P deve ser falso também.
Livres de
Contexto

Definições, Teoremas e Provas (253 – 265 de 481)


“Dado” da forma P → Q
ICCC 2024

Julliano Exemplo 6.21


Nascimento
I Suponha P → (Q → R). Prove que ¬R → (P → ¬Q).
Fundamentos
Matemáticos I P → Q ≡ ¬Q → ¬P.
Conjuntos
Relações e Funções
Diagonalização
Dados Objetivo Solução
Lógica P → (Q → R) ¬R → (P → ¬Q)
Definições,
Teoremas e Provas P → (Q → R) P → ¬Q Suponha ¬R.
Alfabetos e
Linguagens
¬R [Prove que P → ¬Q].
Portanto, ¬R → (P → ¬Q).
Autômatos e
Linguagens
P → (Q → R) ¬Q Suponha ¬R.
¬R Suponha P.
Linguagens
Livres de
P [Prove ¬Q].
Contexto Portanto, P → ¬Q.
Portanto, ¬R → (P → ¬Q).
P → (Q → R) ¬Q Suponha ¬R.
¬R Suponha P.
P Como P e P → (Q → R), segue que Q → R.
Q→R [Prove ¬Q].
Portanto, P → ¬Q.
Portanto, ¬R → (P → ¬Q).

Definições, Teoremas e Provas (254 – 265 de 481)


Provas por contradição
ICCC 2024

Julliano
Nascimento
Exemplo 6.22
Fundamentos
Matemáticos U
I Sejam A, B ⊆ e tais que A ⊂ B. Considere elementos genéricos a e b
Conjuntos
Relações e Funções tais que a ∈ A e a e b não pertencem ao mesmo tempo a B. Prove que
Diagonalização
Lógica
b < B.
Definições,
Teoremas e Provas
Alfabetos e Dados Objetivo Solução
Linguagens
A⊂B b<B
Autômatos e
Linguagens
a∈A
¬(a ∈ B ∧ b ∈ B)
Linguagens
Livres de A⊂B b<B
Contexto
a∈A
a∈B→b<B
A⊂B a∈B
a∈A
a∈B→b<B

Definições, Teoremas e Provas (255 – 265 de 481)


Provar um “Objetivo” da forma ∀ x P(x)
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos I Considere x um objeto arbitrário e prove P(x).
Conjuntos
Relações e Funções
Diagonalização I Rascunho :
Lógica
Definições, Dados Objetivo
..
Teoremas e Provas
Alfabetos e
Linguagens . ∀ x P(x)
Autômatos e ..
Linguagens . P(x)
Linguagens x arbitrário
Livres de
Contexto
I Solução:
Considere um x arbitrário.
[Prove P(x)].
Como x é arbitrário, conclui-se que ∀ x P(x).

Definições, Teoremas e Provas (256 – 265 de 481)


Provar um “Objetivo” da forma ∀ x P(x)
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Exemplo 6.23
Conjuntos
Relações e Funções
Diagonalização
I Sejam A, B ⊆ U. Prove que se A ∩ B = A, então A ⊆ B.
Lógica I Rascunho:
Definições,
Teoremas e Provas
Dados Objetivo Solução
U
Alfabetos e
Linguagens
A, B ⊆ A∩B=A⇒A⊆B Suponha A ∩ B = A.
Autômatos e
Linguagens
U
A, B ⊆ A⊆B Considere um x ∈ A arbitrário.
A∩B=A [Prove que x ∈ B].
Linguagens
Livres de
U
A, B ⊆ ∀ x (x ∈ A → x ∈ B) Portanto, x ∈ A → x ∈ B
A∩B=A Como x é arbitrário, conclui-se que
U
Contexto
A, B ⊆ x∈B ∀ x (x ∈ A → x ∈ B). Assim, A ⊆ B.
A∩B=A Portanto, se A ∩ B = A, então A ⊆ B.
x∈A

Definições, Teoremas e Provas (257 – 265 de 481)


Provar um "Objetivo" da forma ∃ x P(x)
ICCC 2024

Julliano
Nascimento

Fundamentos I Tente encontrar um valor de x para o qual você acredita que P(x) seria
Matemáticos
Conjuntos verdadeiro e prove P(x) para este x.
Relações e Funções
Diagonalização
Lógica I Rascunho :
Definições,
Teoremas e Provas
Alfabetos e
Dados Objetivo
Linguagens ..
Autômatos e . ∃ x P(x)
Linguagens ..
Linguagens
. P(x)
Livres de x=
Contexto

I Solução:
Seja x = .
[Prove P(x)].
Portanto, ∃ x P(x).

Definições, Teoremas e Provas (258 – 265 de 481)


Provar um “Objetivo” da forma ∃ x P(x)
ICCC 2024

Julliano
Nascimento
Exemplo 6.24
Fundamentos
I Prove que para todo número real x, se x > 0 então existe um número real
Matemáticos
Conjuntos
y tal que y.(y + 1) = x.
Relações e Funções
Diagonalização
Lógica
I Rascunho :
Definições,
Dados Objetivo
R
Teoremas e Provas
Alfabetos e
Linguagens
x∈ ∀ x (x > 0) ⇒ ∃ y (y.(y + 1) = x)
Autômatos e
x>0 ∃ y (y.(y + 1) = x)
Linguagens x > √0 y.(y+1)=x
Linguagens y = −1+ 21+4.x
Livres de
Contexto
I Solução:

Suponha um número real arbitrário x > 0. Seja y = −1+ 21+4.x . [Prove
que y.(y + 1) = x]. Logo, ∃ y (y.(y + 1) = x). Assim,
x > 0 ⇒ ∃ y (y.(y + 1) = x). Portanto, como x é arbitrário, conclui-se que
∀ x (x > 0) ⇒ ∃ y (y.(y + 1) = x).

Definições, Teoremas e Provas (259 – 265 de 481)


Técnicas gerais
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos I Provar um objetivo da forma P ∧ Q.
Conjuntos
Relações e Funções I Prove P e Q separadamente.
Diagonalização
Lógica
Definições,
Teoremas e Provas
Alfabetos e
I Usar um “Dado” da forma P ∧ Q.
Linguagens
I Trate P e Q como "dados"separados.
Autômatos e
Linguagens

Linguagens I Provar um objetivo da forma P ↔ Q.


Livres de
Contexto I Prove P → Q e Q → P separadamente.

I Usar um “Dado” da forma P ↔ Q.


I Trate como dois dados separados: P → Q e Q → P.

Definições, Teoremas e Provas (260 – 265 de 481)


Exemplos de demonstrações
ICCC 2024

Julliano
Nascimento
Exemplo 6.25
Fundamentos
Matemáticos
I Dados A, B, C ⊆ U tais que A ⊆ B e A e C são disjuntos, prove que
Conjuntos
A ⊆ B\C.
Relações e Funções
Diagonalização
Lógica
I Rascunho:
Definições,
Teoremas e Provas
Alfabetos e Dados Objetivo
Linguagens
A⊆B A ⊆ B\C
Autômatos e
Linguagens A∩C=∅
Linguagens
A⊆B ∀ x (x ∈ A ⇒ x ∈ B\C)
Livres de A∩C=∅
Contexto
A⊆B x ∈ B\C
A∩C=∅
x∈A
A⊆B x∈B
A∩C=∅ x<C
x∈A

Definições, Teoremas e Provas (261 – 265 de 481)


Exemplos de demonstrações
ICCC 2024

Julliano
Nascimento
Exemplo 6.26
Fundamentos
Matemáticos
I Prove que ∀ x ¬P(x) ⇔ ¬∃ x P(x).
Conjuntos
Relações e Funções
Diagonalização
I Rascunho:
Lógica
Definições,
Teoremas e Provas
Dados Objetivo
Alfabetos e
Linguagens
=⇒ ∀ x ¬P(x) ¬∃ x P(x)
Autômatos e
∀ x ¬P(x) hContradiçãoi
Linguagens ∃ x P(x)
Linguagens
Livres de ⇐= ¬∃ x P(x) ∀ x ¬P(x)
Contexto
¬∃ x P(x) ¬P(x)
x arbitrário
¬∃ x P(x) hContradiçãoi
x arbitrário
P(x)

Definições, Teoremas e Provas (262 – 265 de 481)


Exemplos de demonstrações
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos Exemplo 6.27
U, prove que A ∩ (B\C) = (A ∩ B)\C.
Conjuntos
Relações e Funções
Diagonalização
I Dados A, B, C ⊆
Lógica
Definições,
A ∩ (B\C) = (A ∩ B)\C ≡ [A ∩ (B\C) ⊆ (A ∩ B)\C] ∧
Teoremas e Provas
Alfabetos e
[(A ∩ B)\C ⊆ A ∩ (B\C)]
Linguagens ≡ ∀ x ((x ∈ A ∩ (B\C) ⇔ x ∈ (A ∩ B)\C)
Autômatos e
Linguagens
I Rascunho:
Linguagens
Livres de
Contexto Dados Objetivo
=⇒ x ∈ A ∩ (B\C) x ∈ (A ∩ B)\C
⇐= x ∈ (A ∩ B)\C x ∈ A ∩ (B\C)

Definições, Teoremas e Provas (263 – 265 de 481)


Indução Matemática
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
I Provar um objetivo da forma ∀ n ∈ N P(n).
Diagonalização
Lógica I Rascunho:
Definições,
Teoremas e Provas I Prove P(0).
Alfabetos e
Linguagens I Prove que ∀ n ∈ N P(n) ⇒ P(n + 1).
Autômatos e
Linguagens
I Exercícios:
Linguagens
I Prove que ∀ n ∈ N, n ≥ 5, P(2n > n2 ).
N P(3 | (n3 − n)).
Livres de
Contexto I Prove que ∀ n ∈
Dados Objetivo
n∈ N ∃j∈ Z (3.j = (n + 1)3 − (n + 1))
Z
∃ k ∈ (3.k = n3 − n)

Definições, Teoremas e Provas (264 – 265 de 481)


Indução Forte
ICCC 2024

Julliano
Nascimento

N P(n).
Fundamentos
Matemáticos I Provar um objetivo da forma ∀ n ∈
N.
Conjuntos
Relações e Funções
Diagonalização
I Prove que ∀ n [(∀ k < n P(k)) ⇒ P(n)], n, k ∈
Lógica
Definições,
Teoremas e Provas I Rascunho:
Alfabetos e
Linguagens I Suponha que n é um número natural arbitrário (n ∈ N).
Autômatos e I Suponha que ∀ k < n P(k).
Linguagens
I Prove P(n).
Linguagens
Livres de
Contexto I Obs: Não é necessário provar o caso base.
I Suponha que se tenha provado ∀ n [(∀ k < n P(n)) ⇒ P(n + 1)], n, k ∈ N.
I Se n = 0, conclui-se que ∀ k < 0 P(k) ⇒ P(0).
I Pode-se concluir que P(0) é verdadeiro.

Definições, Teoremas e Provas (265 – 265 de 481)


Definições
ICCC 2024

Julliano
Nascimento
I Alfabeto: conjunto finito de símbolos ou caracteres.
Fundamentos
Matemáticos
I {0, 1}, {a, b}, {a, b, c, . . . , z}.
Conjuntos
Relações e Funções I Cadeia de Símbolos: sequência de zero ou mais símbolos (de um
Diagonalização
Lógica alfabeto) justapostos.
Definições,
Teoremas e Provas
Alfabetos e
I Palavra: cadeia finita de símbolos.
Linguagens

Autômatos e
Linguagens Notação
Linguagens
Livres de I Σ : conjunto de símbolos (um alfabeto).
Contexto
I ε : cadeia ou palavra vazia.
I Σ∗ : conjunto de todas as palavras possíveis sobre Σ.
I Σ+ = Σ∗ − {ε}.
I |w| : comprimento ou tamanho da palavra w (número de símbolos que
compõem w)

Alfabetos e Linguagens (266 – 311 de 481)


Palavra, Prefixo, Sufixo, Tamanho
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
I Prefixo: subsequência inicial de símbolos de uma palavra.
Conjuntos
Relações e Funções
I Sufixo: subsequência final de símbolos de uma palavra.
Diagonalização
Lógica I Subpalavra: sequência de símbolos contíguos de uma palavra.
Definições,
Teoremas e Provas
Alfabetos e
Linguagens
Exemplo 6.28
Autômatos e
Linguagens I Se Σ = {a, b}, então:
Linguagens
Livres de
I Σ+ = {a, b, aa, ab, ba, bb, aaa, . . . }.
Contexto I Σ∗ = {ε, a, b, aa, ab, ba, bb, aaa, . . . }.
I Se abcb é uma palavra sobre o alfabeto Σ = {a, b, c}, então:
I |abcb| = 4 e |ε| = 0.
I ε, a, ab, abc, abcb são os prefixos;
I ε, b, cb, bcb, abcb são os sufixos.

Alfabetos e Linguagens (267 – 311 de 481)


Operações com Linguagens
ICCC 2024

Julliano
Nascimento
Teorema 6.29
Dado o alfabeto Σ, o conjunto Σ∗ é contavelmente infinito.
Fundamentos
Matemáticos
Conjuntos Demonstração.
Relações e Funções
Diagonalização
Lógica
I Existe um número finito de cadeias de cada comprimento.
Definições,
Teoremas e Provas
Alfabetos e
I Listar cadeias por ordem alfabética e de tamanho: cadeias de tamanho 0,
Linguagens
as tamanho 1, as de tamanho 2, etc.
N
Autômatos e
Linguagens I Corresponder as cadeias da lista com os elementos de .
Linguagens
Livres de 
Contexto

Exemplo 6.30
I Se Σ = {a, b, c}, uma enumeração é
ε, a, b, c, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, . . .

Conjuntos equinumerosos Ling. não Turing-recon.

Alfabetos e Linguagens (268 – 311 de 481)


Operações com Linguagens
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições,
Teorema 6.31
Teoremas e Provas
Alfabetos e
Qualquer linguagem é contavelmente infinita.
Linguagens

Autômatos e
Linguagens
Demonstração.
Linguagens Toda linguagem em Σ é um subconjunto de Σ∗ . 
Livres de
Contexto

Alfabetos e Linguagens (269 – 311 de 481)


Operações com Linguagens
ICCC 2024

Julliano
Nascimento

Fundamentos Teorema 6.32


Matemáticos
Conjuntos A classe de todas as linguagens em um alfabeto Σ não é contavelmente
Relações e Funções
Diagonalização infinita.
Lógica
Definições,
Teoremas e Provas
Alfabetos e
Demonstração.
Linguagens

Autômatos e I O conjunto B de todas as sequências binárias infinitas não é


Linguagens
contavelmente infinito.
Linguagens
Livres de I Prova por diagonalização similar à prova do Teorema 6.9.
Contexto
I P(Σ∗ ) é o conjunto de todas as linguagens sobre o alfabeto Σ.
I Mostrar que existe uma correspondência entre P(Σ∗ ) e B.


Alfabetos e Linguagens (270 – 311 de 481)


Operações com Linguagens
ICCC 2024

Julliano
Nascimento

Fundamentos Teorema 6.32


Matemáticos
Conjuntos A classe de todas as linguagens em um alfabeto Σ não é contavelmente
Relações e Funções
Diagonalização infinita.
Lógica
Definições,
Teoremas e Provas
Alfabetos e
Demonstração.
Linguagens

Autômatos e I Cada L ∈ P(Σ∗ ) corresponde a uma única sequência de B.


Linguagens

Linguagens I Σ∗ = {s1 , s2 , s3 , . . . }.
Livres de
Contexto I Sequência característica χL de L:
(
χLi = 1 se si ∈ L,
0 se si < L.


Alfabetos e Linguagens (271 – 311 de 481)


Operações com Linguagens
ICCC 2024

Julliano
Nascimento

Fundamentos Teorema 6.32


Matemáticos
Conjuntos A classe de todas as linguagens em um alfabeto Σ não é contavelmente
Relações e Funções
Diagonalização infinita.
Lógica
Definições,
Teoremas e Provas
Alfabetos e
Demonstração.
Linguagens

Autômatos e I Exemplo:
Linguagens Σ = { a , b }
Linguagens Σ∗ = { ε , a , b , aa , ab , ba , bb , aaa , ··· }
Livres de L = { a , aa , ab , aaa , ··· }
Contexto χL = 0 1 0 1 1 0 0 1 ···

Alfabetos e Linguagens (272 – 311 de 481)


Operações com Linguagens
ICCC 2024

Julliano
Nascimento

Fundamentos Teorema 6.32


Matemáticos
Conjuntos A classe de todas as linguagens em um alfabeto Σ não é contavelmente
Relações e Funções
Diagonalização infinita.
Lógica
Definições,
Teoremas e Provas
Alfabetos e
Demonstração.
Linguagens

Autômatos e I Função f : L → B é bijetora.


Linguagens

Linguagens
I f (A) é a sequência característica de A.
Livres de
Contexto I Como B não é contavelmente infinito, então P(Σ∗ ) também não é
contavelmente infinito.

Alfabetos e Linguagens (273 – 311 de 481)


Notação
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Definição 6.33
Seja Σ um alfabeto. A definição recursiva do conjunto Σ∗ , das cadeias
Diagonalização
Lógica

definidas sobre Σ, é:
Definições,
Teoremas e Provas
Alfabetos e
Linguagens
I Base: ε ∈ Σ∗ .
Autômatos e
Linguagens I Recursão: Se w ∈ Σ∗ e a ∈ Σ, então wa ∈ Σ∗ .
Linguagens
Livres de I Fecho: w ∈ Σ∗ se w pode ser obtida a partir de ε com um número finito de
Contexto
aplicações do passo recursivo.

Alfabetos e Linguagens (274 – 311 de 481)


Linguagem Formal
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos I Dado um alfabeto Σ, uma linguagem em Σ é um conjunto de sequências
Conjuntos
Relações e Funções de símbolos (palavras) do alfabeto.
Diagonalização

I Se Σ = {a, b} então:
Lógica
Definições,
Teoremas e Provas
Alfabetos e
Linguagens
I O conjunto vazio e o conjunto formado pela palavra vazia são linguagens
Autômatos e sobre Σ ({ } , {ε}).
Linguagens I O conjunto de palíndromos sobre Σ é uma linguagem infinita
Linguagens
Livres de
({ε, a, b, aa, bb, aaa, aba, bab, bbb, aaaa, . . . }).
Contexto
I Linguagem Σ∗ : conjunto de todas as seqüências de símbolos de um
alfabeto Σ.
I ε ∈ Σ∗ .
I L ⊆ Σ∗ , se L é uma linguagem em Σ∗ .

Alfabetos e Linguagens (275 – 311 de 481)


Concatenação de Palavras
ICCC 2024

Julliano
Nascimento

Fundamentos I Operação binária, definida sobre uma linguagem L, que associa a cada
Matemáticos
Conjuntos par de palavras uma palavra formada pela justaposição da primeira com a
Relações e Funções
Diagonalização
segunda.
Lógica
Definições,
I Se v, w ∈ L, então vw é a concatenação de v e w.
Teoremas e Provas
Alfabetos e
Linguagens I Não é necessariamente fechada em L:
Autômatos e
Linguagens
I a concatenação de duas palavras de uma linguagem não necessariamente
Linguagens resulta em uma palavra da linguagem.
Livres de
Contexto
I É associativa:
I Se t, v, w ∈ L, então v(wt) = (vw)t = vwt

I A palavra vazia é o elemento neutro à esquerda e à direita:


I εw = w = wε.

Alfabetos e Linguagens (276 – 311 de 481)


Concatenação de Palavras
ICCC 2024

Julliano
Nascimento

Fundamentos
Definição 6.34
Matemáticos
Conjuntos
Sejam u, v ∈ Σ∗ . A concatenação de u e v (uv) é uma operação binária em Σ∗
Relações e Funções
Diagonalização
definida como:
Lógica
Definições,
I Base: Se |v| = 0, então v = ε e uv = u.
Teoremas e Provas
Alfabetos e
Linguagens
I Recursão: Seja v uma cadeia com |v| = n > 0. Então uv = (uw)a e v = wa,
Autômatos e para alguma cadeia w tal que |w| = n − 1 e a ∈ Σ.
Linguagens

Linguagens
Livres de
Contexto
Definição 6.35
wn : n concatenações sucessivas da palavra w ∈ L:
I Base: w0 = ε.
I Recursão: wn = wn−1 w, para n > 0.

Alfabetos e Linguagens (277 – 311 de 481)


Concatenação de Palavras
ICCC 2024

Julliano
Nascimento
Teorema 6.36
Fundamentos
Matemáticos Sejam u, v, w ∈ Σ∗ . Então (uv)w = u(vw).
Conjuntos
Relações e Funções
Diagonalização
Lógica
Demonstração.
Definições,
Teoremas e Provas Indução no comprimento da cadeia w:
Alfabetos e
Linguagens

Autômatos e
I Base: Se |w| = 0, então w = ε e (uv)w = uv (pela definição de
Linguagens
concatenação). Por outro lado, u(vw) = u(v) = uv.
Linguagens
Livres de I Hipótese: Suponha que (uv)w = u(vw) para toda cadeia w com |w| ≤ n.
Contexto

Alfabetos e Linguagens (278 – 311 de 481)


Concatenação de Palavras
ICCC 2024

Julliano
Nascimento
Teorema 6.36
Fundamentos
Matemáticos Sejam u, v, w ∈ Σ∗ . Então (uv)w = u(vw).
Conjuntos
Relações e Funções
Diagonalização
Lógica
Demonstração.
Definições,
Teoremas e Provas Indução no comprimento da cadeia w:
Alfabetos e
Linguagens

Autômatos e
I Passo indutivo: Seja uma cadeia w com |w| = n + 1. Então w = xa para
Linguagens alguma cadeia x de comprimento n e a ∈ Σ.
Linguagens (uv)w = (uv)(xa) (substituição, w = xa)
Livres de = ((uv)x)a (definição de concatenação)
Contexto
= (u(vx))a (hipótese indutiva)
= u((vx)a) (definição de concatenação)
= u(v(xa)) (definição de concatenação)
= u(v(w)) (substituição, xa = w)
= u(vw)


Alfabetos e Linguagens (279 – 311 de 481)


Reverso de uma Cadeia
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definição 6.37
Definições,
Teoremas e Provas Seja u ∈ Σ∗ . O reverso uR de u é definido como:
Alfabetos e
Linguagens
I Base: Se |u| = 0, então u = ε e εR = ε.
Autômatos e
Linguagens I Recursão: Se |u| = n > 0, então uR = awR e u = wa para alguma cadeia w
Linguagens
Livres de
tal que |w| = n − 1 e a ∈ Σ.
Contexto

Alfabetos e Linguagens (280 – 311 de 481)


Reverso de uma Cadeia
ICCC 2024

Julliano
Nascimento
Teorema 6.38
Seja u, v ∈ Σ∗ . Então (uv)R = vR uR .
Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização Demonstração.
Lógica
Definições,
Teoremas e Provas
Indução no comprimento da cadeia v:
Alfabetos e
Linguagens

Autômatos e
I Base: Se |v| = 0, então v = ε e (uv)R = uR . De forma semelhante,
Linguagens
vR uR = εR uR = uR .
Linguagens
Livres de I Hipótese: Suponha que (uv)R = vR uR para toda cadeia v com |v| ≤ n.
Contexto

Alfabetos e Linguagens (281 – 311 de 481)


Reverso de uma Cadeia
ICCC 2024

Julliano
Nascimento
Teorema 6.38
Seja u, v ∈ Σ∗ . Então (uv)R = vR uR .
Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização Demonstração.
Lógica
Definições,
Teoremas e Provas
Indução no comprimento da cadeia v:
Alfabetos e

I Passo indutivo: Seja uma cadeia v com |v| = n + 1. Então v = wa para


Linguagens

Autômatos e
Linguagens alguma cadeia w de comprimento n e a ∈ Σ.
Linguagens (uv)R = (u(wa))R
Livres de = ((uw)a)R (associatividade da concatenação)
Contexto
= a(uw)R (definição de reverso)
= a(wR uR ) (hipótese indutiva)
= (awR )uR (associatividade da concatenação)
= (wa)R uR (definição de reverso)
= vR uR


Alfabetos e Linguagens (282 – 311 de 481)


Cadeia em um alfabeto Σ
Um pouco mais de formalismo.
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções I Sequência s de comprimento n no alfabeto Σ.
s : [n] → Σ.
Diagonalização
Lógica I
Definições,
Teoremas e Provas I [n] é o domínio.
Alfabetos e
Linguagens I Σ é o contradomínio.
Autômatos e I |s| = n é o comprimento de s.
Linguagens

Linguagens
Livres de
I Exemplo:
Contexto I Σ = {a, b, c}.
I s = cbba.
I s : [4] → Σ, definida por s(1) = c, s(2) = b, s(3) = b, s(4) = a.

Alfabetos e Linguagens (283 – 311 de 481)


Concatenação de Palavras
Um pouco mais de formalismo.
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
I Seja o alfabeto Σ e as funções:
Lógica
Definições,
I x : [m] → Σ.
Teoremas e Provas
Alfabetos e
I y : [n] → Σ.
Linguagens

Autômatos e
Linguagens I Concatenação de x e y:
Linguagens
(
Livres de I x◦ y : [m + n] → Σ, tal que: x◦ y = x(i), se i ≤ m,
Contexto y(i − m), se i > m.
I |x◦ y| = |x| + |y| = m + n é o comprimento da palavra x◦ y.

Alfabetos e Linguagens (284 – 311 de 481)


Especificação Finita de Linguagens
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos I Especificação de uma linguagem:
Relações e Funções
Diagonalização I Descrição não ambígua das cadeias da linguagem.
Lógica
Definições,
Teoremas e Provas
Alfabetos e
I Linguagem finita:
Linguagens
I Enumeração de suas cadeias.
Autômatos e
Linguagens

Linguagens
I Linguagem infinita:
Livres de
Contexto
I Definição recursiva das cadeias (para linguagens com estrutura sintática
simples).
I Construção a partir de conjuntos finitos através dos operadores de
conjuntos.

Alfabetos e Linguagens (285 – 311 de 481)


Especificação Finita de Linguagens
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Exemplo 6.39
Diagonalização
Lógica Linguagem L, sobre o alfabeto {a, b}, que contém cadeias de comprimento par
Definições,
Teoremas e Provas
Alfabetos e
e começam com a:
Linguagens
I Base: aa, ab ∈ L.
Autômatos e
Linguagens I Recursão: Se u ∈ L, então uaa, uab, uba, ubb ∈ L.
Linguagens
Livres de I Fecho: Uma cadeia u ∈ L se pode ser obtida a partir das cadeias básicas,
Contexto
com a aplicação um número finito de vezes da recursão.

Alfabetos e Linguagens (286 – 311 de 481)


Especificação Finita de Linguagens
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Exemplo 6.40
Diagonalização
Lógica Linguagem L, sobre o alfabeto {a, b}, que contém cadeias em que cada
Definições,
Teoremas e Provas
Alfabetos e
ocorrência de um b é precedida de um a:
Linguagens
I Base: ε ∈ L.
Autômatos e
Linguagens I Recursão: Se u ∈ L, então ua, uab ∈ L.
Linguagens
Livres de I Fecho: Uma cadeia u ∈ L se pode ser obtida a partir das cadeias básicas,
Contexto
com a aplicação um número finito de vezes da recursão.

Alfabetos e Linguagens (287 – 311 de 481)


Especificação Finita de Linguagens
ICCC 2024

Julliano
Nascimento

Fundamentos
Definição 6.41
Matemáticos
Conjuntos I A concatenação das linguagens L e M é:
L◦M = {xy | x ∈ L e y ∈ M}.
Relações e Funções
Diagonalização
Lógica
Definições,
Teoremas e Provas
Alfabetos e
Linguagens Definição 6.42 (Operações com Linguagens)
Autômatos e
Linguagens
I Se L e M são linguagens no alfabeto Σ, então:
Linguagens L ∪ M = {x | x ∈ L ou x ∈ M}.
Livres de
Contexto L ∩ M = {x | x ∈ L e x ∈ M}.
L − M = {x | x ∈ L e x < M}.
L = Σ∗ − L.
= {x ∈ Σ∗ | x < L}.

Alfabetos e Linguagens (288 – 311 de 481)


Operações com Linguagens
ICCC 2024

Julliano
Nascimento

Fundamentos Exemplo 6.43


Matemáticos
Conjuntos
Relações e Funções
I Se L = {a, bc, cb}, M = {aa, bb, cc, bc, cb} e Σ = {a, b, c}, então:
Diagonalização
Lógica
L∪M = {a, bc, cb, aa, bb, cc}.
Definições,
Teoremas e Provas L∩M = {bc, cb}.
=
Alfabetos e
Linguagens L−M {a}.
Autômatos e
Linguagens
M−L = {aa, bb, cc}.
Linguagens L = {x ∈ Σ∗ | x , a, x , bc, x , cb}.
Livres de
Contexto
= {ε, b, aa, ab, ac, ba, bb, cb, cc, aaa, . . . }.
L◦M = {aaa, abb, acc, abc, acb, bcaa, bcbb, bccc,
bcbc, bccb, cbaa, cbbb, cbcc, cbbc, cbcb}.
M◦L = ...

Alfabetos e Linguagens (289 – 311 de 481)


Operações com Linguagens
ICCC 2024

Julliano
Nascimento

Fundamentos
Definição 6.44
I = {ε} : elemento neutro na concatenação de linguagens:
Matemáticos
Conjuntos
Relações e Funções
Diagonalização I L◦I = I◦L = L.
Lógica
Definições,
Teoremas e Provas
Alfabetos e
Linguagens
Definição 6.45
Autômatos e
Linguagens Li : potência da linguagem L.
Linguagens
Livres de
I L0 = {ε}.
Contexto
I L1 = L.
I Li+1 = L◦Li , para i ∈ .N
N
I Li ◦L j = Li+j , para i, j ∈ .

Alfabetos e Linguagens (290 – 311 de 481)


Operações com Linguagens
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos Exemplo 6.46
Relações e Funções
Diagonalização
Lógica
Se L = {0, 11}, então:
Definições,

=
Teoremas e Provas
Alfabetos e
Linguagens
L0 {ε}.
Autômatos e
L1 = L◦L0 = {0, 11}◦{ε} = {0, 11}.
Linguagens
L2 = L◦L1 = {0, 11}◦{0, 11} = {00, 011, 110, 1111}.
Linguagens
Livres de L3 = L◦L2 = {0, 11}◦{00, 011, 110, 1111}.
Contexto
= {000, 0011, 0110, 01111, 1100, 11011, 11110, 111111}.

Alfabetos e Linguagens (291 – 311 de 481)


Operações com Linguagens
ICCC 2024

Julliano
Nascimento
Definição 6.47 (Fecho de Kleene)
Fundamentos
Matemáticos Fecho da linguagem L:
Conjuntos

I L∗ = Li = L0 ∪ L1 ∪ L2 ∪ . . .
Relações e Funções S
Diagonalização
Lógica
Definições,
i=0
Teoremas e Provas
Alfabetos e
Linguagens

Autômatos e Definição 6.48


Linguagens ∞
L+ = Li = L◦L∗ = L1 ∪ L2 ∪ L3 ∪ . . .
S
Linguagens
Livres de i=1
Contexto

Exemplo 6.49
I Se L = {0, 11}, então:
L∗ = {ε, 0, 11, 00, 011, 110, 1111, 000, 0011, 0110, . . . }.

Alfabetos e Linguagens (292 – 311 de 481)


Especificação Finita de Linguagens
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções I Especificação não ambígua das cadeias que pertencem à linguagem.
Diagonalização
Lógica
Definições,
I Descrição informal não é rigorosa o suficiente para uma definição precisa.
Teoremas e Provas
Alfabetos e I Ex: Linguagem L sobre o alfabeto Σ = {a, b}, tal que L contém cadeias
Linguagens
com a subcadeia bb.
Autômatos e
Linguagens I Uma cadeia w ∈ L pode conter mais de uma ocorrência da subcadeia bb?
Linguagens
Livres de
I A precisão das operações em conjuntos pode ser usada para a descrição
Contexto não ambígua de linguagens.
I O resultado de uma operação unária em uma linguagem ou uma operação
binária em duas linguagens define outra linguagem.

Alfabetos e Linguagens (293 – 311 de 481)


Especificação Finita de Linguagens
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Exemplo 6.50
Diagonalização
Lógica
I L é composta de cadeias que contém a subcadeia bb:
Definições,
Teoremas e Provas I L = {a, b}∗ {bb}{a, b}∗ = {a, b}∗ ◦{bb}◦{a, b}∗ .
Alfabetos e
Linguagens

Autômatos e
I A concatenação do conjunto {bb} garante a presença de bb em toda
Linguagens
cadeia de L.
Linguagens
Livres de
Contexto
I Os conjuntos {a, b}∗ permitem qualquer número de a’s e b’s, em qualquer
ordem, antes ou depois da cadeia bb.

Alfabetos e Linguagens (294 – 311 de 481)


Especificação Finita de Linguagens
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Exemplo 6.51
Relações e Funções
Diagonalização
I L é composta de cadeias que começam com aa ou terminam com bb:
Lógica
Definições,
I {aa}{a, b}∗ → conjunto de cadeias com prefixo aa.
Teoremas e Provas
Alfabetos e
I {a, b}∗ {bb} → conjunto de cadeias com sufixo bb.
Linguagens

Autômatos e I L = {aa}{a, b}∗ ∪ {a, b}∗ {bb}.


Linguagens

Linguagens
Livres de
Contexto
Exemplo 6.52
Dadas linguagens L1 = {bb} e L2 = {ε, bb, bbbb} sobre o alfabeto {b}, então
L∗1 = L∗2 contém cadeias com número par de b’s.

Alfabetos e Linguagens (295 – 311 de 481)


Especificação Finita de Linguagens
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos Exemplo 6.53
Conjuntos
Relações e Funções
Diagonalização
I P é o conjunto de cadeias de comprimento par definidas sobre o alfabeto
Lógica {a, b}:
Definições,
Teoremas e Provas
Alfabetos e
I P = {aa, bb, ab, ba}∗ .
Linguagens
I A repetição de concatenações constrói cadeias com o acréscimo de dois
Autômatos e
Linguagens
símbolos de cada vez.
Linguagens I I é o conjunto de cadeias de comprimento ímpar definidas sobre o
Livres de
Contexto alfabeto {a, b}:
I I = {a, b}∗ − {aa, bb, ab, ba}∗ .
I I = {a, b}{aa, bb, ab, ba}∗ .

Alfabetos e Linguagens (296 – 311 de 481)


Conjuntos Regulares
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos Definição 6.54
Relações e Funções
Diagonalização
Lógica
Um conjunto regular sobre um alfabeto Σ é definido como:
Definições,
Teoremas e Provas 1. Base: ∅, {ε} e {a}, para todo a ∈ Σ, são conjuntos regulares sobre Σ.
Alfabetos e
Linguagens
2. Recursão: Se X e Y são conjuntos regulares sobre Σ, então X ∪ Y, XY e
Autômatos e
Linguagens X∗ também são conjuntos regulares sobre Σ.
Linguagens
Livres de
3. Fecho: X é um conjunto regular sobre Σ se pode ser obtido, a partir dos
Contexto
conjuntos regulares básicos, com a aplicação da recursão um número
finito de vezes.

Alfabetos e Linguagens (297 – 311 de 481)


Conjuntos Regulares
ICCC 2024

Julliano
Nascimento

Fundamentos Exemplo 6.55


Matemáticos
Conjuntos
Relações e Funções
A linguagem L = {a, b}∗ {bb}{a, b}∗ é um conjunto regular.
Diagonalização
Lógica
I {a} e {b} são conjuntos regulares (base da definição).
Definições,
Teoremas e Provas I {a, b}∗ é regular (união e fecho de Kleene).
Alfabetos e

I {b}{b} = {bb} é regular (concatenação).


Linguagens

Autômatos e
Linguagens

Linguagens
Livres de
Exemplo 6.56
Contexto
O conjunto de cadeias, sobre o alfabeto {a, b}, que terminam com a e têm pelo
menos um b é regular.
I {a, b}∗ {b}{a, b}∗ {a}

Alfabetos e Linguagens (298 – 311 de 481)


Conjuntos e Expressões Regulares
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições,
I Expressões regulares são usadas para abreviar a descrição de conjuntos
Teoremas e Provas
Alfabetos e regulares:
Linguagens
I O conjunto regular {a} é representado por a.
Autômatos e
Linguagens I As operações de união, fecho de Kleene e concatenação são designadas
Linguagens por ∪, ∗ e justaposição, respectivamente.
Livres de
Contexto
I Parênteses são usados para indicar a precedência dos operadores.

Alfabetos e Linguagens (299 – 311 de 481)


Expressões Regulares
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos Definição 6.57
Relações e Funções
Diagonalização
Lógica
Uma expressão regular sobre um alfabeto Σ é definida como:
Definições,
Teoremas e Provas 1. Base: ∅, ε e a, para todo a ∈ Σ, são expressões regulares sobre Σ.
Alfabetos e
Linguagens
2. Recursão: Se u e v são expressões regulares sobre Σ, então (u ∪ v), (uv)
Autômatos e
Linguagens e (u∗ ) também são expressões regulares sobre Σ.
Linguagens
Livres de
3. Fecho: u é uma expressão regular sobre Σ se pode ser obtida, a partir
Contexto
das expressões regulares básicas, com a aplicação da recursão um
número finito de vezes.

Alfabetos e Linguagens (300 – 311 de 481)


Expressões Regulares
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Definição 6.58
Lógica
Definições,
Teoremas e Provas
Alfabetos e
u+ = uu∗ .
u2 = uu.
Linguagens

Autômatos e
Linguagens u3 = u2 u.
Linguagens ..
Livres de .
Contexto

Alfabetos e Linguagens (301 – 311 de 481)


Expressões Regulares
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
I Precedência dos operadores regulares:
Relações e Funções
Diagonalização 1. Fecho de Kleene.
Lógica
Definições,
2. Concatenação e união.
Teoremas e Provas
Alfabetos e I Parênteses podem ser eliminados de expressões que são sequências de
Linguagens

Autômatos e
uniões ou concatenações.
Linguagens I União e concatenação são operações associativas.
Linguagens
Livres de
Contexto
Exemplo 6.59
I (a ∪ b)∗ bb(a ∪ b)∗ : expressão regular para o conjunto {a, b}∗ {bb}{a, b}∗ .
I a(a ∪ b)∗ b(a ∪ b)∗ a : expressão regular para o conjunto {a}{a, b}∗ {b}{a, b}∗ {a}.

Alfabetos e Linguagens (302 – 311 de 481)


Expressões Regulares
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições,
Teoremas e Provas
I Um conjunto regular define um padrão e uma cadeia pertence ao
Alfabetos e
Linguagens conjunto se está de acordo com o padrão definido.
Autômatos e I A concatenação especifica uma ordem relativa entre dois elementos.
Linguagens
I O fecho de Kleene permite repetições.
Linguagens
Livres de
I A operação ∪ permite seleção.
Contexto

Alfabetos e Linguagens (303 – 311 de 481)


Expressões Regulares
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos Exemplo 6.60
O conjunto {bawab | w ∈ {a, b}∗ }, sobre o alfabeto Σ = {a, b} é regular:
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições, Conjunto Expressão Justificativa
Teoremas e Provas
Alfabetos e 1. {a} a Base
Linguagens
2. {b} b Base
Autômatos e
Linguagens
3. {a}{b} = {ab} ab 1, 2, Concatenação
4. {a} ∪ {b} = {a, b} a∪b 1, 2, União
Linguagens
Livres de 5. {b}{a} = {ba} ba 2, 1, Concatenação
Contexto
6. {a, b}∗ (a ∪ b)∗ 4, Fecho de Kleene
7. {ba}{a, b}∗ ba(a ∪ b)∗ 5, 6, Concatenação
8. {ba}{a, b}∗ {ab} ba(a ∪ b)∗ ab 7, 3, Concatenação

Alfabetos e Linguagens (304 – 311 de 481)


Expressões Regulares
ICCC 2024

Julliano
Nascimento
Exemplo 6.61
Fundamentos
Matemáticos
I Alfabeto: {a, b}.
I Cadeias que contêm aa: (a ∪ b)∗ aa(a ∪ b)∗ .
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições,
I Cadeias que contêm bb: (a ∪ b)∗ bb(a ∪ b)∗ .
Teoremas e Provas
Alfabetos e I Cadeias que contêm aa ou bb: (a ∪ b)∗ aa(a ∪ b)∗ ∪ (a ∪ b)∗ bb(a ∪ b)∗ .
Linguagens

Autômatos e
Linguagens
Exemplo 6.62
Linguagens
Livres de Expressões regulares que definem o conjunto de cadeias, sobre o alfabeto
Contexto
{a, b}, que contêm pelo menos 2 b’s:
1. a∗ ba∗ b(a ∪ b)∗ .
2. (a ∪ b)∗ ba∗ ba∗ .
3. (a ∪ b)∗ b(a ∪ b)∗ b(a ∪ b)∗ .

Alfabetos e Linguagens (305 – 311 de 481)


Expressões Regulares
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos Exemplo 6.63
Conjuntos
Relações e Funções I Expressão regular para o conjunto de cadeias, sobre o alfabeto {a, b}, que
Diagonalização
Lógica contêm exatamente 2 b’s:
Definições,
Teoremas e Provas I a∗ ba∗ ba∗ .
Alfabetos e
Linguagens

Autômatos e
Linguagens Exemplo 6.64
Linguagens I Expressão regular para o conjunto de cadeias, sobre o alfabeto {a, b}, que
Livres de
Contexto contêm número par de b’s:
I a∗ (a∗ ba∗ ba∗ )∗ .
I a∗ (ba∗ ba∗ )∗ .

Alfabetos e Linguagens (306 – 311 de 481)


Expressões Regulares
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições, I Pode não existir uma única expressão regular para definir um conjunto.
Teoremas e Provas
Alfabetos e
Linguagens I Duas expressões que representam o mesmo conjunto são ditas
Autômatos e equivalentes.
Linguagens

Linguagens I Expressões regulares podem ser manipuladas algebricamente para a


Livres de
Contexto construção de expressões equivalentes.

Alfabetos e Linguagens (307 – 311 de 481)


Expressões Regulares
ICCC 2024

Julliano
Nascimento
Definição 6.65 (Identidades Básicas)
Fundamentos
Matemáticos
Conjuntos 1. ∅u = u∅ = ∅
Relações e Funções 2. εu = uε = u
Diagonalização
Lógica
3. ∅∗ = ε
Definições, 4. ε∗ = ε
Teoremas e Provas
Alfabetos e
5. u∪v=v∪u
Linguagens 6. u∪∅=u
Autômatos e 7. u∪u=u
Linguagens 8. u∗ = (u∗ )∗
Linguagens 9. u(v ∪ w) = uv ∪ uw
Livres de 10. (u ∪ v)w = uw ∪ vw
Contexto
11. (uv)∗ u = u(vu)∗
12. (u ∪ v)∗ = (u∗ ∪ v)∗
= u∗ (u ∪ v)∗ = (u ∪ vu∗ )∗
= (u∗ v∗ )∗ = u∗ (vu∗ )∗
= (u∗ v)∗ u∗

Alfabetos e Linguagens (308 – 311 de 481)


Expressões Regulares
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos Exemplo 6.66
Relações e Funções
Diagonalização
Lógica
I Expressão regular para o conjunto de cadeias, sobre o alfabeto {a, b}, que
Definições,
Teoremas e Provas
não contêm a subcadeia aa.
Alfabetos e
Linguagens
I Uma cadeia pode conter um prefixo com qualquer número de b’s;
Autômatos e I Todo a deve ser seguido por pelo menos um b ou terminar a cadeia.
Linguagens
b∗ (ab+ )∗ ∪ b∗ (ab+ )∗ a
Linguagens
Livres de
= b∗ (ab+ )∗ (ε ∪ a)
Contexto = b∗ (abb∗ )∗ (ε ∪ a)
= (b ∪ ab)∗ (ε ∪ a)

Alfabetos e Linguagens (309 – 311 de 481)


Expressões Regulares
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Exemplo 6.67
Conjuntos
Relações e Funções
I Expressão regular para o conjunto de cadeias, sobre o alfabeto {a, b, c},
Diagonalização
Lógica
que contêm a subcadeia bc.
Definições,
Teoremas e Provas
I (a ∪ b ∪ c)∗ bc(a ∪ b ∪ c)∗ .
Alfabetos e
Linguagens

Autômatos e
Linguagens
Exemplo 6.68
Linguagens I Linguagem L definida por c∗ (b ∪ ac∗ )∗ :
Livres de
Contexto I c∗ e ac∗ garante que a’s e b’s podem ocorrer em qualquer ordem.
I Quando ocorre um elemento de ac∗ , este pode ser seguido por qualquer
número de a’s ou b’s (em qualquer ordem).
I L não contém cadeias com a subcadeia bc.

Alfabetos e Linguagens (310 – 311 de 481)


Expressões Regulares
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Conjuntos
Relações e Funções
Diagonalização
Lógica
Definições,
Teorema 6.69
Teoremas e Provas
Alfabetos e
Existem linguagens que não podem ser definidas por expressões regulares.
Linguagens

Autômatos e
Linguagens
Demonstração.
Linguagens No decorrer do curso 
Livres de
Contexto

Alfabetos e Linguagens (311 – 311 de 481)


Autômato Finito Determinístico – DFA
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens
Linguagem Regular
e Autômato Finito
I Modelo matemático de uma máquina que reconhece uma linguagem
Não-Determinismo
Expressão Regular particular sobre algum alfabeto.
Linguagem
Não-Regular M a b 7 D ...
Linguagens
Livres de
Contexto
Controle Finito
de Estados

Linguagem Regular e Autômato Finito (312 – 324 de 481)


Autômato Finito Determinístico – DFA
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Definição 7.1
Autômatos e
Linguagens Um DFA é definido por uma quíntupla hΣ, S, s0 , δ, Fi, onde:
Linguagem Regular
e Autômato Finito
Não-Determinismo
I Σ é o alfabeto de entrada;
Expressão Regular
Linguagem
Não-Regular I S , ∅ é o conjunto finito de estados do modelo;
Linguagens
Livres de
Contexto
I s0 ∈ S é o estado inicial;

I δ : S × Σ → S é a função de transição de estados; e

I F ⊆ S é o conjunto de estados finais.

Linguagem Regular e Autômato Finito (313 – 324 de 481)


Autômato Finito Determinístico – DFA
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos I Determinístico:
Autômatos e I Existe exatamente uma transição para cada estado s ∈ S e símbolo a ∈ Σ.
Linguagens
Linguagem Regular
e Autômato Finito
Não-Determinismo
I Finito:
Expressão Regular
Linguagem
I Número de estados em S é finito.
Não-Regular

Linguagens
Livres de Exemplo 7.2
Contexto

Σ =


 {1}
δ(s1 , 1) = 1 1 1 1 1 ...



 s2
δ(s0 , 1) = s1




 δ(s , 1)

= s0 s0 s1 s2
2

Linguagem Regular e Autômato Finito (314 – 324 de 481)


Autômato Finito Determinístico – DFA
ICCC 2024

Julliano
Nascimento

Fundamentos
Definição 7.3
Matemáticos
I Diagrama de transição de estados de um DFA A = hΣ, S, s0 , δ, Fi:
Autômatos e
Linguagens I Grafo direcionado G = (V, E), com:
Linguagem Regular
e Autômato Finito I V = S;
Não-Determinismo
Expressão Regular
I E = {(s, t) | s e t ∈ S, e ∃ a ∈ Σ tal que δ(s, a) = t}.
Linguagem
Não-Regular

Linguagens
Livres de
Exemplo 7.4
Contexto a
a
s0 s1
b b

b a
s2

Linguagem Regular e Autômato Finito (315 – 324 de 481)


Autômato Finito Determinístico – DFA
ICCC 2024

Julliano
Nascimento

Fundamentos
Definição 7.5
Matemáticos
I Tabela de transição de estados de um DFA A = hΣ, S, s0 , δ, Fi:
Autômatos e
Linguagens I Matriz T, com os elementos definidos por: T[s, a] = δ(s, a) (∀ s ∈ S)(∀ a ∈ Σ)
Linguagem Regular
e Autômato Finito
Não-Determinismo
Expressão Regular
Linguagem
Exemplo 7.6
Não-Regular

Linguagens
Livres de S a b
Contexto a
s0 s1 s2 a
T= s0 s1
s1 s1 s2 b b
s2 s1 s0
b a
s2

Linguagem Regular e Autômato Finito (316 – 324 de 481)


Autômato Finito Determinístico – DFA
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens Definição 7.7
I Função estendida de transição de estados de um DFA A = hΣ, S, s0 , δ, Fi:
Linguagem Regular
e Autômato Finito
Não-Determinismo
Expressão Regular
Linguagem I Função δ : S × Σ∗ → S, definida como:
Não-Regular

Linguagens 1. δ(s, a) = δ(s, a) (∀ s ∈ S)(∀ a ∈ Σ).


Livres de
Contexto 2. δ(s, ε) = s (∀ s ∈ S).
3. δ(s, ax) = δ(δ(s, a), x) (∀ s ∈ S)(∀ a ∈ Σ)(∀ x ∈ Σ∗ ).

Linguagem Regular e Autômato Finito (317 – 324 de 481)


Autômato Finito Determinístico – DFA
ICCC 2024

Julliano
Nascimento

Fundamentos
Definição 7.8
Matemáticos
I DFA A = hΣ, S, s0 , δ, Fi.
Autômatos e
Linguagens
Linguagem Regular
e Autômato Finito
I A aceita a cadeia w ∈ Σ∗ se e somente se δ(s0 , w) ∈ F.
Não-Determinismo
Expressão Regular
I w = w1 w2 . . . wn
Linguagem
Não-Regular I ∃ r0 , r1 , . . . , rn ∈ S, tal que:
Linguagens
Livres de
Contexto
1. r0 = s0 ;
2. δ(ri , wi+1 ) = ri+1 , para i = 0, . . . , n − 1; e
3. rn ∈ F

I A rejeita a cadeia w ∈ Σ∗ se e somente se δ(s0 , w) < F.

Linguagem Regular e Autômato Finito (318 – 324 de 481)


Autômato Finito Determinístico – DFA
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Exemplo 7.9
Linguagens
Linguagem Regular
I A = hΣ, S, s0 , δ, Fi, tal que:
e Autômato Finito
Não-Determinismo

Σ =

Expressão Regular
 {0, 1}
Linguagem 
 S = S 0 1
{q0 , q1 }
Não-Regular


δ = q0 q0 q1

Linguagens
 s0 = q0
Livres de


Contexto

 F =
 q1 q1 q0
{q1 }

I x = 0100 e 1100?

Linguagem Regular e Autômato Finito (319 – 324 de 481)


Linguagem Regular
ICCC 2024

Julliano
Nascimento
Definição 7.10
Fundamentos
Matemáticos
I L(A) : linguagem reconhecida pelo DFA A = hΣ, S, s0 , δ, Fi.
Autômatos e I L(A) = {w ∈ Σ∗ | δ(s0 , w) ∈ F}.
Linguagens
Linguagem Regular
e Autômato Finito
I L é definível por um DFA se e somente se existe algum DFA,
Não-Determinismo
Expressão Regular
A = hΣ, S, s0 , δ, Fi, tal que L = L(A).
Linguagem
Não-Regular I L é regular se algum DFA a reconhece.
Linguagens
Livres de
Contexto
Exemplo 7.11
I L(M) = {w ∈ Σ+ | w termina com o símbolo 1}.
0 1
1
s0 s1
0

Linguagem Regular e Autômato Finito (320 – 324 de 481)


Linguagem Regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens Definição 7.12
Linguagem Regular
e Autômato Finito
Não-Determinismo
I L1 , L2 : Linguagens.
Expressão Regular
Linguagem
Não-Regular I Operações Regulares:
Linguagens I L1 ∪ L2 = {x | x ∈ L1 ou x ∈ L2 }.
Livres de
Contexto I L1 ◦L2 = {xy | x ∈ L1 e y ∈ L2 }.
I L∗ = {x1 x2 . . . xk | k ≥ 0 e xi ∈ L1 , i = 1, . . . , k}.
1

Linguagem Regular e Autômato Finito (321 – 324 de 481)


Linguagem Regular
ICCC 2024

Julliano
Nascimento
Teorema 7.13
Fundamentos
Matemáticos
I Se L1 e L2 são linguagens regulares, então L1 ∪ L2 também é regular.
Autômatos e
Linguagens
Linguagem Regular
e Autômato Finito
Demonstração.
Não-Determinismo
Expressão Regular I DFA A1 = hΣ, S1 , p0 , δ1 , F1 i, tal que L1 = L(A1 ).
Linguagem
Não-Regular
I DFA A2 = hΣ, S2 , q0 , δ2 , F2 i, tal que L2 = L(A2 ).
Linguagens
Livres de I DFA A = hΣ, S, s0 , δ, Fi, tal que L1 ∪ L2 = L(A).
Contexto
I S = {(s1 , s2 ) | s1 ∈ S1 e s2 ∈ S2 } ≡ S1 × S2 .
I δ((s1 , s2 ), a) = (δ1 (s1 , a), δ2 (s2 , a)) (∀ s1 , s2 ∈ S)(∀ a ∈ Σ).
I s0 = (p0 , q0 ).
I F = {(s1 , s2 ) | s1 ∈ F1 ou s2 ∈ F2 } ≡ (F1 × S2 ) ∪ (S1 × F2 ).
I Provar por indução a corretude da construção!


Linguagem Regular e Autômato Finito (322 – 324 de 481)


Linguagem Regular
ICCC 2024

Julliano
Nascimento
Teorema 7.14
Fundamentos
Matemáticos
I Se L1 e L2 são linguagens regulares, então L1 ◦L2 também é regular.
Autômatos e
Linguagens
Linguagem Regular Demonstração.
e Autômato Finito
Não-Determinismo
Expressão Regular
Tentativa similar à do Teorema 7.13.
Linguagem
Não-Regular I Definir DFA A1 , tal que L1 = L(A1 ).
Linguagens
Livres de I Definir DFA A2 , tal que L2 = L(A2 ).
Contexto
I Definir DFA A, tal que L1 ◦L2 = L(A).
I A aceita w ⇒ w = w1 ◦w2 , A1 aceita w1 e A2 aceita w2 .
I Onde “quebrar” a cadeia w?
I Onde termina w1 e onde começa w2 ?
I Solução precisa do conceito de não-determinismo!


Linguagem Regular e Autômato Finito (323 – 324 de 481)


Linguagem Regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens
Linguagem Regular
e Autômato Finito
Não-Determinismo
Expressão Regular
Teorema 7.15
Linguagem
Não-Regular I Se L é linguagem regular, então L∗ também é regular.
Linguagens
Livres de
Contexto

Linguagem Regular e Autômato Finito (324 – 324 de 481)


Definição Básica
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens
Linguagem Regular I Máquina Determinística:
e Autômato Finito
Não-Determinismo I Quando a máquina está em um certo estado e o próximo símbolo de
Expressão Regular
Linguagem entrada é lido, o próximo estado é conhecido.
Não-Regular

Linguagens
Livres de
Contexto
I Máquina Não-Determinística:
I Quando a máquina está em um certo estado e o próximo símbolo de
entrada é lido, podem existir várias opções para o próximo estado.

Não-Determinismo (325 – 341 de 481)


Autômato Finito Não-Determinístico – NFA
ICCC 2024

Julliano
Definição 7.16
Nascimento
I Σε = Σ ∪ {ε}.
Fundamentos
Matemáticos I Um NFA é definido pela quíntupla hΣ, S, S0 , δ, Fi, onde:
Autômatos e
Linguagens
I Σ é o alfabeto de entrada;
Linguagem Regular
e Autômato Finito I S , ∅ é o conjunto finito de estados do modelo;
Não-Determinismo
Expressão Regular
Linguagem I S0 ⊆ S é o conjunto não-vazio de estados iniciais;
Não-Regular

Linguagens I δ : S × Σε → P(S) é a função de transição que associa um estado e um


Livres de
Contexto símbolo a um conjunto de estados;
I F ⊆ S é o conjunto de estados finais.

I Um NFA pode ter mais de um estado inicial.


I Para cada s ∈ S e a ∈ Σ, pode haver zero, uma ou mais transições de
estados.
Não-Determinismo (326 – 341 de 481)
Autômato Finito Não-Determinístico – NFA
ICCC 2024

Julliano
Nascimento Exemplo 7.17
Fundamentos I N = hΣ, S, S0 , δ, Fi, tal que:
Matemáticos

Σ = {a, b}

Autômatos e 
 S a b
Linguagens
 S = {r, s, t}

r {s} ∅

δ=
Linguagem Regular

e Autômato Finito
s0 = {r, s} s ∅ {r, t}
Não-Determinismo


Expressão Regular


Linguagem
 F = {t}

t ∅ {t}
Não-Regular

Linguagens
Livres de I x = bab?
Contexto
a
r s
b
b

b t

Não-Determinismo (327 – 341 de 481)


Autômato Finito Não-Determinístico – NFA
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos Definição 7.18
Autômatos e
Linguagens I NFA N = hΣ, S, S0 , δ, Fi.
Linguagem Regular
e Autômato Finito
Não-Determinismo
Expressão Regular
I Função estendida de transição de estados.
Linguagem
Não-Regular

Linguagens
I Função δ : S × Σ∗ → P(S), definida como:
Livres de
Contexto
1. δ(s, ε) = {s}
(∀ s ∈ S)
2. δ(s, xa) = δ(q, a) (∀ s ∈ S)(∀ x ∈ Σ∗ )(∀ a ∈ Σ)
S
q∈δ(s,x)

Não-Determinismo (328 – 341 de 481)


Autômato Finito Não-Determinístico – NFA
ICCC 2024

Julliano
Nascimento Definição 7.19
Fundamentos I NFA N = hΣ, S, S0 , δ, Fi.
Matemáticos
I N aceita a cadeia w ∈ Σ∗ se e somente se
Autômatos e
Linguagens  
Linguagem Regular  [ 
e Autômato Finito
δ(q, w) ∩ F , ∅ .
 
Não-Determinismo

Expressão Regular
 
q∈S0
Linguagem
Não-Regular

Linguagens I Caso contrário, N rejeita a cadeia w.


Livres de
Contexto

Definição 7.20
I NFA N = hΣ, S, S0 , δ, Fi.
   
I L(N) =  Σ δ(q,
 ∗
 S  
w ∈ | w)  ∩ F , ∅
.
 
   
q∈S0

I L(N) : linguagem reconhecida por N.

Não-Determinismo (329 – 341 de 481)


Equivalência entre DFAs e NFAs
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos I NFA é uma generalização do conceito de DFA.
Autômatos e
Linguagens
I Todo DFA é um NFA.
Linguagem Regular
e Autômato Finito I Dado um NFA qualquer, pode-se construir um DFA equivalente:
Não-Determinismo
Expressão Regular I DFA que aceita a mesma linguagem que o NFA.
Linguagem
Não-Regular

Linguagens
Livres de
Contexto

NFA DFA

Não-Determinismo (330 – 341 de 481)


Autômato Finito Não-Determinístico – NFA
ICCC 2024

Julliano Teorema 7.21


Nascimento
I Para cada NFA existe um DFA equivalente.
Fundamentos
Matemáticos

Autômatos e Demonstração.
Linguagens
Linguagem Regular
e Autômato Finito
Não-Determinismo
I Esquema da demonstração:
Expressão Regular
Linguagem
I Converter o NFA em um DFA equivalente que simule o NFA.
Não-Regular
I d : número de estados do NFA.
Linguagens
Livres de I 2d : número de subconjuntos de estados.
Contexto I Cada subconjunto é uma das possibilidades que o DFA deve tratar.
I DFA terá 2d estados.


Não-Determinismo (331 – 341 de 481)
Autômato Finito Não-Determinístico – NFA
ICCC 2024

Julliano Teorema 7.21


Nascimento
I Para cada NFA existe um DFA equivalente.
Fundamentos
Matemáticos

Autômatos e Demonstração.
Linguagens
Linguagem Regular
e Autômato Finito
Não-Determinismo
I NFA N = hΣ, S, S0 , δ, Fi.
Expressão Regular
Linguagem I DFA Ad = hΣ, Sd , sd0 , δd , Fd i equivalente, onde:
Não-Regular

Linguagens I Sd = P(S) : Coleção de subconjuntos de estados;


Livres de
Contexto
I sd0 = E(S0 );
I Fd = {Q ∈ Sd | Q ∩ F , ∅};
I δd : Sd × Σ → Sd 7→ função de transição de estados:

δd (Q, a) = {s ∈ S | s ∈ E(δ(q, a)) para algum q ∈ Q} .

I E(Q) = {s ∈ S | s pode ser alcançado a partir de Q com 0 ou mais


transições ε}.

Não-Determinismo (332 – 341 de 481)
Autômato Finito Não-Determinístico – NFA
ICCC 2024

Julliano Teorema 7.21


Nascimento
I Para cada NFA existe um DFA equivalente.
Fundamentos
Matemáticos

Autômatos e Demonstração.
Linguagens
Linguagem Regular
e Autômato Finito
Não-Determinismo
I O DFA A funciona corretamente:
Expressão Regular
Linguagem
I Em cada passo do processamento de N, A entra em um estado que
Não-Regular
corresponde ao subconjunto de estados que N teria entrado naquele ponto.
Linguagens
Livres de
Contexto


Não-Determinismo (333 – 341 de 481)
Autômato Finito Não-Determinístico – NFA
ICCC 2024

Julliano
Nascimento
Exemplo 7.22
Fundamentos
Matemáticos
a,b Ø a {1} b {2} {1,2}
Autômatos e
Linguagens
b b b a a,b
Linguagem Regular
e Autômato Finito a
Não-Determinismo
a
Expressão Regular
{3} {1,3} a {2,3} {1,2,3}
Linguagem
Não-Regular
1 a
b
Linguagens b a b
Livres de a a,b
ε

Contexto
a 2 3
a,b {1,3} a {3} Ø

b b b a
a
{2} a {2,3} {1,2,3}
b

Não-Determinismo (334 – 341 de 481)


Autômato Finito Não-Determinístico – NFA
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens
Corolário 7.23
Linguagem Regular
e Autômato Finito
I Seja N = hS, S, S0 , δ, Fi um NFA e Ad = hS, Sd , sd0 , δd , Fd i o seu DFA
correspondente; então N e Ad são equivalentes, ou seja, L(N) = L(Ad ).
Não-Determinismo
Expressão Regular
Linguagem
Não-Regular

Linguagens
Livres de Corolário 7.24
Contexto
I Uma linguagem é regular se e somente se é reconhecida por algum
autômato finito não-determinístico.

Não-Determinismo (335 – 341 de 481)


Linguagem Regular
ICCC 2024

Julliano
Nascimento
Teorema 7.25
I Se L1 e L2 são linguagens regulares, então L1 ∪ L2 também é regular.
Fundamentos
Matemáticos

Autômatos e
Linguagens
Demonstração.
Linguagem Regular
e Autômato Finito
Não-Determinismo
I Esquema da demonstração:
Expressão Regular
Linguagem
Não-Regular
N1 N
Linguagens
Livres de ε
Contexto

ε
N2


Não-Determinismo (336 – 341 de 481)
Linguagem Regular
ICCC 2024

Julliano
Nascimento
Teorema 7.25
I Se L1 e L2 são linguagens regulares, então L1 ∪ L2 também é regular.
Fundamentos
Matemáticos

Autômatos e
Linguagens
Demonstração.
Linguagem Regular
e Autômato Finito
Não-Determinismo
I NFA N1 = hΣ, S1 , p0 , δ1 , F1 i, tal que L1 = L(N1 ).
Expressão Regular
Linguagem
Não-Regular I NFA N2 = hΣ, S2 , q0 , δ2 , F2 i, tal que L2 = L(N2 ).
Linguagens
Livres de
Contexto
I NFA N = hΣ, S, s0 , δ, Fi, tal que L1 ∪ L2 = L(N).
I S = {s0 } ∪ S1 ∪ S2
I F = F1 ∪ F2
δ1 (s, a)


 se s ∈ S1
δ2 (s, a)


I δ(s, a) = 

 se s ∈ S2 (∀ s ∈ S)

 {p0 , q0 } se s = s0 e a = ε (∀ a ∈ Σ)
s = s0 e a , ε

 ∅

se

Não-Determinismo (337 – 341 de 481)
Linguagem Regular
ICCC 2024

Julliano
Nascimento
Teorema 7.26
Fundamentos I Se L1 e L2 são linguagens regulares, então L1 ◦L2 também é regular.
Matemáticos

Autômatos e
Linguagens
Linguagem Regular
Demonstração.
e Autômato Finito
Não-Determinismo
Expressão Regular I Esquema da demonstração:
Linguagem
Não-Regular
N1 N2
Linguagens
Livres de
Contexto

N
ε
ε
ε

Não-Determinismo (338 – 341 de 481)


Linguagem Regular
ICCC 2024

Julliano
Nascimento
Teorema 7.26
Fundamentos I Se L1 e L2 são linguagens regulares, então L1 ◦L2 também é regular.
Matemáticos

Autômatos e
Linguagens
Linguagem Regular
Demonstração.
e Autômato Finito
Não-Determinismo
Expressão Regular I NFA N1 = hΣ, S1 , p0 , δ1 , F1 i, tal que L1 = L(N1 ).
Linguagem
Não-Regular
I NFA N2 = hΣ, S2 , q0 , δ2 , F2 i, tal que L2 = L(N2 ).
Linguagens
Livres de I NFA N = hΣ, S, p0 , δ, F2 i, tal que L1 ∪ L2 = L(N).
Contexto
I S = S1 ∪S2

 δ1 (s, a) se s ∈ S1 e s < F1
δ1 (s, a) s ∈ F1 e a , ε


I δ(s, a) = 

 se

 δ1 (s, a) ∪ {q0 } se s ∈ F1 e a = ε
 δ2 (s, a)

se s ∈ S2

(∀ s ∈ S)(∀ a ∈ Σ)


Não-Determinismo (339 – 341 de 481)


Linguagem Regular
ICCC 2024

Julliano
Nascimento Teorema 7.27
Fundamentos I Se L é linguagem regular, então L∗ também é regular.
Matemáticos

Autômatos e
Linguagens Demonstração.
Linguagem Regular
e Autômato Finito
Não-Determinismo
Expressão Regular
I Esquema da demonstração:
Linguagem
Não-Regular
N ε
Linguagens
N1 ε ε
Livres de
Contexto ε

Não-Determinismo (340 – 341 de 481)


Linguagem Regular
ICCC 2024

Julliano
Nascimento Teorema 7.27
Fundamentos I Se L é linguagem regular, então L∗ também é regular.
Matemáticos

Autômatos e
Linguagens Demonstração.
Linguagem Regular
e Autômato Finito
Não-Determinismo
Expressão Regular
I NFA N1 = hΣ, S1 , p0 , δ1 , F1 i, tal que L = L(N1 ).
Linguagem
Não-Regular I NFA N = hΣ, S, s0 , δ, Fi, tal que L∗ = L(N).
Linguagens I S = {s0 } ∪ S1 .
Livres de
Contexto I F = {s0 } ∪ F1 .
 δ1 (s, a)

 se s ∈ S1 e s < F1
 δ1 (s, a) a,ε



 se s ∈ F1 e
I δ(s, a) = 
 δ1 (s, a) ∪ {p0 } se s ∈ F1 e a=ε
s = s0 a=ε

{p0 } se e




 ∅ se s = s0 e a,ε

(∀ s ∈ S)(∀ a ∈ Σ)


Não-Determinismo (341 – 341 de 481)


Conjunto Regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Definição 7.28
Autômatos e I Um conjunto regular sobre o alfabeto Σ = {a1 , a2 , . . . , am } é formado a partir
Linguagens
Linguagem Regular das regras:
e Autômato Finito

1. {a1 }, {a2 }, . . . , {am } são conjuntos regulares.


Não-Determinismo
Expressão Regular
Linguagem
Não-Regular
2. ∅ é um conjunto regular.
Linguagens
Livres de
Contexto 3. {ε} é um conjunto regular.
4. Se R1 e R2 são conjuntos regulares, então R1 ◦R2 e R1 ∪ R2 também são
conjuntos regulares.
5. Se R é um conjunto regular, então R∗ é um conjunto regular.

Expressão Regular (342 – 375 de 481)


Conjunto Regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens
Linguagem Regular
e Autômato Finito I Σ = {a1 , a2 , . . . , am } : alfabeto.
Não-Determinismo
Expressão Regular
Linguagem
Não-Regular
I R1 , R2 : conjuntos regulares sobre Σ.
Linguagens
Livres de I L(R1 ) : linguagem representada por R1 .
Contexto

I R1 e R2 são equivalentes se L(R1 ) = L(R1 ) ≡ R1 = R2 .

Expressão Regular (343 – 375 de 481)


Expressão Regular
ICCC 2024

Julliano
Nascimento

Fundamentos Definição 7.29


Matemáticos

Autômatos e
I R é uma expressão regular sobre o alfabeto Σ = {a1 , a2 , . . . , am } se é igual
Linguagens
Linguagem Regular
a:
e Autômato Finito
Não-Determinismo
Expressão Regular
1. ai , para algum 1 ≤ i ≤ m,
Linguagem
Não-Regular
2. ∅,
Linguagens
Livres de 3. ε,
Contexto

4. R1 ∪ R2 , onde R1 e R2 são expressões regulares,


5. R1 ◦R2 , onde R1 e R2 são expressões regulares,
6. R1∗ , onde R1 é uma expressão regular.

Expressão Regular (344 – 375 de 481)


Expressão Regular
ICCC 2024

Julliano
Nascimento Exemplo 7.30
Fundamentos I Considere o alfabeto Σ = {0, 1}:
Matemáticos

Autômatos e
1. 0∗ 10∗ = {w | w contém exatamente um 1}.
Linguagens
Linguagem Regular
2. Σ∗ 1Σ∗ = {w | w contém pelo menos um 1}.
3. Σ∗ 001Σ∗ = {w | w contém a subcadeia 001}.
e Autômato Finito
Não-Determinismo
Expressão Regular
Linguagem
Não-Regular
4. (ΣΣ)∗ = {w | o comprimento de w é par}.
Linguagens 5. (ΣΣΣ)∗ = {w | o comprimento de w é múltiplo de três}.
Livres de
Contexto 6. 01 ∪ 10 = {01, 10}.
7. 0Σ∗ 0 ∪ 1Σ∗ 1 ∪ 0 ∪ 1 = {w | w começa e termina com o mesmo símbolo}.
8. (0 ∪ ε)1∗ = 01∗ ∪ 1∗ .
9. (0 ∪ ε)(1 ∪ ε) = {ε, 0, 1, 01}.
10. 1∗ ∅ = ∅.
11. ∅∗ = {ε}.

Expressão Regular (345 – 375 de 481)


Expressão Regular
ICCC 2024

Julliano
Nascimento Operações Básicas
Fundamentos
I Se R1 , R2 , R3 são expressões regulares sobre um alfabeto Σ, então:
Matemáticos
I R1 ∪ ∅ = R1 ,
Autômatos e
Linguagens I R1 ◦ε = ε◦R1 = R,
Linguagem Regular
e Autômato Finito
I R1 ◦∅ = ∅◦R1 = ∅,
Não-Determinismo
Expressão Regular
I R1 ∪ R1 = R1 ,
Linguagem
Não-Regular
I R1 ∪ R2 = R2 ∪ R1 ,
Linguagens
I R1 ∪ (R2 ∪ R3 ) = (R1 ∪ R2 ) ∪ R3 ,
Livres de
Contexto
I R1 ◦(R2 ◦R3 ) = (R1 ◦R2 )◦R3 ,
I R1 ∪ (R2 ◦R3 ) = R1 ◦R2 ∪ R1 ◦R3 ,
I ε∗ = ε
I ∅∗ = ε
I (R1 ∪ R2 )∗ = (R1∗ ∪ R2∗ )∗ ,
I (R1 ∪ R2 )∗ = (R1∗ ◦R2∗ )∗ ,
I (R1∗ )∗ = R1∗ ,
I R1∗ ◦R1∗ = R1∗ .

Expressão Regular (346 – 375 de 481)


Expressão Regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e I R1 , R2 , R3 : expressões regulares sobre o alfabeto Σ.


Linguagens
Linguagem Regular
e Autômato Finito I Há exemplos para os quais:
Não-Determinismo
Expressão Regular I R1 ∪ ε , R1 ,
Linguagem
Não-Regular I R1 ◦R1 , R1 ,
Linguagens I R1 ◦R2 , R2 ◦R1 ,
Livres de
Contexto I R1 ∪ (R2 ◦R3 ) , (R1 ∪ R2 )◦(R1 ∪ R3 ),
I (R1 ◦R2 )∗ , (R1∗ ◦R2∗ )∗ ,
I (R1 ◦R2 )∗ , (R1∗ ∪ R2∗ )∗ .

I Exercício: Apresente um exemplo para cada caso.

Expressão Regular (347 – 375 de 481)


Expressão Regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Exemplo 7.31


Linguagens
Linguagem Regular
e Autômato Finito
I R : expressão regular sobre o alfabeto Σ = {a1 , a2 , . . . , am }.
Não-Determinismo
Expressão Regular
Linguagem
I R ∪ ε pode não ser igual a R:
Não-Regular

Linguagens I R = 0 ⇒ L(R) = {0} e L(R ∪ ε) = {0, ε}


Livres de
Contexto
I R◦∅ pode não ser igual a R:
I R = 0 ⇒ L(R) = {0} e L(R◦∅) = ∅

Expressão Regular (348 – 375 de 481)


Equivalência com Autômato Finito
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens
Linguagem Regular I Qualquer expressão regular R pode ser convertida em um autômato finito
e Autômato Finito
Não-Determinismo que reconhece a linguagem L(R).
Expressão Regular
Linguagem
Não-Regular

Linguagens
Livres de
Contexto
Teorema 7.32
I Uma linguagem é regular se e somente se alguma expressão regular a
descreve.

Expressão Regular (349 – 375 de 481)


Equivalência com Autômato Finito
ICCC 2024

Julliano
Nascimento Lema 7.33
Fundamentos
Uma linguagem L, sobre um alfabeto Σ, é regular se alguma expressão
Matemáticos regular R a descreve.
Autômatos e
Linguagens
Linguagem Regular
Demonstração.
e Autômato Finito
Não-Determinismo
Expressão Regular
Linguagem
I Conversão de R em um NFA N.
Não-Regular
I N reconhece L ⇒ L é regular.
Linguagens
Livres de
Contexto

Expressão Regular (350 – 375 de 481)


Equivalência com Autômato Finito
ICCC 2024

Julliano
Nascimento Lema 7.33
Fundamentos
Uma linguagem L, sobre um alfabeto Σ, é regular se alguma expressão
Matemáticos regular R a descreve.
Autômatos e
Linguagens
Linguagem Regular
Demonstração.
e Autômato Finito
Não-Determinismo
Expressão Regular
Linguagem
I Definição formal de expressão regular:
Não-Regular

Linguagens
1. a, para algum a ∈ Σ,
Livres de
Contexto 2. ∅,
3. ε,
4. R1 ∪ R2 , onde R1 e R2 são expressões regulares,
5. R1 ◦R2 , onde R1 e R2 são expressões regulares,
6. R1∗ , onde R1 é uma expressão regular.


Expressão Regular (351 – 375 de 481)


Equivalência com Autômato Finito
ICCC 2024

Julliano
Nascimento Lema 7.33
Fundamentos
Uma linguagem L, sobre um alfabeto Σ, é regular se alguma expressão
Matemáticos regular R a descreve.
Autômatos e
Linguagens
Linguagem Regular
Demonstração.
e Autômato Finito
Não-Determinismo
Expressão Regular
Linguagem
I 6 casos da definição formal de expressão regular:
Não-Regular

Linguagens
1. R = a, a ∈ Σ ⇒ L(R) = {a} e N = (Σ, {s0 , s1 }, s0 , δ, {s1 }), δ(s0 , a) = {s1 }, δ(r, b) = ∅
Livres de para r , s0 ou b , a.
Contexto
2. R = ε ⇒ L(R) = {ε} e N = (Σ, {s0 }, s0 , δ, {s0 }), δ(r, b) = ∅ ∀ r, b.
3. R = ∅ ⇒ L(R) = ∅ e N = (Σ, {s0 }, s0 , δ, ∅), δ(r, b) = ∅ ∀ r, b.
4. R = R1 ∪ R2 .
5. R = R1 ◦R2 .
6. R = R1∗ .


Expressão Regular (352 – 375 de 481)


ICCC 2024

Julliano
Nascimento Exemplo 7.34
Fundamentos I Conversão da expressão regular (ab ∪ a)∗ em um NFA:
Matemáticos
a
Autômatos e a
Linguagens
Linguagem Regular
e Autômato Finito b
Não-Determinismo
Expressão Regular
b
Linguagem
Não-Regular a ε b
Linguagens ab
Livres de
Contexto a ε b
ε

ε a
ab ∪ a
ε a ε b
ε
ε
ε a
(ab ∪ a)∗ ε

Expressão Regular (353 – 375 de 481)


Equivalência com Autômato Finito
ICCC 2024

Julliano
Nascimento

Fundamentos
Lema 7.35
Matemáticos Se uma linguagem L, sobre um alfabeto Σ, é regular, então alguma expressão
Autômatos e
Linguagens
regular R a descreve.
Linguagem Regular
e Autômato Finito
Não-Determinismo Demonstração.
Expressão Regular
Linguagem
Não-Regular
I L regular ⇒ L é reconhecida por algum DFA.
Linguagens
Livres de
Contexto I Conversão de DFA numa expressão regular equivalente.
I Conversão de DFA em GNFA.
I Conversão de GNFA em expressão regular.
I GNFA → Generalized Nondeterministic Finite Automaton.


Expressão Regular (354 – 375 de 481)


Equivalência com Autômato Finito
ICCC 2024

Julliano
Nascimento

Fundamentos
Lema 7.35
Matemáticos Se uma linguagem L, sobre um alfabeto Σ, é regular, então alguma expressão
Autômatos e
Linguagens
regular R a descreve.
Linguagem Regular
e Autômato Finito
Não-Determinismo Demonstração.
Expressão Regular
Linguagem
Não-Regular
I Conversão de DFA numa expressão regular equivalente.
Linguagens
Livres de
Contexto k-DFA (k+2)-GNFA (k+1)-GNFA

Expressão
2-GNFA 3-GNFA
Regular


Expressão Regular (355 – 375 de 481)


NFA Generalizado – GNFA
ICCC 2024

Julliano
Nascimento

Fundamentos
Definição 7.36
Matemáticos
I Um GNFA é um NFA onde:
Autômatos e
Linguagens I Função de transição δ aceita um par de estados como parâmetros e tem
Linguagem Regular
e Autômato Finito
Não-Determinismo
como resultado uma expressão regular.
Expressão Regular
Linguagem
I Transições do estado inicial para todos os demais.
Não-Regular
I Sem transições dos demais estados para o estado inicial.
Linguagens
Livres de I Apenas um estado final.
Contexto
I Transições dos demais estados para o estado final.
I Sem transição do estado inicial (final) para o próprio.
I Transições entre todos os pares de estados (exceto o inicial e o final).
I Transições de cada estado para o próprio (exceto o inicial e o final).

Expressão Regular (356 – 375 de 481)


NFA Generalizado – GNFA
ICCC 2024

Julliano
Nascimento

Fundamentos Definição 7.37


Matemáticos

Autômatos e I Um GNFA é definido por uma quíntupla hΣ, S, sini , δ, s f im i, onde:


Linguagens
Linguagem Regular
e Autômato Finito
I Σ é o alfabeto de entrada;
Não-Determinismo
Expressão Regular
Linguagem
I S , ∅ é o conjunto finito de estados;
Não-Regular

Linguagens
I sini ∈ S é estado inicial;
Livres de
Contexto I δ : (S − {sini }) × (S − {s f im }) → R∗ é a função de transição que associa um par
de estados a uma expressão regular;
I R∗ : conjunto de todas as expressões regulares sobre o alfabeto Σ

I s f im é estado final.

Expressão Regular (357 – 375 de 481)


NFA Generalizado – GNFA
ICCC 2024

Julliano
Nascimento

Fundamentos Definição 7.38


Matemáticos

Autômatos e I Alfabeto Σ.
Linguagens
Linguagem Regular
e Autômato Finito
I Cadeia w = w1 w2 . . . wk , onde cada wi ∈ Σ∗ .
Não-Determinismo
Expressão Regular
Linguagem
I GNFA G = hΣ, S, sini , δ, s f im i.
Não-Regular

Linguagens
Livres de
I G reconhece a cadeia w se existe uma seqüência de estados s0 , s1 , . . . , sk
Contexto tal que:
I s0 = sini é o estado inicial,
I sk = s f im é o estado final,
I wi ∈ L(Ri ), para cada i, onde Ri = δ(si−1 , si ).

Expressão Regular (358 – 375 de 481)


Conversão de DFA em GNFA
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e I DFA = hΣ, S, s0 , δ1 , Fi.


Linguagens
Linguagem Regular
e Autômato Finito
Não-Determinismo I GNFA = hΣ, S, sini , δ, s f im i.
Expressão Regular
Linguagem
Não-Regular
I Novo estado sini , com transição δ(sini , s0 ) = ε.
Linguagens
Livres de
I Novo estado s f im , com transições δ(s, s f im ) = ε, ∀ s ∈ F.
Contexto
I União de múltiplas transições entre estados:
I δ(si , a) = s j e δ(si , b) = s j ⇒ δ(si , s j ) = a ∪ b.

I δ(si , a) , s j , ∀ a ∈ Σ ⇒ δ(si , s j ) = ∅.

Expressão Regular (359 – 375 de 481)


Conversão de GNFA em expressão regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Algoritmo 1: Converte(G,R)


Linguagens
Linguagem Regular Entrada: GNFA G = hΣ, S, sini , δ, s f im i.
e Autômato Finito Saída: Expressão regular R
Não-Determinismo
Expressão Regular 1 k ← |S|;
Linguagem 2 se (k = 2) então
Não-Regular 3 retorna R;
4 senão
Linguagens 5 sr ← s ∈ S, tal que s , sini e s , s f im .;
Livres de
Contexto 6 S0 ← S − {sr };
= δ(si , sr )


 R1
= δ(sr , sr )

 R2
δ0 (si , s j ) ← (R1 )(R2 )∗ (R3 ) ∪ (R4 ), ∀ si ∈ S0 − {sini } e s j ∈ S0 − {s f im }, onde: 

7


 R3 = δ(sr , s j )
= δ(si , s j ).

R4

8 Converte(G0 = hΣ, S0 , sini , δ0 , s f im i,R);

Expressão Regular (360 – 375 de 481)


Expressão regular e autômato finito
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens
Linguagem Regular
e Autômato Finito
I Resumo das operações de exclusão de um vértice:
Não-Determinismo
Expressão Regular
ri,i
Linguagem
rj,i ri,k rj,i ri,k
Não-Regular
sj si sk sj si sk
Linguagens
Livres de
Contexto
rj,irri,k rj,i(ri,i)*ri,k
sj sk sj sk

Expressão Regular (361 – 375 de 481)


Expressão regular e autômato finito
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens I Resumo das operações de exclusão de um vértice:
Linguagem Regular
e Autômato Finito r4
Não-Determinismo
Expressão Regular
sj sk
Linguagem
Não-Regular
r1 r3
Linguagens
Livres de si
Contexto
r2

(r1)(r2)*(r3)(r4)
sj sj

Expressão Regular (362 – 375 de 481)


Expressão regular e autômato finito
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens I GNFA reduzido tem no máximo dois vértices.
1. Vértice inicial igual ao final (r∗ ):
Linguagem Regular
e Autômato Finito
Não-Determinismo
r
Expressão Regular
Linguagem
Não-Regular

Linguagens
Livres de
Contexto
2. Vértice inicial diferente do final ((r1 )∗ r2 (r3 ∪ r4 (r1 )∗ r2 )∗ ):
r1 r3
r2
r4

Expressão Regular (363 – 375 de 481)


Conversão de GNFA em expressão regular
ICCC 2024

Julliano
Nascimento

Fundamentos Lema 7.39


Matemáticos
Seja G um GNFA e G0 o GNFA obtido a partir de G em uma iteração do
Autômatos e
Linguagens algoritmo 1, então G e G0 são equivalentes.
Linguagem Regular
e Autômato Finito
Não-Determinismo
Expressão Regular
Demonstração.
Linguagem
Não-Regular I Indução no número k de estados de G:
Linguagens
Livres de
Contexto Base k = 2 ⇒ R = δ(sini , s f im ).

Expressão Regular (364 – 375 de 481)


Conversão de GNFA em expressão regular
ICCC 2024

Julliano
Nascimento

Fundamentos Lema 7.39


Matemáticos
Seja G um GNFA e G0 o GNFA obtido a partir de G em uma iteração do
Autômatos e
Linguagens algoritmo 1, então G e G0 são equivalentes.
Linguagem Regular
e Autômato Finito
Não-Determinismo
Expressão Regular
Demonstração.
Linguagem
Não-Regular I Indução no número k de estados de G:
Linguagens
Livres de
Contexto Passo 1 Suponha que G aceita uma cadeia w:
I ∃ sini ≡ s0 , s1 , s2 , s3 , . . . , sq ≡ s f im
I sr , s1 , s2 , s3 , . . . , sq−1 ⇒ G0 aceita w
I sr = sp , 1 ≤ p ≤ q − 1 ⇒ R0 = δ0 (si , s j ) descreve w (G0 aceita w).


Expressão Regular (365 – 375 de 481)


Conversão de GNFA em expressão regular
ICCC 2024

Julliano
Nascimento

Fundamentos Lema 7.39


Matemáticos
Seja G um GNFA e G0 o GNFA obtido a partir de G em uma iteração do
Autômatos e
Linguagens algoritmo 1, então G e G0 são equivalentes.
Linguagem Regular
e Autômato Finito
Não-Determinismo
Expressão Regular
Demonstração.
Linguagem
Não-Regular I Indução no número k de estados de G:
Linguagens
Livres de
Contexto Passo 2 Suponha que G0 aceita uma cadeia w:
I δ0 (si , s j ) descreve coleção de cadeias reconhecidas entre si e
s j em G, passando ou não por sr .
G e G0 são equivalentes.


Expressão Regular (366 – 375 de 481)


Conversão de GNFA em expressão regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens
Linguagem Regular
e Autômato Finito
Não-Determinismo
Exemplo 7.40
Expressão Regular
Linguagem
a a,b
Não-Regular

s1 b s2
Linguagens
Livres de
Contexto

Expressão Regular (367 – 375 de 481)


Conversão de GNFA em expressão regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens
Linguagem Regular
e Autômato Finito
Não-Determinismo
Exemplo 7.40
Expressão Regular
Linguagem
a a b
Não-Regular
ε b ε
Linguagens sini s1 s2 sfim
Livres de
Contexto

Expressão Regular (368 – 375 de 481)


Conversão de GNFA em expressão regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens
Linguagem Regular
e Autômato Finito
Não-Determinismo
Exemplo 7.40
Expressão Regular
Linguagem
a
Não-Regular
ε b(ab)*
Linguagens sini s1 sfim
Livres de
Contexto

Expressão Regular (369 – 375 de 481)


Conversão de GNFA em expressão regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens
Linguagem Regular
e Autômato Finito
Não-Determinismo
Exemplo 7.40
Expressão Regular
Linguagem
Não-Regular
a*b(ab)*
Linguagens sini sfim
Livres de
Contexto

Expressão Regular (370 – 375 de 481)


Conversão de GNFA em expressão regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Exemplo 7.41


Linguagens
Linguagem Regular b
e Autômato Finito
Não-Determinismo
a
Expressão Regular
Linguagem
s1 s2
Não-Regular a
Linguagens b a
Livres de
Contexto b
s3

Expressão Regular (371 – 375 de 481)


Conversão de GNFA em expressão regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Exemplo 7.41


Linguagens
Linguagem Regular b
e Autômato Finito
a
Não-Determinismo
ε ε
Expressão Regular
Linguagem
sini s1 s2 sfim
Não-Regular a
Linguagens b a
Livres de ε
Contexto b
s3

Expressão Regular (372 – 375 de 481)


Conversão de GNFA em expressão regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Exemplo 7.41


Linguagens
Linguagem Regular
aab
e Autômato Finito
a ε
Não-Determinismo
Expressão Regular
sini s2 sfim
Linguagem
Não-Regular
baa
Linguagens b ab ε
Livres de
Contexto
s3
bb

Expressão Regular (373 – 375 de 481)


Conversão de GNFA em expressão regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Exemplo 7.41


Linguagens
a(aab)*
Linguagem Regular
e Autômato Finito
Não-Determinismo
sini sfim
a(aab)*abb
Expressão Regular
Linguagem
Não-Regular

Linguagens
Livres de (baa)(aab)*ε
Contexto s3
(baa)(aab)*abbb

Expressão Regular (374 – 375 de 481)


Conversão de GNFA em expressão regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Exemplo 7.41


Linguagens
(a(aab)*abb)((baa)(aab)*abbb)*((baa)(aab)*ε)a(aab)*
Linguagem Regular
e Autômato Finito sini sfim
Não-Determinismo
Expressão Regular
Linguagem
Não-Regular

Linguagens
Livres de
Contexto

Expressão Regular (375 – 375 de 481)


Linguagem Não-Regular
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
I Entender o poder dos autômatos finitos ⇒ entender suas limitações.
Linguagens
Linguagem Regular
e Autômato Finito
I Certas linguagens não podem ser reconhecidas por autômatos finitos.
Não-Determinismo
Expressão Regular
I Ex: L = {0n 1n | n ≥ 0}
Linguagem
Não-Regular
I L1 e L2 são ou não regulares?
Linguagens
Livres de I L1 = {z | z tem igual número de 0s e 1s}.
Contexto
I L2 = {z | z tem igual número de ocorrências de 01 e 10 como subcadeias}.
I L1 é não regular e L2 é regular!
I Pumping Lemma – toda linguagem regular satisfaz uma propriedade
especial.

Linguagem Não-Regular (376 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Lema 7.42
Autômatos e
Linguagens I Se L é uma linguagem regular, então existe um número k tal que cada
Linguagem Regular
e Autômato Finito z = uvw ∈ L, com |z| ≥ k, satisfaz:
Não-Determinismo
Expressão Regular
Linguagem 1. uvi w ∈ L, i ≥ 0,
Não-Regular

Linguagens 2. |v| > 0,


Livres de
Contexto
3. |uv| ≤ k.

I k é chamado de pumping length.

Linguagem Não-Regular (377 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens I Esquema da demonstração:
I A = hΣ, S, s0 , δ, Fi : DFA que reconhece L.
Linguagem Regular
e Autômato Finito

I k = |S|.
Não-Determinismo
Expressão Regular
Linguagem
Não-Regular
I z = uvw = z1 z2 . . . zn .
Linguagens I n = |z| ≥ k.
Livres de
Contexto
I s0 , . . . , si , . . . , sr : sequência de estados para A aceitar z.
I Tamanho da sequência é n + 1.
I n ≥ k ⇒ n + 1 > k ⇒ existe um estado repetido na sequência.
I s0 , . . . , si , . . . , si , . . . , sr .

Linguagem Não-Regular (378 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Demonstração.
Autômatos e
Linguagens I A = hΣ, S, s0 , δ, Fi : DFA que reconhece L.
Linguagem Regular
e Autômato Finito
Não-Determinismo
I k = |S|.
Expressão Regular
Linguagem
Não-Regular
I z = z1 z2 . . . zn tal que z ∈ L e |z| = n ≥ k.
Linguagens I s0 , . . . , sn : sequência de estados utilizada por A para aceitar z, onde
Livres de
Contexto si = δ(si−1 , zi ), para 1 ≤ i ≤ n.
I Esta sequência tem tamanho n + 1 ≥ k + 1.
I sq = sp (p ≤ k + 1) : entre os k + 1 primeiros estados, dois devem ser iguais.
I Princípio da casa do pombo!


Linguagem Não-Regular (379 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Demonstração.
Autômatos e
Linguagens I u = z1 , . . . , zq−1 , v = zq , . . . , zp−1 e w = zp , . . . , zn .
Linguagem Regular
e Autômato Finito
Não-Determinismo
I A deve aceitar uvi w para i ≥ 0.
Expressão Regular
Linguagem
I A usa os estados de s0 a sq para aceitar u, de sq a sp para aceitar v e de sp a
Não-Regular
sn (estado final) para aceitar w.
Linguagens
Livres de I |uv| ≤ k.
Contexto
I q , p ⇒ |v| > 0; e
I p ≤ k + 1.

Linguagem Não-Regular (380 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
I Como provar que uma linguagem L não é regular?
Linguagens
Linguagem Regular
e Autômato Finito
I Suponha que L é regular.
Não-Determinismo
Expressão Regular I Use o Pumping Lemma para garantir a existência de k, tal que toda cadeia
Linguagem
Não-Regular
z, com |z| ≥ k, satisfaz as condições do lema.
Linguagens
Livres de I Encontre uma cadeia z0 , com |z0 | ≥ k, que não satisfaça as condições do
Contexto
lema.
I Análise individual das possibilidade de divisão de z0 .

I A existência de z0 contradiz o Pumping Lemma. Logo, L não é regular.

Linguagem Não-Regular (381 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento
Exemplo 7.43
Fundamentos
Matemáticos I L = {0n 1n | n ≥ 0} não é regular.
Autômatos e
Linguagens I Suponha que L é regular.
Linguagem Regular
e Autômato Finito
Não-Determinismo I Seja z = 0k 1k :
I z ∈ L e |z| > k ⇒ z = uvw e uvi w ∈ L, ∀ i ≥ 0.
Expressão Regular
Linguagem
Não-Regular
I k é o pumping length dado pelo lema.
Linguagens
Livres de I Contradições:
Contexto
a) v consiste somente de 0’s.
I A cadeia uvvw tem mais 0’s do que 1’s e não pertence a L.
b) v consiste somente de 1’s.
c) v consiste de 0’s e 1’s.
I A cadeia uvvw pode ter o mesmo número de 0’s e 1’s, mas com ocorrência de
1’s antes de 0’s.

Linguagem Não-Regular (382 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos
Exemplo 7.44
Matemáticos
I L = {z | z tem igual número de 0’s e 1’s} não é regular.
Autômatos e
Linguagens
Linguagem Regular
e Autômato Finito
I Suponha que L é regular.
I Seja z = 0k 1k :
Não-Determinismo
Expressão Regular
Linguagem
Não-Regular I z ∈ L e |z| > k ⇒ z = uvw e uvi w ∈ L, ∀ i ≥ 0.
Linguagens I k é o pumping length dado pelo lema.
Livres de
Contexto I Contradição???
1. u = w = ε e v = 0k 1k .
I A cadeia uvi w sempre tem o mesmo número de 0’s e 1’s!
2. Se |uv| ≤ k, então v deve consistir só de 0’s.
I A cadeia uvvw tem mais 0’s do que 1’s.

Linguagem Não-Regular (383 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos Exemplo 7.45
Autômatos e
Linguagens
I L = {z ∈ {a, b}∗ | |z| é um quadrado perfeito}.
Linguagem Regular
e Autômato Finito
Não-Determinismo I Suponha que L é regular.
Expressão Regular
Linguagem
Não-Regular
I L é aceito por algum DFA M.
Linguagens
I Seja k o número de estados de M.
Livres de
Contexto I Pelo Pumping Lemma, todo z ∈ L, com |z| ≥ k, pode ser decomposto em
subcadeias u, v e w, com |uv| ≤ k, v , ε e uvi w ∈ L ∀ i ≥ 0.

Linguagem Não-Regular (384 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos Exemplo 7.45
Autômatos e
Linguagens
I L = {z ∈ {a, b}∗ | |z| é um quadrado perfeito}.
Linguagem Regular
e Autômato Finito
Não-Determinismo
Expressão Regular
I Considere qualquer cadeia z de comprimento k2 .
Linguagem
Não-Regular
I O Pumping Lemma requer a decomposição de z em subcadeias u, v e w,
Linguagens com 0 < |v| ≤ k:
Livres de
Contexto
|uv2 w| = |uvw| + |v|
= k2 + |v|
≤ k2 + k
< k2 + 2.k + 1
= (k + 1)2 .

Linguagem Não-Regular (385 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos Exemplo 7.45
Autômatos e
Linguagens
I L = {z ∈ {a, b}∗ | |z| é um quadrado perfeito}.
Linguagem Regular
e Autômato Finito
Não-Determinismo
Expressão Regular
I Como k2 < |uv2 w| < (k + 1)2 , então |uv2 w| não é um quadrado perfeito.
Linguagem
Não-Regular I Não existe decomposição possível de z que satisfaça as condições do
Linguagens
Livres de
lema.
Contexto
I Portanto, L não é regular.

Linguagem Não-Regular (386 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Exemplo 7.46
Autômatos e
Linguagens
Linguagem Regular
I L = {ai | i é primo}.
e Autômato Finito
Não-Determinismo
Expressão Regular
Linguagem
I Suponha que L é regular.
Não-Regular
I L é aceito por algum DFA M com k estados.
Linguagens
Livres de
Contexto
I Pelo Pumping Lemma, an ∈ L, com n ≥ k e primo, pode ser decomposto
em an = uvw, com v , ε e uvi w ∈ L, ∀ i ≥ 0.

Linguagem Não-Regular (387 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Exemplo 7.46
Autômatos e
Linguagens
Linguagem Regular
I L = {ai | i é primo}.
e Autômato Finito
Não-Determinismo
Expressão Regular
Linguagem
I Se z = uvn+1 w ∈ L, então |z| = |uvn+1 w| é primo. Mas:
Não-Regular

Linguagens
Livres de |uvn+1 w| = |uvvn w|
Contexto
= |uvw| + |vn |
= n + n.|v|
= n.(1 + |v|).

Linguagem Não-Regular (388 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Exemplo 7.46
Autômatos e
Linguagens
Linguagem Regular
I L = {ai | i é primo}.
e Autômato Finito
Não-Determinismo
Expressão Regular
Linguagem
I Como |uvn+1 w| = n.(1 + |v|), então |uvn+1 w| não é primo.
Não-Regular

Linguagens
I Não existe decomposição possível de an que satisfaça as condições do
Livres de
Contexto lema.
I Portanto, L não é regular.

Linguagem Não-Regular (389 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos Exemplo 7.47


Matemáticos

Autômatos e
I L = {ai bi | i ≥ 0}.
Linguagens
Linguagem Regular
e Autômato Finito I Suponha que L é regular.
Não-Determinismo
Expressão Regular I L é aceito por algum DFA M com k estados.
Linguagem

I Seja z = ak bk . Qualquer decomposição de z em uvw, satisfazendo as


Não-Regular

Linguagens
Livres de condições do Pumping Lemma, deve ter a seguinte forma:
Contexto

u v w
ai a j ak−i−j bk ,

onde i + j ≤ k e j > 0.

Linguagem Não-Regular (390 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos Exemplo 7.47


Matemáticos

Autômatos e
I L = {ai bi | i ≥ 0}.
Linguagens
Linguagem Regular
e Autômato Finito
Não-Determinismo
I Portanto, uv2 w = ai a j a j ak−i−j bk = ak a j bk .
Expressão Regular
Linguagem I Como uv2 w < L, não existe decomposição possível de z que satisfaça as
Não-Regular

Linguagens
condições do lema.
Livres de
Contexto I Portanto, L não é regular.

Linguagem Não-Regular (391 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Exemplo 7.48
Autômatos e
Linguagens I L = {ai b j c j | i, j > 0}.
Linguagem Regular
e Autômato Finito
Não-Determinismo
Expressão Regular I Suponha que L é regular.
Linguagem
Não-Regular I L é aceito por algum DFA M com k estados.
Linguagens
Livres de I Pelo Pumping Lemma, todo z ∈ L, com |z| ≥ k, pode ser decomposto em
Contexto
z = uvw, com |uv| ≤ k, v , ε e uvi w ∈ L, ∀ i ≥ 0
I Seja z = abk ck . Qualquer decomposição de z em uvw, satisfazendo as
condições do Pumping Lemma, deve ter uma das seguintes formas:

Linguagem Não-Regular (392 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Exemplo 7.48
Autômatos e
Linguagens I L = {ai b j c j | i, j > 0}.
Linguagem Regular
e Autômato Finito
Não-Determinismo
Expressão Regular 1. a < v:
Linguagem
Não-Regular u v w
Linguagens
Livres de
abi b j bk−i−j ck ,
Contexto
onde i + j ≤ k − 1 e j > 0.
I Portanto, uv2 w = abi b j b j bk−i− j ck = abk b j ck .

Linguagem Não-Regular (393 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Exemplo 7.48
Autômatos e
Linguagens I L = {ai b j c j | i, j > 0}.
Linguagem Regular
e Autômato Finito
Não-Determinismo
Expressão Regular 2. a ∈ v:
Linguagem
Não-Regular u v w
Linguagens ε abi bk−i ck ,
Livres de
Contexto
onde i ≤ k − 1.
I Portanto, uv2 w = abi abi bk−i ck = abi abk ck .

Linguagem Não-Regular (394 – 395 de 481)


Pumping Lemma
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Exemplo 7.48
Autômatos e
Linguagens I L = {ai b j c j | i, j > 0}.
Linguagem Regular
e Autômato Finito
Não-Determinismo
Expressão Regular I Portanto, uv2 w < L.
Linguagem
Não-Regular
I Logo, não existe decomposição possível de z que satisfaça as condições
Linguagens
Livres de
Contexto
do lema.
I Portanto, L não é regular.

Linguagem Não-Regular (395 – 395 de 481)


Elementos Básicos
ICCC 2024

Julliano
Nascimento
Exemplo
 8.1
Fundamentos 
 A → 0A1
Matemáticos
G1 = 

 A → B

Autômatos e
Linguagens  B → #

Linguagens
Livres de
Contexto
Gramáticas Livre de
I Elementos:
Contexto
Autômato com Pilha
I Conjunto de variáveis ({A, B}).
Pumping Lemma
I Conjunto de símbolos ou terminais ({0, 1, #}).
I Coleção de regras de substituição ou produções (A → 0A1 | B, B → #).
I Variável inicial (A).
I L(G1 ) : Linguagem gerada pela gramática G1 .
I GLC : Gramática livre de contexto.
I LLC : Linguagem livre de contexto.

Gramáticas Livre de Contexto (396 – 417 de 481)


Elementos Básicos
ICCC 2024

Julliano
Nascimento Exemplo 8.2
hsentençai → hcomandoi


Fundamentos 
Matemáticos



 hsentençai → begin
hsentençai → end




Autômatos e 
Linguagens



 hcomandoi → f or hvariáveli := hexpressãoi to hexpressãoi do
 hcomandoi;
G2 = 


Linguagens  hcomandoi → hvariáveli := hexpressãoi
Livres de


hvariáveli → hidentificadori


Contexto 

hexpressãoi + hexpressãoi

Gramáticas Livre de


 hexpressãoi →
Contexto 
Autômato com Pilha


 hexpressãoi → hexpressãoi ∗ hexpressãoi
0 | 1| . . . | 9

hexpressãoi →
Pumping Lemma

variáveis terminal

‹expressão› ‹expressão› + ‹expressão›

Produção

Gramáticas Livre de Contexto (397 – 417 de 481)


Árvore de Derivação
ICCC 2024

Julliano
Nascimento
Exemplo 8.3

 A → 0A1
Fundamentos 

Matemáticos

Autômatos e
I G1 = 

 A → B
Linguagens  B → #

Linguagens
Livres de I Derivação da cadeia 000#111:
Contexto
Gramáticas Livre de
A ⇒ 0A1 ⇒ 00A11 ⇒ 000A111 ⇒ 000B111 ⇒ 000#111
Contexto
Autômato com Pilha
Pumping Lemma
I Árvore de derivação da cadeia 000#111:
A
A
A
A
B
0 0 0 # 1 1 1

Gramáticas Livre de Contexto (398 – 417 de 481)


Definição Formal
ICCC 2024

Julliano
Nascimento

Fundamentos
Definição 8.4
Matemáticos
I Uma gramática livre de contexto é uma quádrupla G = (V, Σ, P, S), onde:
Autômatos e
Linguagens I V é o conjunto de variáveis.
Linguagens I Σ é o conjunto de símbolos terminais (Σ ∩ V = ∅).
Livres de
Contexto
I P é o conjunto de regras de derivação.
Gramáticas Livre de
Contexto
I S ∈ V é a variável inicial.
Autômato com Pilha
Pumping Lemma
I Se (A → w) ∈ P, então uAv ⇒ uwv.

I u⇒ v se u = v ou ∃ u1 , u2 , . . . , uk , k ≥ 0 tal que
u ⇒ u1 ⇒ u2 ⇒ · · · ⇒ uk ⇒ v.

I L(G) = {w ∈ Σ∗ | S ⇒ w} : linguagem gerada pela gramática G.

Gramáticas Livre de Contexto (399 – 417 de 481)


Exemplo de GLC
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens

Linguagens
Livres de
Exemplo 8.5
Contexto
Gramáticas Livre de I G = ({S}, {a, b}, {S → aSb | SS | ε}, S).
Contexto
Autômato com Pilha
Pumping Lemma
I L(G) = {w ∈ Σ∗ | w possui parênteses aninhados }, supondo a =‘(’ e b =‘)’.

Gramáticas Livre de Contexto (400 – 417 de 481)


Técnicas para construção de GLC’s
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e União de GLC’s


Linguagens

Linguagens
I Suponha uma LLC L que pode ser quebrada em k linguagens.
Livres de
Contexto
Gramáticas Livre de
I Escreva uma GLC para cada uma das k linguagens:
Gi = (Vi , Σ, Pi , Si ), i = 1 . . . , k.
Contexto
Autômato com Pilha
Pumping Lemma
I Combine as k gramáticas na gramática G = (V, Σ, P, S), onde:
I V = V1 ∪ V2 ∪ · · · ∪ Vk ∪ {S}.
I P = P1 ∪ P2 ∪ · · · ∪ Pk ∪ {S → S1 | S2 | . . . | Sk }.

Gramáticas Livre de Contexto (401 – 417 de 481)


União de GLCs
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Exemplo 8.6


Linguagens

Linguagens I L = {0n 1n | n ≥ 0} ∪ {1n 0n | n ≥ 0}.


Livres de
Contexto I S1 → 0S1 1 | ε para a linguagem {0n 1n | n ≥ 0}.
Gramáticas Livre de
Contexto
Autômato com Pilha
I S2 → 1S2 0 | ε para a linguagem {1n 0n | n ≥ 0}.
Pumping Lemma

 S → S1 | S2


I Para a LLC L:   S1 → 0S1 1 | ε
 S2 → 1S2 0 | ε

Gramáticas Livre de Contexto (402 – 417 de 481)


Técnicas para construção de GLC’s
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Conversão de DFA em GLC
Linguagens
I Objetivo: construir uma GLC para uma linguagem regular.
Linguagens
Livres de I DFA A = hΣ, Q, q0 , δ, Fi.
Contexto
Gramáticas Livre de
Contexto
Autômato com Pilha
I GLC G = (V, Σ, P, S) :
Pumping Lemma
I V = {Si | qi ∈ Q} (uma variável para cada estado de A).
I S = q0 (variável inicial de G).
I P = {Si → ε | qi ∈ F} ∪ {Si → aS j | δ(qi , a) = q j }.

Gramáticas Livre de Contexto (403 – 417 de 481)


Conversão de DFA em GLC
ICCC 2024

Julliano
Nascimento

Fundamentos Exemplo 8.7


Matemáticos

Autômatos e
I Linguagem gerada pela expressão regular a∗ ba∗ ba∗ :
Linguagens
= {S, A, B}

Linguagens

 V1
 Σ = {a, b}
Livres de



Contexto

Gramáticas Livre de I G1 = (V1 , Σ, P1 , S), onde: 
 P1 : S → aS | bA
Contexto 
A → aA | bB


Autômato com Pilha 

B → aB | ε
Pumping Lemma 

= {S, A}


 V2
Σ = {a, b}


I G2 = (V2 , Σ, P2 , S), onde: 



 P2 : S → AbAbA
A → aA | ε


Gramáticas Livre de Contexto (404 – 417 de 481)


Ambiguidade
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens I Derivação ambígua: uma mesma cadeia tem mais de uma árvore de
Linguagens
Livres de
derivação.
Contexto
Gramáticas Livre de
Contexto
I Gramática ambígua: gera uma cadeia por derivação ambígua.
Autômato com Pilha
Pumping Lemma
I A cadeia tem duas árvores de derivação.
I Duas derivações podem diferir na ordem em que variáveis são substituídas.

I Derivação mais à esquerda: a variável mais à esquerda é a única a ser


expandida a cada passo.

Gramáticas Livre de Contexto (405 – 417 de 481)


Ambiguidade
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens
I Uma cadeia w é derivada ambiguamente se possui duas ou mais
Linguagens
Livres de derivações à esquerda.
Contexto
Gramáticas Livre de
Contexto
Autômato com Pilha
I Uma gramática é ambígua se gera alguma cadeia ambiguamente.
Pumping Lemma

I LLC inerentemente ambígua: só pode ser gerada por uma gramática


ambígua.
I L = {0i 1 j 2k | i = j ou j = k}

Gramáticas Livre de Contexto (406 – 417 de 481)


Forma Normal de Chomsky
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens
I Uma GLC está na Forma Normal de Chomsky se toda regra de derivação
Linguagens
Livres de é da forma:
Contexto
Gramáticas Livre de
A → BC,
Contexto
Autômato com Pilha A → a.
Pumping Lemma
I S → ε, quando S é a variável inicial.
I A pode ser qualquer variável.
I B, C não podem ser a variável inicial.

Gramáticas Livre de Contexto (407 – 417 de 481)


Forma Normal de Chomsky
ICCC 2024

Julliano
Nascimento Teorema 8.8
Fundamentos Qualquer LLC é gerada por uma GLC na Forma Normal de Chomsky.
Matemáticos

Autômatos e
Linguagens
Esquema da prova
Linguagens 1. Adicionar uma nova variável inicial.
Livres de
Contexto
Gramáticas Livre de 2. Eliminar as regras de derivação da forma A → ε.
Contexto
Autômato com Pilha
Pumping Lemma 3. Eliminar as regras de derivação da forma A → B.
4. Converter as demais regras para uma forma apropriada.

I L : LLC gerada pela gramática (V, Σ, P, S)


I G = (V0 , Σ, P0 , S0 ) : GLC na Forma Normal de Chomsky tal que L(G) = L.

Gramáticas Livre de Contexto (408 – 417 de 481)


Forma Normal de Chomsky
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos Demonstração.
Autômatos e
Linguagens
1. Adicionar uma nova variável inicial.
Linguagens
Livres de I S0 → S.
Contexto
Gramáticas Livre de
Contexto
Autômato com Pilha
Pumping Lemma

Gramáticas Livre de Contexto (409 – 417 de 481)


Forma Normal de Chomsky
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos Demonstração.
Autômatos e
Linguagens
2. Eliminar uma regra de derivação da forma B → ε (B , S).
Linguagens
Livres de I Adicionar A → uv, se (A → uBv) ∈ P (u e v são cadeias de terminais e
Contexto
Gramáticas Livre de
variáveis).
Contexto
Autômato com Pilha I Repetir para cada ocorrência de B: adicionar A → uvBw | uBvw | uvw se
Pumping Lemma
(A → uBvBw) ∈ P.
I Se (A → B) ∈ P, adicionar A → ε (a menos que esta regra tenha sido
eliminada).
I Repetir estes passo até eliminar todas derivações da forma A → ε.


Gramáticas Livre de Contexto (410 – 417 de 481)


Forma Normal de Chomsky
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos Demonstração.
Autômatos e
Linguagens
3. Eliminar uma regra de derivação da forma A → B.
Linguagens
Livres de I Adicionar A → u, para toda ocorrência de B → u, onde u é uma cadeia de
Contexto
Gramáticas Livre de
terminais e variáveis (a menos que seja uma regra já removida).
Contexto
Autômato com Pilha
Pumping Lemma

Gramáticas Livre de Contexto (411 – 417 de 481)


Forma Normal de Chomsky
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos Demonstração.
Autômatos e
Linguagens
4. Converter as demais regras para uma forma apropriada.
Linguagens
Livres de I Trocar A → u1 u2 . . . uk , onde k ≥ 3 e cada ui é uma variável ou um terminal,
Contexto
Gramáticas Livre de
pelas regras: A → u1 A1 , A1 → u2 A2 , Ak−2 → uk−1 uk .
Contexto
Autômato com Pilha
I Se k = 2, trocar todo terminal ui pela variável Ui e adicionar a regra Ui → ui .
Pumping Lemma

Gramáticas Livre de Contexto (412 – 417 de 481)


Forma Normal de Chomsky
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Exemplo 8.9


Linguagens

Linguagens
Livres de 1. Adicionar uma nova variável inicial.
Contexto S0 → S
Gramáticas Livre de
Contexto S → ASA | aB S → ASA | aB
Autômato com Pilha A → B|S A → B|S
b|ε b|ε
Pumping Lemma
B → B →

Gramáticas Livre de Contexto (413 – 417 de 481)


Forma Normal de Chomsky
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Exemplo 8.9


Linguagens

Linguagens
Livres de 2. Eliminar regras B → ε (esq) e A → ε (dir).
Contexto
Gramáticas Livre de
S0 → S S0 → S
Contexto S → ASA | aB | a S → ASA | aB | a | SA | AS | S
B|S|ε
Autômato com Pilha
Pumping Lemma
A → A → B|S
B → b B → b

Gramáticas Livre de Contexto (414 – 417 de 481)


Forma Normal de Chomsky
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Exemplo 8.9


Linguagens

Linguagens
Livres de 3. Eliminar regras S → S (esq) e S0 → S (dir).
Contexto
Gramáticas Livre de
S0 → S S0 → ASA | aB | a | SA | AS
Contexto S → ASA | aB | a | SA | AS S → ASA | aB | a | SA | AS
Autômato com Pilha
Pumping Lemma
A → B|S A → B|S
B → b B → b

Gramáticas Livre de Contexto (415 – 417 de 481)


Forma Normal de Chomsky
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Exemplo 8.9


Linguagens

Linguagens
Livres de 3. Eliminar regras A → B (esq) e A → S (dir).
Contexto
Gramáticas Livre de
S0 → ASA | aB | a | SA | AS S0 → ASA | aB | a | SA | AS
Contexto S → ASA | aB | a | SA | AS S → ASA | aB | a | SA | AS
Autômato com Pilha
Pumping Lemma
A → b|S A → b | ASA | aB | a | SA | AS
B → b B → b

Gramáticas Livre de Contexto (416 – 417 de 481)


Forma Normal de Chomsky
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Exemplo 8.9


Linguagens

Linguagens
Livres de 4. Converter as demais regras.
Contexto
Gramáticas Livre de
S0 → AA1 | UB | a | SA | AS
Contexto S → AA1 | UB | a | SA | AS
Autômato com Pilha
Pumping Lemma
A → b | AA1 | UB | a | SA | AS
A1 → SA
U → a
B → b

Gramáticas Livre de Contexto (417 – 417 de 481)


Esquema Básico
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens Controle de
Linguagens Estados
Livres de
Contexto
Gramáticas Livre de
Contexto
a a b b
Entrada
Autômato com Pilha
Pumping Lemma x
x
z
Pilha

Autômato com Pilha (418 – 468 de 481)


Definição
ICCC 2024

Julliano
Nascimento

Fundamentos Definição 8.10


Matemáticos

Autômatos e
Um Autômato com Pilha (PDA – Pushdown Automaton) é uma sêxtupla
Linguagens P = hΣ, Γ, S, s0 , δ, Fi, onde:
Linguagens
Livres de I Σ : alfabeto de entrada;
Contexto
Gramáticas Livre de
Contexto
I Γ : alfabeto da pilha;
Autômato com Pilha
Pumping Lemma I S , ∅ : conjunto finito de estados;
I s0 ∈ S : estado inicial;
I δ : S × (Σ ∪ {ε}) × (Γ ∪ {ε}) → P(S × (Γ ∪ {ε})) : função de transição de
estados; e
I F ⊆ S : conjunto de estados finais (ou de aceitação).

Autômato com Pilha (419 – 468 de 481)


Processamento de um PDA
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens I δ(si , a, x) = {(s j , y), (sk , z)}.
Linguagens I Duas transições possíveis quando o autômato está no estado si , lendo o
Livres de
Contexto símbolo a de entrada e com x no topo da pilha.
Gramáticas Livre de
Contexto
Autômato com Pilha
I A transição (s j , y) ∈ δ(si , a, x) força o autômato a:
Pumping Lemma
1. Mudar o estado corrente de si para s j ;
2. Processar o símbolo a (avançar a cabeça de leitura da fita);
3. Remover o símbolo x do topo da pilha; e
4. Colocar o símbolo y no topo da pilha.

Autômato com Pilha (420 – 468 de 481)


Representação Gráfica
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
I a, b → c:
Autômatos e I a = ε : transição sem ler símbolo de entrada.
Linguagens
I b = ε : transição sem ler símbolo da pilha.
Linguagens
Livres de I c = ε : transição sem escrever na pilha.
Contexto
Gramáticas Livre de
Contexto
Autômato com Pilha

I δ(si , a, x) = {(s j , y)}.


Pumping Lemma

I O PDA muda do estado si para o s j , lê a da fita de entrada, desempilha x e


empilha y.
a,x y
si sj

Autômato com Pilha (421 – 468 de 481)


Representação Gráfica
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
I a, b → c:
Autômatos e I a = ε : transição sem ler símbolo de entrada.
Linguagens
I b = ε : transição sem ler símbolo da pilha.
Linguagens
Livres de I c = ε : transição sem escrever na pilha.
Contexto
Gramáticas Livre de
Contexto
Autômato com Pilha

I δ(si , ε, x) = {(si , ε)}.


Pumping Lemma

I Se a posição de entrada é ε, a transição não processa um símbolo de


entrada, mas desempilha o x.
ε,x ε

si

Autômato com Pilha (422 – 468 de 481)


Representação Gráfica
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
I a, b → c:
Autômatos e I a = ε : transição sem ler símbolo de entrada.
Linguagens
I b = ε : transição sem ler símbolo da pilha.
Linguagens
Livres de I c = ε : transição sem escrever na pilha.
Contexto
Gramáticas Livre de
Contexto
Autômato com Pilha

I δ(si , ε, ε) = {(si , x)}.


Pumping Lemma

I Se a posição de entrada é ε, a transição não processa um símbolo de


entrada, mas empilha o x.
ε,ε x

si

Autômato com Pilha (423 – 468 de 481)


Representação Gráfica
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
I a, b → c:
Autômatos e I a = ε : transição sem ler símbolo de entrada.
Linguagens
I b = ε : transição sem ler símbolo da pilha.
Linguagens
Livres de I c = ε : transição sem escrever na pilha.
Contexto
Gramáticas Livre de
Contexto
Autômato com Pilha

I δ(si , a, ε) = {(s j , ε)}.


Pumping Lemma

I Transição equivalente a transição de um DFA.


I Efeito determinado somente pelo estado corrente e pelo símbolo de entrada.
I Transição não consulta e não altera a pilha.
a,ε ε
si sj

Autômato com Pilha (424 – 468 de 481)


Processamento de um PDA
ICCC 2024

Julliano
Nascimento
I P = hΣ, Γ, S, sini , δ, Fi.
Fundamentos
Matemáticos I w = w1 w2 . . . wm , com wi ∈ Σ, i = 1, . . . , m : cadeia de entrada.
Autômatos e
Linguagens
I s0 , s1 , . . . , sm ∈ Q : sequência de estados.
Linguagens I u0 , u1 , . . . , um ∈ Γ∗ : sequência de conteúdos da pilha.
Livres de
Contexto
Gramáticas Livre de
Contexto
Autômato com Pilha
Pumping Lemma I P aceita a cadeia w se:
1. s0 = sini e u0 = ε.
I P começa no estado inicial e com a pilha vazia.
2. (si+1 , ui+1 ) ∈ δ(si , wi+1 , ui ), i = 0, . . . , m − 1, onde ui = av e ui+1 = bv0 para
a, b ∈ Γ ∪ {ε} e v, v0 ∈ Γ∗ .
I P move-se de acordo com o estado atual, a pilha e o próximo símbolo da
cadeia.
3. sm ∈ F.
I Um estado final ocorre no final da cadeia.

Autômato com Pilha (425 – 468 de 481)


Configuração de um PDA
ICCC 2024

Julliano
Nascimento

Fundamentos Definição 8.11


Matemáticos

Autômatos e I Tripla [si , w, α], onde si é o estado corrente, w ∈ Σ∗ é o conjunto de


Linguagens
símbolos ainda não processados e α é o conteúdo da pilha.
Linguagens
Livres de
Contexto
Gramáticas Livre de
Contexto
Notação
Autômato com Pilha
Pumping Lemma I 7−→ : define uma função de S × Σ+ em S × Σ∗ .
M

I [si , w, α] 7−→[s j , v, β] : configuração [s j , v, β] é obtida a partir de [si , w, α]


M

com apenas uma transição de estados.



I 7−→ : representa uma sequência de transições.
M

Autômato com Pilha (426 – 468 de 481)


Exemplo de Autômato com Pilha
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Exemplo 8.12
Autômatos e I P = hΣ = {a, b}, Γ = {x}, S = {s0 , s1 }, s0 , δ, F = {s0 , s1 }i, onde:
Linguagens
I δ(s0 , a, ε) = {(s0 , x)}
Linguagens
Livres de I δ(s0 , b, x) = {(s1 , ε)}
Contexto
Gramáticas Livre de
I δ(s1 , b, x) = {(s1 , ε)}
Contexto
Autômato com Pilha I L(P) = {ai bi | i ≥ 0}
Pumping Lemma

I [s0 , aabb, ε] 7−→[s0 , abb, x] 7−→[s0 , bb, xx] 7−→[s1 , b, x] 7−→[s1 , ε, ε]


a,ε x b,x ε

b,x ε
s0 s1

Autômato com Pilha (427 – 468 de 481)


Linguagem aceita por um PDA
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens Definição 8.13
Linguagens
Livres de
Seja P = hΣ, Γ, S, s0 , δ, Fi um PDA. Uma cadeia w ∈ Σ∗ é aceita por P se existe
Contexto
Gramáticas Livre de
um processamento
[s0 , w, ε] 7−→[si , ε, ε],
Contexto

Autômato com Pilha
Pumping Lemma

onde si ∈ F. A linguagem de P, denotada L(P), é o conjunto de cadeias aceitas


por P.

Autômato com Pilha (428 – 468 de 481)


Exemplo de Autômato com Pilha
ICCC 2024

Julliano
Nascimento Exemplo 8.14
Fundamentos I L = {wcwR | w ∈ {a, b}∗ }.
Matemáticos
I P = hΣ = {a, b, c}, Γ = {a, b}, S = {s0 , s1 }, s0 , δ, F = {s1 }i, onde:
Autômatos e
Linguagens
δ(s0 , a, ε) = {(s0 , a)}
Linguagens
Livres de δ(s0 , b, ε) = {(s0 , b)}
Contexto δ(s0 , c, ε) = {(s1 , ε)}
δ(s1 , a, a) = {(s1 , ε)}
Gramáticas Livre de
Contexto

δ(s1 , b, b) = {(s1 , ε)}


Autômato com Pilha
Pumping Lemma

I Processamento da cadeia abcba:


[s0 , abcba, ε] 7−→[s0 , bcba, a] 7−→[s0 , cba, ba]
7−→[s1 , ba, ba] 7−→[s1 , a, a] 7−→[s1 , ε, ε]

b,ε b b,b ε
a,ε a a,a ε

c,ε ε
s0 s1

Autômato com Pilha (429 – 468 de 481)


Transições compatíveis
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Definição 8.15


Linguagens
I Duas transições (s j , c) ∈ δ(si , u, a) e (sk , d) ∈ δ(si , v, b) são compatíveis se
Linguagens
Livres de
Contexto
alguma das condições a seguir é satisfeita:
Gramáticas Livre de
Contexto
1. u = v e a = b;
Autômato com Pilha 2. u = v e a = ε ou b = ε;
a = b e u = ε ou v = ε;
Pumping Lemma
3.
4. u = ε ou v = ε e a = ε ou b = ε;
I Transições compatíveis podem ser aplicadas para a mesma configuração.

Autômato com Pilha (430 – 468 de 481)


PDA Determinístico
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens

Linguagens Definição 8.16


Livres de
Contexto I Um PDA é determinístico se existe no máximo uma transição para cada
Gramáticas Livre de
Contexto
Autômato com Pilha
combinação de estado, símbolo de entrada e símbolo no topo da pilha.
Pumping Lemma
I Um PDA é determinístico se não contém transições compatíveis distintas.

Autômato com Pilha (431 – 468 de 481)


Exemplo de PDA não Determinístico
ICCC 2024

Julliano
Nascimento

Fundamentos Exemplo 8.17


Matemáticos

Autômatos e
I L = {ai | i ≥ 0} ∪ {ai bi | i ≥ 0}.
Linguagens I A transição ε a partir de s0 permite chegar a s2 depois de processar toda a
Linguagens
Livres de
cadeia de entrada.
Contexto I Esta transição introduz o não determinismo ao PDA.
Gramáticas Livre de
Contexto
a,ε a b,a ε
Autômato com Pilha
Pumping Lemma
b,a ε
s0 s1

ε,ε ε

ε,a ε
s2

Autômato com Pilha (432 – 468 de 481)


Exemplo de PDA não Determinístico
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens
Exemplo 8.18
Linguagens I L = {wwR | w ∈ {a, b}∗ }.
Livres de
Contexto I O não determinismo permite ao PDA “adivinhar” quando a metade da
Gramáticas Livre de
Contexto cadeia de entrada foi processada.
Autômato com Pilha
Pumping Lemma b,ε b b,b ε
a,ε a a,a ε

ε,ε ε
s0 s1

Autômato com Pilha (433 – 468 de 481)


Processamento de um PDA
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens

Linguagens
Livres de
Contexto
I Definição formal não contém mecanismos para testar pilha vazia.
Gramáticas Livre de
Contexto I Um PDA pode simular esse mecanismo com o símbolo $:
Autômato com Pilha
Pumping Lemma I $ é o primeiro símbolo a ser colocado na pilha.
I Quando o PDA ler novamente o $, então a pilha está vazia.

Autômato com Pilha (434 – 468 de 481)


Exemplo de PDA não Determinístico
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Exemplo 8.19


Linguagens

Linguagens I L = {0n 1n | n ≥ 0}.


Livres de
Contexto
Gramáticas Livre de
I P = hΣ, Γ, S, s0 , δ, Fi, onde:
I S = {s0 , s1 , s2 , s3 }.
Contexto
Autômato com Pilha
Pumping Lemma I Σ = {0, 1}.
I Γ = {0, $}.
I F = {s0 , s3 }.

Autômato com Pilha (435 – 468 de 481)


Exemplo de PDA não Determinístico
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Exemplo 8.19


Linguagens

Linguagens I δ é definida na tabela a seguir, onde entradas em branco significam ∅:


Livres de
Contexto
Gramáticas Livre de
Contexto
Entrada 0 1 ε
Autômato com Pilha Pilha 0 $ ε 0 $ ε 0 $ ε
Pumping Lemma
s0 {(s1 , $)}
s1 {(s1 , 0)} {(s2 , ε)}
s2 {(s2 , ε)} {(s3 , ε)}
s3

Autômato com Pilha (436 – 468 de 481)


Exemplo de PDA não Determinístico
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e Exemplo 8.19


Linguagens

Linguagens I Representação gráfica:


Livres de
Contexto
ε,ε $
Gramáticas Livre de
Contexto s0 s1
0, ε
Autômato com Pilha
0
1, 0 ε
Pumping Lemma

1, 0 ε
ε,$ ε
s3 s2

Autômato com Pilha (437 – 468 de 481)


Exemplo de PDA não Determinístico
ICCC 2024

Julliano
Nascimento
Exemplo 8.20
Fundamentos
Matemáticos
I L = {ai b j ck | i, j, k ≥ 0 e i = j ou i = k}
Autômatos e I PDA lê e empilha todos os a’s.
Linguagens
I Os símbolos a’s devem ser ‘casados’ com b’s ou c’s?
Linguagens I Não determinismo é essencial para reconhecer L!
Livres de
Contexto
Gramáticas Livre de
b,a ε c,ε ε
Contexto

ε,$ ε
Autômato com Pilha
Pumping Lemma
s0 s2 s3

ε
ε,ε $ ε,ε

ε,ε ε ε,ε ε ε,$ ε


s1 s4 s5 s6

a,ε a b,ε ε c,a ε

Autômato com Pilha (438 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens

Linguagens
Livres de
Contexto
Teorema 8.21
Gramáticas Livre de
Contexto
Uma linguagem é livre de contexto se e somente se um autômato com pilha a
Autômato com Pilha
Pumping Lemma
reconhece.

Autômato com Pilha (439 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento

Fundamentos
Lema 8.22
Matemáticos Se uma linguagem é livre de contexto, então um autômato com pilha a
Autômatos e
Linguagens
reconhece.
Linguagens
Livres de Esquema da Prova
Contexto
Gramáticas Livre de
Contexto
I L : LLC.
Autômato com Pilha
Pumping Lemma I G : GLC que gera L.
I Conversão de G em um PDA P.
I Se G gera w, então P aceita w.
I P determina se existe uma derivação para w.
I Quais produções devem ser utilizadas na derivação?
I P deve ser não determinístico.

Autômato com Pilha (440 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos
Funcionamento do PDA P
Autômatos e 1. Variável inicial na pilha.
Linguagens

Linguagens
2. Série de cadeias intermediárias: substituições uma a uma.
Livres de I Pode chegar a uma cadeia que só contém símbolos terminais.
Contexto
Gramáticas Livre de I P aceita essa cadeia se é igual à cadeia w.
Contexto
Autômato com Pilha
Pumping Lemma
I Tratamento das cadeias intermediárias:
I P tem acesso somente ao topo da pilha, que pode ser um terminal ou uma
variável.
I Retirar parte da cadeia intermediária (primeira variável) da pilha.
I ‘Casar’ qualquer terminal anterior com os símbolos da cadeia de entrada.

Autômato com Pilha (441 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento

Fundamentos
Exemplo 8.23
Matemáticos

Autômatos e
I PDA P representando a cadeia intermediária 01A1A0:
Linguagens

Linguagens
Livres de Controle
Contexto
Gramáticas Livre de
Contexto
A
Autômato com Pilha
1
Pumping Lemma
0 1 1 0 0 1
A
0
$
0 1 A 1 A 0

Autômato com Pilha (442 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos Funcionamento do PDA P
Autômatos e
Linguagens 1. Variável inicial na pilha.
Linguagens
Livres de 2. Repetir os passos:
Contexto
Gramáticas Livre de
Contexto
2.1 Se topo da pilha é variável A, escolher (não determinístico) uma produção
Autômato com Pilha para A e substituir A pelo lado direito da produção.
Pumping Lemma

2.2 Se topo da pilha é terminal a, ler próximo símbolo da cadeia de entrada e


comparar com a. Se iguais, repetir, senão rejeitar.
2.3 Se topo da pilha é o símbolo $, ir para estado final. Se cadeia de entrada foi
toda lida, então foi aceita.

Autômato com Pilha (443 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Demonstração.
Fundamentos
Matemáticos I Construção do PDA P = hΣ, Γ, Q, q0 , δ, Fi:
Autômatos e I q, r ∈ Q.
Linguagens
I a ∈ Σε .
Linguagens
Livres de I s ∈ Γε .
Contexto
Gramáticas Livre de
I P passa do estado q para o r ⇒ Q lê a e desempilha s.
Contexto
Autômato com Pilha
Pumping Lemma

Autômato com Pilha (444 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Demonstração.
Fundamentos
Matemáticos I (r, w) ∈ δ(q, a, s) ⇒ q é o estado do PDA, a é o próximo símbolo de entrada
Autômatos e e s é o topo da pilha.
Linguagens
I O PDA deve ler a, desempilhar s, empilhar a cadeia w e ir para o estado r.
Linguagens
Livres de
Contexto
Gramáticas Livre de
I Exemplo para (r, xyz) ∈ δ(q, a, s):
Contexto
Autômato com Pilha
Pumping Lemma a,s z
q q q1

a,s xyz ε,ε y

r r q2
ε,ε x

Autômato com Pilha (445 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Demonstração.
Fundamentos
Matemáticos I Empilhar toda a cadeia w = w1 . . . wl ao mesmo tempo:
Autômatos e I Novos estados q1 , . . . , ql−1 e transição δ(q, a, s) tal que:
Linguagens

Linguagens
Livres de δ(q, a, s) contém (q1 , wl ),
Contexto
Gramáticas Livre de
δ(q1 , ε, ε) = {(q2 , wl−1 )},
Contexto
δ(q2 , ε, ε) = {(q3 , wl−2 )},
..
Autômato com Pilha
Pumping Lemma
.
δ(ql−1 , ε, ε) = {(r, wl )}.

Autômato com Pilha (446 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Demonstração.
Fundamentos
Matemáticos I PDA P = hΣ, Γ, Q, q0 , δ, Fi.
Autômatos e I Q = {qini , q0 , q, q f im } ∪ E.
Linguagens
I E : novos estados para a notação simplificada para transições.
Linguagens
Livres de I q0 = qini .
Contexto
Gramáticas Livre de
I F = {q f im }.
Contexto
Autômato com Pilha
I δ(qini , ε, ε) = {(q, S$)}.
Pumping Lemma
I A pilha é iniciada com $ e a variável inicial S.
I δ(q, ε, A) = {(q, u)}, onde (A → u) ∈ R.
I O topo da pilha contém uma variável.
I δ(q, a, a) = {(q, ε)}.
I O topo da pilha contém um terminal.
I δ(q, ε, $) = {(q f im , ε)}.
I Marcador de pilha vazia ($) está no topo.


Autômato com Pilha (447 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Demonstração.
Fundamentos
Matemáticos I Diagrama de estados para o PDA P:
Autômatos e
Linguagens
qini q' q qfim
Linguagens ε,ε $ ε,ε S ε,$ ε
Livres de
Contexto
Gramáticas Livre de
Contexto
ε,A w
Autômato com Pilha a,a ε
Pumping Lemma

Autômato com Pilha (448 – 468 de 481)


Aplicação do Lema
ICCC 2024

Julliano
Nascimento Exemplo 8.24
Fundamentos
Matemáticos
I GLC G = ({S, T}, {a, b}, {S → aTb | b, T → Ta | ε}, S).
Autômatos e I Diagrama de estados do PDA que simula G:
Linguagens

Linguagens
Livres de
ε,ε T
Contexto
q1 q2 q3

ε,ε
Gramáticas Livre de
Contexto

b
Autômato com Pilha a

ε,T

T
Pumping Lemma
ε, ε

ε,S
a
qini q' q qfim
ε,ε $ ε,ε S ε,$ ε

ε,S b
ε,T ε
a,a ε
b,b ε

Autômato com Pilha (449 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Lema 8.25
Se um autômato com pilha reconhece uma linguagem, então ela é livre de
Fundamentos
Matemáticos contexto.
Autômatos e
Linguagens
Esquema da Prova
Linguagens
Livres de
Contexto I P : PDA.
Gramáticas Livre de
Contexto
Autômato com Pilha
I L : linguagem aceita por P.
Pumping Lemma
I Conversão de P em uma GLC G que gera L.
I P = hΣ, Γ, Q, qini , δ, Fi.
I G = (V, Σ, R, S).
I Se P aceita a cadeia w, então G descreve w.
I Apq ∈ V, ∀ p, q ∈ Q.
I Apq gera todas as cadeias que P reconhece entre os estados p e q, deixando
a pilha em q na mesma condição que em p.

Autômato com Pilha (450 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Lema 8.25
Se um autômato com pilha reconhece uma linguagem, então ela é livre de
Fundamentos
Matemáticos contexto.
Autômatos e
Linguagens
Esquema da Prova
Linguagens
Livres de
Contexto I Características de P:
Gramáticas Livre de
Contexto I F = {q f im }.
Autômato com Pilha
Pumping Lemma I Pilha é esvaziada antes de ir para estado q f im .
I A cada transição um símbolo é empilhado ou desempilhado, mas nunca as
duas ações ao mesmo tempo.
I Transição com as duas ações:
I Trocar por duas novas transições que passam por um novo estado.
I Transição sem ação na pilha:
I Trocar por duas novas transições que empilham e desempilham um símbolo
arbitrário.

Autômato com Pilha (451 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Lema 8.25
Se um autômato com pilha reconhece uma linguagem, então ela é livre de
Fundamentos
Matemáticos contexto.
Autômatos e
Linguagens
Esquema da Prova
Linguagens
Livres de
Contexto I Funcionamento de P ao reconhecer a cadeia x ∈ Σ∗ :
Gramáticas Livre de
Contexto I Pilha inicialmente vazia.
Autômato com Pilha
Pumping Lemma I Empilhar é a primeira ação de P em x.
I Desempilhar é a última ação de P em x.

Autômato com Pilha (452 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Lema 8.25
Se um autômato com pilha reconhece uma linguagem, então ela é livre de
Fundamentos
Matemáticos contexto.
Autômatos e
Linguagens
Esquema da Prova
Linguagens
Livres de
Contexto I Funcionamento de P ao reconhecer a cadeia x ∈ Σ∗ :
Gramáticas Livre de
Contexto I Símbolo desempilhado no final é o mesmo empilhado no início:
Autômato com Pilha
Pumping Lemma I Pilha fica vazia apenas antes e após o processamento de x.
I Apq → aArs b, onde a e b são o primeiro e o último, respectivamente, símbolo
processado (de x) e r é o estado que segue p e s é o que precede q.

Autômato com Pilha (453 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Lema 8.25
Se um autômato com pilha reconhece uma linguagem, então ela é livre de
Fundamentos
Matemáticos contexto.
Autômatos e
Linguagens
Esquema da Prova
Linguagens
Livres de
Contexto I Processamento de P equivalente Apq → aArs b:
Gramáticas Livre de
Contexto
Autômato com Pilha
Altura
Pumping Lemma da Pilha

Gerado
por Apq

r s
p q
a b Cadeia
Gerado de Entrada
por Ars

Autômato com Pilha (454 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Lema 8.25
Se um autômato com pilha reconhece uma linguagem, então ela é livre de
Fundamentos
Matemáticos contexto.
Autômatos e
Linguagens
Esquema da Prova
Linguagens
Livres de
Contexto I Funcionamento de P ao reconhecer a cadeia x ∈ Σ∗ :
Gramáticas Livre de
Contexto I Símbolo desempilhado no final é diferente do empilhado no início:
Autômato com Pilha
Pumping Lemma I Em algum momento o símbolo inicial é desempilhado e a pilha fica vazia.
I Apq → Apr Arq , onde r é o estado em que a pilha fica vazia.

Autômato com Pilha (455 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Lema 8.25
Se um autômato com pilha reconhece uma linguagem, então ela é livre de
Fundamentos
Matemáticos contexto.
Autômatos e
Linguagens
Esquema da Prova
Linguagens
Livres de
Contexto I Processamento de P equivalente a Apq → Apr Arq :
Gramáticas Livre de
Contexto
Altura
Autômato com Pilha
Pumping Lemma
da Pilha

Gerado
por Apq

p r q
Cadeia
Gerado Gerado de Entrada
por Apr por Arq

Autômato com Pilha (456 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento

Fundamentos Demonstração.
Matemáticos

Autômatos e I P = hΣ, Γ, Q, qini , δ, {q f im }i.


Linguagens

Linguagens I G = (V, Σ, R, S) = ({Apq | p, q ∈ Q}, Σ, R, Aqini q f im ).


Livres de
Contexto
Gramáticas Livre de
Contexto
I Produções:
Autômato com Pilha
Pumping Lemma I ∀ p, q, r, s ∈ Q, t ∈ Γ, e a, b ∈ Σε ,
(r, t) ∈ δ(p, a, ε) e (q, ε) ∈ δ(s, b, t) ⇒ (Apq → aArs b) ∈ R.
I ∀ p, q, r ∈ Q ⇒ (Apq → Apr Arq ) ∈ R.
I ∀ p ∈ Q ⇒ (App → ε) ∈ R.


Autômato com Pilha (457 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento

Fundamentos
Matemáticos

Autômatos e
Linguagens

Linguagens
Livres de Lema 8.26
Contexto
Gramáticas Livre de A variável Apq gera a cadeia x se e somente se P inicia o processamento de x
Contexto
Autômato com Pilha no estado p, com pilha vazia, e encerra na estado q, com pilha vazia.
Pumping Lemma

Autômato com Pilha (458 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Lema 8.27
Fundamentos
Se a variável Apq gera a cadeia x, então P inicia o processamento de x no
Matemáticos estado p, com pilha vazia, e encerra no estado q, com pilha vazia.
Autômatos e
Linguagens
Demonstração.
Linguagens

Livres de
Contexto
I Indução no número de passos da derivação Apq ⇒ x:
Gramáticas Livre de
Contexto I Base – A derivação tem apenas um passo:
Autômato com Pilha
Pumping Lemma I Usa uma produção cujo lado direito não tem variáveis (App → ε).
I P inicia com pilha vazia, processa ε no estado p e continua em p com a pilha
vazia.

Autômato com Pilha (459 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Lema 8.27
Fundamentos
Se a variável Apq gera a cadeia x, então P inicia o processamento de x no
Matemáticos estado p, com pilha vazia, e encerra no estado q, com pilha vazia.
Autômatos e
Linguagens
Demonstração.
Linguagens

Livres de
Contexto
I Indução no número de passos da derivação Apq ⇒ x:
Gramáticas Livre de
Contexto I Hipótese de indução – Suponha verdadeiro para um número de
Autômato com Pilha
Pumping Lemma derivações no máximo k ≥ 1.

Autômato com Pilha (460 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Lema 8.27
Fundamentos
Se a variável Apq gera a cadeia x, então P inicia o processamento de x no
Matemáticos estado p, com pilha vazia, e encerra no estado q, com pilha vazia.
Autômatos e
Linguagens
Demonstração.
Linguagens

Livres de
Contexto
I Indução no número de passos da derivação Apq ⇒ x:
Gramáticas Livre de ∗
Contexto
Autômato com Pilha
I Passo da indução – Suponha que Apq ⇒ x em k + 1 passos. O primeiro
Pumping Lemma passo pode ser:
1. Apq → aArs b:

I x = ayb e Ars ⇒ y em k passos (H.I.).
I (Apq → aArs b) ∈ R ⇒ (r, t) ∈ δ(p, a, ε) e (q, ε) ∈ δ(s, b, t).

Autômato com Pilha (461 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Lema 8.27
Fundamentos
Se a variável Apq gera a cadeia x, então P inicia o processamento de x no
Matemáticos estado p, com pilha vazia, e encerra no estado q, com pilha vazia.
Autômatos e
Linguagens
Demonstração.
Linguagens

Livres de
Contexto
I Indução no número de passos da derivação Apq ⇒ x:
Gramáticas Livre de ∗
Contexto
Autômato com Pilha
I Passo da indução – Suponha que Apq ⇒ x em k + 1 passos. O primeiro
Pumping Lemma passo pode ser:
2. Apq → Apr Arq :
∗ ∗
I x = yz, Apr ⇒ y em no máximo k passos e Arq ⇒ z em no máximo k passos
(H.I.).
I P inicia o processamento de y no estado p, com pilha vazia, e encerra no
estado r, com pilha vazia.
I P inicia o processamento de z no estado r, com pilha vazia, e encerra no
estado q, com pilha vazia.


Autômato com Pilha (462 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Lema 8.28
Fundamentos
Se P inicia o processamento de x no estado p, com pilha vazia, e encerra no
Matemáticos estado q, com pilha vazia, então a variável Apq gera a cadeia x.
Autômatos e
Linguagens
Demonstração.
Linguagens
Livres de
Contexto
I Indução no número de transições, entre p e q, que P usa para reconhecer
Gramáticas Livre de
Contexto x (inicia e encerra com pilha vazia):
Autômato com Pilha
Pumping Lemma
I Base – Nenhuma transição:

I p = q e App ⇒ x. Logo, x = ε.
I Por construção, (App → ε) ∈ R.

Autômato com Pilha (463 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Lema 8.28
Fundamentos
Se P inicia o processamento de x no estado p, com pilha vazia, e encerra no
Matemáticos estado q, com pilha vazia, então a variável Apq gera a cadeia x.
Autômatos e
Linguagens
Demonstração.
Linguagens
Livres de
Contexto
I Indução no número de transições, entre p e q, que P usa para reconhecer
Gramáticas Livre de
Contexto x (inicia e encerra com pilha vazia):
Autômato com Pilha
Pumping Lemma I Hipótese de indução – Suponha verdadeiro para um número de
transições no máximo k ≥ 0.

Autômato com Pilha (464 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Lema 8.28
Fundamentos
Se P inicia o processamento de x no estado p, com pilha vazia, e encerra no
Matemáticos estado q, com pilha vazia, então a variável Apq gera a cadeia x.
Autômatos e
Linguagens
Demonstração.
Linguagens
Livres de
Contexto
I Indução no número de transições, entre p e q, que P usa para reconhecer
Gramáticas Livre de
Contexto x (inicia e encerra com pilha vazia):
Autômato com Pilha
Pumping Lemma
I Passo da indução – Suponha que P processa x entre p e q usando k + 1
transições:
1. Pilha vazia apenas no início e no final do processamento:
I t é empilhado na primeira transição e desempilhado na última (a é o primeiro
símbolo da entrada, b o último, r é o após a primeira transição e s o anterior à
última).
I (r, t) ∈ δ(p, a, ε) e (q, ε) ∈ δ(s, b, t) ⇒ (Apq → aArs b) ∈ R.

Autômato com Pilha (465 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Lema 8.28
Fundamentos
Se P inicia o processamento de x no estado p, com pilha vazia, e encerra no
Matemáticos estado q, com pilha vazia, então a variável Apq gera a cadeia x.
Autômatos e
Linguagens
Demonstração.
Linguagens
Livres de
Contexto
I Indução no número de transições, entre p e q, que P usa para reconhecer
Gramáticas Livre de
Contexto x (inicia e encerra com pilha vazia):
Autômato com Pilha
Pumping Lemma
I Passo da indução – Suponha que P processa x entre p e q usando k + 1
transições:
1. Pilha vazia apenas no início e no final do processamento:
I Se P reconhece x = ayb usando k + 1 transições entre p e q, então P reconhece
y usando (k + 1) − 2 = k − 1 transições entre r e s (H.I.).
∗ ∗
I Ars ⇒ y por H.I. e Apq ⇒ x.

Autômato com Pilha (466 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento Lema 8.28
Fundamentos
Se P inicia o processamento de x no estado p, com pilha vazia, e encerra no
Matemáticos estado q, com pilha vazia, então a variável Apq gera a cadeia x.
Autômatos e
Linguagens
Demonstração.
Linguagens
Livres de
Contexto
I Indução no número de transições, entre p e q, que P usa para reconhecer
Gramáticas Livre de
Contexto x (inicia e encerra com pilha vazia):
Autômato com Pilha
Pumping Lemma
I Passo da indução – Suponha que P processa x entre p e q usando k + 1
transições:
2. Pilha vazia em algum estado intermediário:
I r é o estado intermediário em que a pilha fica vazia.
I P usa no máximo k transições entre p e r e entre r e q.
I x = yz.
∗ ∗
I Por H.I. Apr ⇒ y e Arq ⇒ z.

I Como (Apq → Apr Arq ) ∈ R, então Apq ⇒ x.


Autômato com Pilha (467 – 468 de 481)


Equivalência com GLC
ICCC 2024

Julliano
Nascimento
Corolário 8.29
Fundamentos Toda linguagem regular é livre de contexto.
Matemáticos

Autômatos e
Linguagens
Demonstração.
Linguagens
Livres de
I Toda linguagem regular é reconhecida por um autômato finito.
Contexto
Gramáticas Livre de
I Todo autômato finito é um autômato com pilha que simplesmente ignora a
Contexto
Autômato com Pilha sua pilha.
Pumping Lemma

I Toda linguagem regular é também livre de contexto.

Linguagens Linguagens
Regulares Livres de
Contexto

Autômato com Pilha (468 – 468 de 481)


Pumping Lemma para LLC
ICCC 2024

Julliano
Nascimento
Lema 8.30
Se L é uma linguagem livre de contexto, então existe um número p tal que
Fundamentos
Matemáticos cada w = uvxyz ∈ L, com |w| ≥ p, satisfaz:
Autômatos e
Linguagens
1. uvi xyi z ∈ L, i ≥ 0,
Linguagens
Livres de
Contexto
Gramáticas Livre de
2. |vy| > 0,
Contexto
Autômato com Pilha
Pumping Lemma
3. |vxy| ≤ p.

I p é chamado de pumping length.

I Condição 2 indica que v ou y não é a cadeia vazia.

I Condição 3 indica que v, x e y juntos têm comprimento máximo p.

Pumping Lemma (469 – 481 de 481)


Pumping Lemma para LLC
ICCC 2024

Julliano Esquema da Prova:


Nascimento
I L(G) : Linguagem gerada pela GLC G.
Fundamentos
Matemáticos
I s ∈ L(G), tal que s é “suficientemente longa”.
Autômatos e
Linguagens I s pode ser quebrada em cinco partes: uvxyz.
Linguagens
Livres de I Árvore de derivação de s contém algum caminho, da raiz até uma folha,
Contexto
Gramáticas Livre de
que repete uma variável.
Contexto
Autômato com Pilha
Pumping Lemma
I Segundo e quarto pedaços (v e y) podem ser repetidos.
S S S

R R R

R R
x
u z u v x y z u v y z
R

v x y

Pumping Lemma (470 – 481 de 481)


Pumping Lemma para LLC
ICCC 2024
Demonstração.
Julliano
Nascimento
I G = (V, Σ, R, S) : Gramática livre de contexto.

Fundamentos I L(G) : Linguagem gerada por G.


Matemáticos

Autômatos e
Linguagens
I b ≥ 2 número máximo de símbolos no lado direito de uma produção.
Linguagens I Um nó tem no máximo b filhos.
Livres de
Contexto I No máximo b folhas no nível 1, b2 no nível 2,. . . , bh no nível h.
Gramáticas Livre de
Contexto
Autômato com Pilha
I Árvore de altura h ⇒ Cadeia de comprimento máximo bh
Pumping Lemma

Pumping Lemma (471 – 481 de 481)


Pumping Lemma para LLC
ICCC 2024
Demonstração.
Julliano
Nascimento
I s ∈ L(G).

Fundamentos I τ 7→ Árvore de derivação de s, com o menor número possível de nós.


Matemáticos

Autômatos e I p = b|V|+2
Linguagens

Linguagens I b ≥ 2 ⇒ p > b|V|+1


Livres de
Contexto I |s| ≥ p ⇒ τ tem altura mínima |V| + 2.
Gramáticas Livre de
Contexto I O caminho mais longo em τ tem no mínimo |V| + 2 nós, onde pelo menos
Autômato com Pilha
Pumping Lemma |V| + 1 são variáveis (só folhas são terminais).
I Alguma variável aparece mais de uma vez nesse caminho.
I R é uma variável dentre as |V| + 1 variáveis mais inferiores do caminho.

Pumping Lemma (472 – 481 de 481)


Pumping Lemma para LLC
ICCC 2024
Demonstração.
Julliano
Nascimento
S S S

Fundamentos R R R
Matemáticos

Autômatos e
Linguagens R R
x
Linguagens
u z u v x y z u v y z
Livres de R
Contexto
Gramáticas Livre de
Contexto v x y
Autômato com Pilha
Pumping Lemma

Pumping Lemma (473 – 481 de 481)


Pumping Lemma para LLC
ICCC 2024
Demonstração.
Julliano
Nascimento 1. uvi xyi z ∈ L, i ≥ 0,
Fundamentos
I Cada ocorrência de R gera uma subárvore com parte da cadeia s.
Matemáticos I Ocorrência superior de R (subárvore τ1 ) gera a cadeia vxy.
Autômatos e
Linguagens
I Ocorrência inferior de R (subárvore τ2 ) gera a cadeia x.
I Subárvores τ1 e τ2 são geradas pela mesma variável.
Linguagens
Livres de I Substituir uma pela outra gera árvore de derivação válida.
Contexto
Gramáticas Livre de
I Troca da menor pela maior repetidas vezes gera árvores de derivação para
Contexto
Autômato com Pilha
cadeias uvi xyi z, para i > 1.
Pumping Lemma I Troca da maior pela menor gera a cadeia uxz.

2. |vy| > 0,

3. |vxy| ≤ p.

Pumping Lemma (474 – 481 de 481)


Pumping Lemma para LLC
ICCC 2024
Demonstração.
Julliano
Nascimento 1. uvi xyi z ∈ L, i ≥ 0,
Fundamentos
Matemáticos
2. |vy| > 0,
Autômatos e I v e y não podem ser ε ao mesmo tempo.
Linguagens
I Árvore obtida ao substituir a menor subárvore pela maior teria menos nós
Linguagens
Livres de do que τ e ainda geraria a cadeia s.
Contexto
Gramáticas Livre de
Contexto
I Contradição, pois τ foi escolhida com o mínimo possível de nós.
Autômato com Pilha
Pumping Lemma
3. |vxy| ≤ p.

Pumping Lemma (475 – 481 de 481)


Pumping Lemma para LLC
ICCC 2024
Demonstração.
Julliano
Nascimento 1. uvi xyi z ∈ L, i ≥ 0,
Fundamentos
Matemáticos
2. |vy| > 0,
Autômatos e
Linguagens 3. |vxy| ≤ p.
Linguagens I Ocorrência superior de R gera vxy.
Livres de
Contexto I Ocorrências de R entre as |V| + 1 variáveis mais inferiores do caminho.
Gramáticas Livre de
Contexto
Autômato com Pilha
I Subárvore com R como raiz tem altura máxima |V| + 2.
Pumping Lemma
I Cadeia gerada por R tem comprimento máximo b|V|+2 = p.

Pumping Lemma (476 – 481 de 481)


Pumping Lemma para LLC
ICCC 2024
Demonstração.
Julliano
Nascimento

Fundamentos
1 S
Matemáticos

Autômatos e
Linguagens
R
Linguagens |V|
Livres de
Contexto
Gramáticas Livre de
Contexto R
Autômato com Pilha
Pumping Lemma

1 u v x y z

Pumping Lemma (477 – 481 de 481)


Pumping Lemma para LLC
ICCC 2024

Julliano
Nascimento
Exemplo 8.31
Fundamentos
Matemáticos L = {an bn cn | n ≥ 0} não é livre de contexto:
Autômatos e
Linguagens I Suponha que L é LLC.
Linguagens
Livres de
I p : pumping length.
Contexto
Gramáticas Livre de
Contexto
I s = ap bp cp pode ser escrita como s = uvxyz
Autômato com Pilha
Pumping Lemma I v e y contém, cada um, apenas um tipo de símbolo:
I uv2 xy2 z não contém o mesmo número de a´s, b´s e c´s.
I v e/ou y contém mais de um tipo de símbolo:
I uv2 xy2 z não contém os símbolos a´s, b´s e c´s na ordem correta.
I Dadas as contradições, L não é LLC.

Pumping Lemma (478 – 481 de 481)


Pumping Lemma para LLC
ICCC 2024

Julliano
Nascimento
Exemplo 8.32
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
Matemáticos
I Supor L LLC, p é o pumping length e s = ap bp cp = uvxyz.
Autômatos e
Linguagens I v e y contém, cada um, apenas um tipo de símbolo:
Linguagens I a não aparece em v ou y:
Livres de
Contexto I uv0 xy0 z = uxz contém mesmo número de a´s que s, mas menos b´s ou c´s.
Gramáticas Livre de
Contexto I b não aparece em v ou y:
Autômato com Pilha
Pumping Lemma I a ou c deve aparecer em v ou y (não podem ser ε).
I Se a aparece, a cadeia uv2 xy2 z contém mais a´s do que b´s.
I Se c aparece, a cadeia uv0 xy0 z contém mais b´s do que c´s.
I c não aparece em v ou y:
I A cadeia uv2 xy2 z = uxz contém mais b´s do que c´s.
I v e y contém mais de um tipo de símbolo:
I uv2 xy2 z não contém a´s, b´s e c´s na ordem correta.
I Dadas as contradições, L não é LLC.

Pumping Lemma (479 – 481 de 481)


Pumping Lemma para LLC
ICCC 2024

Julliano
Exemplo 8.33
Nascimento
L = {ww | w ∈ {0, 1}∗ } não é livre de contexto:
Fundamentos
Matemáticos I Suponha que L é LLC.
Autômatos e I p 7→ pumping length.
Linguagens

Linguagens
Livres de
I Escolha da cadeia s é menos óbvia.
Contexto
Gramáticas Livre de
Contexto I s = 0p 10p 1 ⇒ não leva a uma contradição:
Autômato com Pilha
Pumping Lemma 0p1 0p1
000. . .000 0 1 0 000. . .0001
u v x y z

Pumping Lemma (480 – 481 de 481)


Pumping Lemma para LLC
ICCC 2024

Julliano
Exemplo 8.33
Nascimento
L = {ww | w ∈ {0, 1}∗ } não é livre de contexto:
Fundamentos
Matemáticos I Suponha que L é LLC.
Autômatos e I p 7→ pumping length.
Linguagens

Linguagens
Livres de
I Escolha da cadeia s é menos óbvia.
Contexto
Gramáticas Livre de
Contexto I s = 0p 1p 0p 1p = uvxyz e |vxy| ≤ p.
Autômato com Pilha
Pumping Lemma
I Se vxy aparece só na primeira metade de s, em uv2 xy2 z o 1 aparece duas
vezes na segunda metade.
I Se vxy aparece só na segunda metade de s, em uv2 xy2 z o 0 aparece mais
na segunda do que na primeira metade.
I Se vxy aparece nas duas metades, em 0p 1i 0 j 1p as variáveis i e j não
podem ser iguais a p ao mesmo tempo.
I Dadas as contradições, L não é LLC.
Pumping Lemma (481 – 481 de 481)

Você também pode gostar