Vous êtes sur la page 1sur 153

Revisão de conceitos: pags. 21 a 91.

Anotado por Ricardo Terra (DCC/UFLA)

Linguagens  Formais  e  
Autômatos

Paulo  Blauth  Menezes


Linguagens Formais e Autômatos

P. Blauth Menezes

1 Introdução e Conceitos Básicos


2 Linguagens e Gramáticas
3 Linguagens Regulares
4 Propriedades das Linguagens Regulares
5 Autômato Finito com Saída
6 Linguagens Livres do Contexto
7 Propriedades e Reconhecimento das Linguagens
Livres do Contexto
8 Linguagens Recursivamente Enumeráveis e
Sensíveis ao Contexto
9 Hierarquia de Classes de Linguagens e Conclusões

Linguagens Formais e Autômatos 2


1 – Introdução e Conceitos
Básicos

1.1 Introdução
1.1.1 Sintaxe e Semântica
1.1.2 Abordagem
1.2 Conjuntos, Relações e Funções
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.5 Indução

Linguagens Formais e Autômatos 3


1 – Introdução e Conceitos Básicos
Linguagens Formais e Autômatos 4
1.1 Introdução
Teoria das linguagens formais
desenvolvida na década de 1950
o objetivo inicial foi desenvolver teorias relacionadas com as
linguagens naturais

entretanto, logo foi verificado que era importante:


estudo de linguagens artificiais
em especial, para as linguagens originárias da computação e
informática

desde então, desenvolveu-se significativamente

Linguagens Formais e Autômatos 5


Exemplos de aplicações
análise léxica e análise sintática de linguagens de programação
modelagem de circuitos lógicos ou redes lógicas
modelagem de sistemas biológicos

Mais recentemente
animações
hipertextos e hipermídias
linguagens não lineares
planares
espaciais
n-dimensionais

Linguagens Formais e Autômatos 6


1 – Introdução e Conceitos
Básicos

1.1 Introdução
1.1.1 Sintaxe e Semântica
1.1.2 Abordagem
1.2 Conjuntos, Relações e Funções
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.5 Indução

Linguagens Formais e Autômatos 7


1.1.1 Sintaxe e Semântica
Linguagens formais
problemas sintáticos das linguagens

Importante apresentar os conceitos de


sintaxe e semântica

Historicamente, o problema sintático


reconhecido antes do problema semântico
primeiro a receber um tratamento adequado
tratamento mais simples do que os semânticos

Linguagens Formais e Autômatos 8


Consequência
grande ênfase à sintaxe
levando à ideia de que questões das linguagens de programação
resumiam-se às questões da sintaxe

Teoria da sintaxe possui construções matemáticas


bem definidas e universalmente reconhecidas
exemplo: gramáticas de Chomsky

Linguagens Formais e Autômatos 9


Linguagem de programação (ou qq modelo matemático)
pode ser vista como uma entidade
livre, sem qualquer significado associado
juntamente com uma interpretação do seu significado

Sintaxe
trata das propriedades livres da linguagem
exemplo: verificação gramatical de programas

Semântica
objetiva dar uma interpretação para a linguagem
exemplo: significado ou valor para um determinado programa

Linguagens Formais e Autômatos 10


Consequentemente, a sintaxe:
manipula símbolos
sem considerar os seus correspondentes significados

Mas, para resolver qualquer problema real


necessário dar uma interpretação semântica aos símbolos
exemplo: estes símbolos representam os inteiros

Sintaticamente "errado"
não existe tal noção de programa
simplesmente não é um programa da linguagem

Sintaticamente válido ("correto")

Linguagens Formais e Autômatos 11


pode não ser o programa que o programador esperava escrever

Programa "correto" ou "errado"


se o mesmo modela adequadamente o comportamento desejado

Limites entre a sintaxe e a semântica


nem sempre são claros
exemplo: ocorrência de um nome em um programa
entretanto, em linguagens artificiais
distinção entre sintaxe e semântica é (em geral) óbvia

Análise léxica
tipo especial de análise sintática
o o
centrada nas componentes básicas da linguagem

Linguagens Formais e Autômatos 12


portanto, também é ênfase das linguagens formais

Linguagens Formais e Autômatos 13


1 – Introdução e Conceitos Básicos

1.1 Introdução
1.1.1 Sintaxe e Semântica
1.1.2 Abordagem
1.2 Conjuntos, Relações e Funções
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.5 Indução

Linguagens Formais e Autômatos 14


1.1.2 Abordagem
Centrada no tratamento sintático
linguagens lineares abstratas
com fácil associação às linguagens da computação e informática

Classificação dos formalismos


Operacional
Axiomático
Denotacional

Linguagens Formais e Autômatos 15


Operacional
Autômato ou uma máquina abstrata
estados
instruções primitivas
especificação de como cada instrução modifica cada estado

Máquina abstrata
suficientemente simples para não permitir dúvidas sobre a execução
de seu código

Também é dito um formalismo Reconhecedor


análise de uma entrada para verificar se é "reconhecida"

Linguagens Formais e Autômatos 16


Principais máquinas
Autômato finito
Autômato com pilha
Máquina de Turing

Linguagens Formais e Autômatos 17


Axiomático
Associam-se regras
às componentes da linguagem

Regras permitem afirmar


o que será verdadeiro após a ocorrência de cada cláusula
considerando-se o que era verdadeiro antes da ocorrência

Também é dito um formalismo Gerador


verifica se um elemento da linguagem é "gerado"

Linguagens Formais e Autômatos 18


Abordagem é sobre gramáticas
Regulares
Livres do contexto
Sensíveis ao contexto
Irrestritas

Linguagens Formais e Autômatos 19


Denotacional
Ou funcional
Define-se um domínio
caracteriza o conjunto de palavras admissíveis na linguagem
funções, em geral, composicionais (horizontalmente)
valor denotado por uma construção
especificado em termos dos valores denotados por suas
subcomponentes

Abordagem restrita às expressões regulares


Também é dito um formalismo Gerador
é simples inferir ("gerar") as palavras da linguagem

Linguagens Formais e Autômatos 20


1 – Introdução e Conceitos Básicos
1.1 Introdução
1.2 Conjuntos, Relações e Funções
1.2.1 Conjuntos e Operações sobre Conjuntos
1.2.2 Relações
1.2.3 Funções Parciais
1.2.4 Funções
1.2.5 Cardinalidade de Conjuntos
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.5 Indução

Linguagens Formais e Autômatos 21


1.2 Conjuntos, Relações e Funções
1.2.1 Conjuntos e Operações sobre Conjuntos
Conceito de conjunto
fundamental em linguagens formais e autômatos pois baseiam
os conceitos desenvolvidos
e correspondentes resultados

Conjunto é uma estrutura


que agrupa objetos
uma base para construir estruturas mais complexas

Linguagens Formais e Autômatos 22


Informalmente, um conjunto
coleção de objetos denominados elementos
sem repetições
sem qualquer ordenação

“elemento” é usado de forma ampla


pode designar um objeto concreto ou abstrato
entidade básica não definida formalmente

Def: Conjunto
Coleção de zero ou mais objetos distintos, chamados elementos
não possuem qualquer ordem associada

Linguagens Formais e Autômatos 23


Pertinência

a é elemento de um conjunto A

a A a pertence ao conjunto A

caso contrário, a não pertence ao conjunto A

a A

Linguagens Formais e Autômatos 24


Continência e subconjunto

todos os elementos de A também são elementos de B

A B A está contido em B

B A B contém A

nesse caso (A B ou B A), A é subconjunto de B

Linguagens Formais e Autômatos 25


Continência e subconjunto próprios

A B, mas existe b B tal que b A

A B A contido propriamente em B
A subconjunto próprio de B

B A B contém propriamente A

quando não é fato que A B (respectivamente, A B)

A B (respectivamente, A B)

Linguagens Formais e Autômatos 26


Igualdade de conjuntos

se e somente se possuem exatamente os mesmos elementos

A=B A igual à B

formalmente

A=B se e somente se A BeB A

Linguagens Formais e Autômatos 27


Conjunto vazio: especialmente importante
conjunto sem elementos

{ } ou

Denotação por extensão


lista de todos elementos
em qualquer ordem
separados por vírgulas
entre chaves

Vogais = { a, e, i, o, u }

Vogais denota o conjunto { a, e, i, o, u }

Linguagens Formais e Autômatos 28


Denotação por compreensão
definição por propriedades

Pares = { n N n é número par }

conjunto de todos os elementos n pertencentes ao conjunto N


tal que n é número par

forma geral

{ x x A e p(x) } ou { x A p(x) }
a é elemento do conjunto se p(a) é verdadeira

quando é claro que x A

{x p(x) }

Linguagens Formais e Autômatos 29


Forma alternativa:
Dígitos = { 0, 1, 2, 3, ,9}

Pares = { 0, 2, 4, 6, }

elementos omitidos podem ser facilmente deduzidos do contexto

Informalmente, conjunto finito e infinito


Conjunto finito
pode ser denotado por extensão
listando exaustivamente todos elementos

Conjunto infinito
caso contrário

definição formal: adiante

Linguagens Formais e Autômatos 30


Exp: Conjuntos, elementos
a { b, a }
c { b, a }
{ a, b } { b, a }
{ a, b } { a, b, c }
{ 1, 2, 3 } = { 3, 3, 3, 2, 2, 1 }

ilustra a definição de igualdade, pois

{ 1, 2, 3 } { 3, 3, 3, 2, 2, 1 } e { 3, 3, 3, 2, 2, 1 } { 1, 2, 3 }

ilustra por que as repetições de elementos podem ser


desconsideradas

Linguagens Formais e Autômatos 31


Exp: Conjuntos infinitos
N Conjunto dos números naturais
Z Conjunto dos números inteiros
Q Conjunto dos números racionais
I Conjunto dos números irracionais
R Conjunto dos números reais

Exp: Conjuntos infinitos


{ 1, 2, 3 } = { x N x 0 e x 4}
N={x Z x 0}
Pares = { y y = 2x e x N}

Linguagens Formais e Autômatos 32


Def: União, intersecção, complemento, conjunto das
partes, produto cartesiano

União

A B={x x A ou x B}
Intersecção

A B={x x Aex B}
Complemento

definida em relação a um conjunto universo U

~A = A' = { x x Uex A}

Linguagens Formais e Autômatos 33


Def: Diferença, conjunto das partes, produto cartesiano

Diferença

A-B={x x Aex B}

alternativamente

A-B=A ~B
Conjunto das partes

2A = P(A) = { S S A}
Produto cartesiano

A B = { (a, b) a Aeb B}

Linguagens Formais e Autômatos 34


Produto cartesiano de um conjunto com ele mesmo:
expoente
A A = A2

Par ordenado: elemento de um produto cartesiano


(a, b)

não deve ser confundido com o conjunto { a, b }


ordem é importante: (a, b) (a, b) (b,a)
componentes podem ser repetidas: (a, a)

generalização para n-upla ordenada (x1, x2, x3, ,xn), ou seja, para
n N componentes

Linguagens Formais e Autômatos 35


Conjuntos disjuntos, conjuntos independentes ou
conjuntos mutuamente exclusivos
A e B conjuntos não vazios e A B=

Exp: Operações sobre Conjuntos


Universo N, A = { 0, 1, 2 } e B = { 2, 3 }

A B = { 0, 1, 2, 3 }
A B={2}
A - B = { 0, 1 }
~A = { x N x 2}
2B = P(B) = { , { 2 }, { 3 }, { 2, 3 } }

Linguagens Formais e Autômatos 36


A B = { (0, 2), (0, 3), (1, 2), (1, 3), (2, 2), (2, 3) }

Propriedades que podem ser facilmente verificadas


Idempotência
A A=A
A A=A

Comutativa
A B=B A
A B=B A

Associativa
A (B C) = (A B) C
A (B C) = (A B) C

Linguagens Formais e Autômatos 37


portanto, os parênteses não são importantes e podem ser
omitidos

A B C

Propriedades que podem ser facilmente verificadas

Distributiva
A (B C) = (A B) (A C)
A (B C) = (A B) (A C)

Duplo complemento
~(~A) = A

Universo e vazio

Linguagens Formais e Autômatos 38


A ~A = U
A ~A =

Linguagens Formais e Autômatos 39


Propriedades que podem ser facilmente verificadas

DeMorgan
~(A B) = ~A ~B
~(A B) = ~A ~B
consequentemente, união (intersecção) pode ser calculada em
termos da intersecção (união)

A B = ~(~(A B)) = ~(~A ~B)

Linguagens Formais e Autômatos 40


1 – Introdução e Conceitos Básicos
1.1 Introdução
1.2 Conjuntos, Relações e Funções
1.2.1 Conjuntos e Operações sobre Conjuntos
1.2.2 Relações
1.2.3 Funções Parciais
1.2.4 Funções
1.2.5 Cardinalidade de Conjuntos
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.5 Indução

Linguagens Formais e Autômatos 41


1.2.2 Relações
Conceito de relação
usado com frequência ao longo de todo o estudo

é base para um correto entendimento de algumas importantes


construções matemáticas
exemplo: conceito de função

nas linguagens formais e autômatos, são especialmente importantes


os conceitos
relação de ordem
relação de equivalência
fecho de uma relação

Linguagens Formais e Autômatos 42


Def: Relação
A e B conjuntos

Uma relação (binária) R de A em B é um subconjunto do produto


cartesiano A B

R A B

A é denominado domínio, origem ou conjunto de partida de R

B é denominado contradomínio, codomínio, destino ou conjunto de


chegada de R

Linguagens Formais e Autômatos 43


Importante: relação R A B é constituída de 3 partes
origem A
destino B
conjunto de pares R
qualquer alteração em uma destas 3 partes define outra relação

Notações usuais
relação R A B

R: A B

elemento (a, b) R

aRb

Linguagens Formais e Autômatos 44


Def: Endorrelação, autorrelação
A um conjunto.

Uma relação R: A A (origem e destino no mesmo conjunto) é dita


endorrelação ou autorrelação
Nesse caso, afirma-se que R é uma relação em A

Notação usual de uma endorrelação R: A A


(A, R)

Endorrelações são especialmente importantes


uma série de estudos é desenvolvido para este tipo de relações

Linguagens Formais e Autômatos 45


Def: Relação conexa, reflexiva, simétrica, antissimétrica,
transitiva
A um conjunto e R uma endorrelação em A. Se para todo a, b, c A

Conexa: vale que a R b ou b R a ou a = b

Reflexiva: vale que a R a

Simétrica: caso a R b, então b R a

Antissimétrica: caso a R b e b R a, então a = b

Transitiva: caso a R b e b R c, então a R c

Linguagens Formais e Autômatos 46


Antissimetria (ou não simétrica)

inversão dos elementos de um par só é possível se forem iguais

Uma relação pode não ser simétrica, nem antissimétrica


simetria e antissimetria não são noções complementares

uma relação pode ser simultaneamente simétrica e antissimétrica

Linguagens Formais e Autômatos 47


Exp: Relação conexa, reflexiva, simétrica, antissimétrica,
transitiva Outro exemplo:
“é irmã(o) de”
Conjunto não vazio A

Conexa, reflexiva, antissimétrica e transitiva

(N, )

Reflexiva, antissimétrica e transitiva (em que condições é conexa?)

(2A, )

Conexa, antissimétrica e transitiva

(Z, )

Linguagens Formais e Autômatos 48


Exp: Relação conexa, reflexiva, simétrica, antissimétrica,
transitiva
Conjunto não vazio A

Antissimétrica e transitiva (em que condições é conexa?)

(2A, )

Não conexa, reflexiva, simétrica, antissimétrica e transitiva

(Q, =)

Não conexa, nem reflexiva, nem simétrica, nem antissimétrica, e


nem transitiva

({ 1, 2, 3, 4 }, R) tal que R = { (1, 2), (2, 1), (2, 3) }

Linguagens Formais e Autômatos 49


Frequentemente é desejável estender uma relação
de forma a garantir que ela satisfaz determinado conjunto de
propriedades

Por exemplo, garantir que R é reflexiva


se R não é reflexiva

são introduzidos os pares (e somente estes) que garantem a


reflexividade de R

Linguagens Formais e Autômatos 50


Def: Fecho de uma relação
R: A A uma endorrelação e P um conjunto de propriedades
O fecho de R em relação a P é
A formalização do
a menor endorrelação em A conceito no livro do
N. J. Vieira (p.19) é bem
que contém R interessante!
e que satisfaz as propriedades de P

FECHO-P(R)

Portanto, uma relação é subconjunto de seu fecho


R FECHO-P(R)

Em que condições uma relação é igual ao seu fecho

R = FECHO-P(R)?

Linguagens Formais e Autômatos 51


Def: Fecho transitivo
R uma endorrelação em A

Fecho de R

em relação ao conjunto de propriedades { transitiva }


denominado fecho transitivo de R
denotado por R+
Se (a, b) R, então (a, b) R+
Se (a, b) R+ e (b, c) R+, então (a, c) R+
Os únicos elementos de R+ são os construídos como acima

A definição acima é de um tipo especial denominada


definição indutiva ou definição recursiva
é estudada adiante: por enquanto, entendimento intuitivo

Linguagens Formais e Autômatos 52


Def: Fecho transitivo e reflexivo
R uma endorrelação em A

Fecho de R

em relação ao conjunto de propriedades { transitiva, reflexiva }


denominado fecho transitivo e reflexivo de R
denotado por R*

R* = R+ { (a, a) a A}

Linguagens Formais e Autômatos 53


Exp: Fecho de um grafo visto como uma relação
Grafo (direto ou dirigido) pode ser definido como uma endorrelação A

de arcos, arestas ou setas


em um conjunto V de nodos ou vértices

Assim:

A = { (1, 2), (2, 3), (3, 4), (1, 5) }

é um grafo em V = { 1, 2, 3, 4, 5 }

um par ordenado que define um arco é representado por uma seta


nodos, origem e destino são representados por circunferências
denotam a primeira e a segunda componente do par

Linguagens Formais e Autômatos 54


Seja A={(1,2),(2,3),(3,4),(1,5)}

Qual o fecho reflexivo e transitivo?


Fecho reflexivo e transitivo de A
A* = { (1, 1), (1, 2), (1, 3), (1, 4), (1, 5),

(2, 2), (2, 3), (2, 4),

(3, 3), (3, 4),

(4, 4), (5, 5) }

Linguagens Formais e Autômatos 55


Grafo (esq) e seu fecho reflexivo transitivo (dir)

1 1

2 5 2 5

3 3

4 4

Linguagens Formais e Autômatos 56


A definição de grafo como uma relação
permite a existência de arcos paralelos

dois ou mais arcos com o mesmo nodo origem e destino?

Linguagens Formais e Autômatos 57


Def: Relação de ordem parcial, relação de ordem conexa,
cadeia
A conjunto e R endorrelação em A. Então R é uma:

Relação de ordem parcial se R é

reflexiva
antissimétrica
transitiva

Relação de ordem conexa ou cadeia se R é

de ordem parcial
conexa

Linguagens Formais e Autômatos 58


Exp: Relações de ordem parcial, cadeia
A um conjunto não vazio. As relações são:

Ordem parcial

(N, ), (2A, ) e (Q, =)

Cadeia

(N, )

Linguagens Formais e Autômatos 59


Def: Relação de equivalência
A conjunto e R uma relação em A

R é uma relação de equivalência se for

reflexiva
simétrica
transitiva

Linguagens Formais e Autômatos 60


Importante resultado
cada relação de equivalência R: A A induz uma partição do
conjunto A
em subconjuntos disjuntos e não vazios
denominados de classes de equivalência ou blocos da partição
tal que a união de todos os blocos resulta em A

observe que A pode ser vazio


então, quais são os blocos da partição do vazio?

Linguagens Formais e Autômatos 61


Notação
suponha que { A1, A2, , An } é uma partição de A

é usual denotar uma classe de equivalência por um elemento


representativo desta, entre colchetes

assim, se a1 A1, a2 A2, , an An

[a1] = A1, [a2] = A2, , [an] = An

Linguagens Formais e Autômatos 62


Exp: Relação de equivalência, classes de equivalência
Considere a seguinte relação:

R = { (a, b) N2 (a MOD 2) = (b MOD 2) }

MOD: resto da divisão inteira

É fácil verificar que R é uma relação de equivalência

Intuitivamente, R induz uma partição de N

[0] classe de equivalência dos números pares (resto zero)


[1] classe de equivalência dos números ímpares (resto um)

Linguagens Formais e Autômatos 63


1 – Introdução e Conceitos Básicos
1.1 Introdução
1.2 Conjuntos, Relações e Funções
1.2.1 Conjuntos e Operações sobre Conjuntos
1.2.2 Relações
1.2.3 Funções Parciais
1.2.4 Funções
1.2.5 Cardinalidade de Conjuntos
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.5 Indução

Linguagens Formais e Autômatos 64


1.2.3 Funções Parciais
Normalmente, no estudo da teoria dos conjuntos
conceito de função parcial é marginalmente desenvolvido
comparativamente com o conceito de função (total)

Entretanto, no estudo da computação e informática em


geral, e das linguagens formais em particular
o conceito de função parcial é tão ou mais importante que o de
função (total)
maioria dos formalismos desenvolvidos é baseada em funções
parciais

Linguagens Formais e Autômatos 65


Def: Função parcial
Uma relação f A B tal que

se (a, b) f e (a, c) f, então b = c

Portanto, uma função parcial é uma relação na qual


cada elemento do domínio está relacionado com, no máximo, um
elemento do codomínio

Linguagens Formais e Autômatos 66


Notação
função parcial f A B

f: A B
ou simplesmente f: A B
quando é claro que se trata de uma função parcial

par da relação (a, b) f

f(a) = b

Linguagens Formais e Autômatos 67


Def: Imagem, conjunto imagem
f: A B uma função parcial

Se, para a A, existe b B tal que f(a) = b

f está definida para a


b é Imagem de a

caso contrário (não existe b B)

f é não definida para a

Conjunto imagem de f, denotado por f(A) ou Img(f)

f(A) = Img(f) = { b B existe a A tal que f(a) = b }

Linguagens Formais e Autômatos 68


Exp: Função parcial, conjunto imagem
Adição nos naturais. ad: N N N tal que:

ad(a, b) = a + b

função parcial
conjunto imagem é N (coincide com o codomínio)

Divisão nos reais. div: R R R tal que:

div(x, y) = x / y

função parcial
qual o conjunto imagem?

Linguagens Formais e Autômatos 69


Def: Composição de funções parciais
f: A B e g: B C funções parciais

Composição de f e g é a função

g o f: A C

tal que, para todo a A

(g o f)(a) = g(f(a)), se f(a) e g(f(a)) são definidas

(g o f)(a) é indefinida, caso contrário

Linguagens Formais e Autômatos 70


Exp: Composição de funções parciais
Composição das funções parciais f: A B e g: B C é g o f: A C

g• f

A B C
1
a
2 x
b
3 y
c f g
4 z
d
5

(g o f)(a) = g(f(a)) = g(1) = x


(g o f)(b) é indefinida, pois g é indefinida para f(b) = 3
(g o f)(c) é indefinida, pois f(c) é indefinida

Linguagens Formais e Autômatos 71


(g o f)(d) = g(f(d)) = g(5) = z

Linguagens Formais e Autômatos 72


1 – Introdução e Conceitos Básicos
1.1 Introdução
1.2 Conjuntos, Relações e Funções
1.2.1 Conjuntos e Operações sobre Conjuntos
1.2.2 Relações
1.2.3 Funções Parciais
1.2.4 Funções
1.2.5 Cardinalidade de Conjuntos
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.5 Indução

Linguagens Formais e Autômatos 73


1.2.4 Funções
Função total, ou simplesmente função
caso particular de função parcial

Def: Função, aplicação


Aplicação, função total ou simplesmente função é uma

função parcial f: A B
a qual é total
para todo a A, existe b B tal que f(a) = b

Portanto, uma função (total)


é uma função parcial
definida para todos os elementos do domínio

Linguagens Formais e Autômatos 74


Exp: Função
Compare com o correspondente exemplo de funções parciais

Adição nos naturais. ad: N N N tal que


ad(a, b) = a + b

Divisão nos reais. div: R R R definida abaixo não é uma função

não é definida para (x, 0), qualquer x R

div(x, y) = x/y

Linguagens Formais e Autômatos 75


Def: Composição de funções
f: A B e g: B C funções
Composição de f e g é a função:

g o f: A C

tal que, para todo a A

(g o f)(a) = g(f(a))

Portanto, a composição de duas funções f: A Be


g: B C é a função g o f: A C
(g o f)(a) = g(f(a)) é a aplicação de f ao elemento a e,
na sequência, de g à imagem f(a)

Linguagens Formais e Autômatos 76


Exp: Composição de funções
Composição das funções ad: N N N e quadrado: N N é

quadrado o ad: N N N

para (3, 1) N N

(quadrado o ad)(3, 1) =
quadrado(ad(3, 1)) =
quadrado(4) = 16

Ou seja, a composição das funções

resulta no quadrado da adição

Linguagens Formais e Autômatos 77


Def: Função injetora, função sobrejetora, função bijetora
Função f: A B é dita

Injetora ou monomorfismo

para todo b B, existe no máximo um a A tal que f(a) = b

Sobrejetora ou epimorfismos

para todo b B, existe pelo menos um a A tal que f(a) = b;

Bijetora ou isomorfismo

é simultaneamente injetora e sobrejetora

Linguagens Formais e Autômatos 78


Portanto, uma função f: A B
Injetora
cada elemento do codomínio é imagem de, no máximo, um
elemento do domínio
f: A B

Sobrejetora
todo elemento do codomínio é imagem de pelo menos um
elemento do domínio
f: A B

Bijetora
todo elemento do codomínio é imagem de exatamente um
elemento do domínio

Linguagens Formais e Autômatos 79


f: A B

É comum usar os termos


Injeção como função injetora

sobrejeção como função sobrejetora

bijeção como função bijetora

Conjuntos isomorfos
existe um isomorfismo (função bijetora) entre estes conjuntos

Linguagens Formais e Autômatos 80


Exp: Funções Injetora, sobrejetora, bijetora, conjuntos
isomorfos
Função identidade idA: A A tal que

para todo a A, f(a) = a


é sempre uma bijeção, ou seja

idA: A A

Função inclusão incA,B: A B ou simplesmente inc: A B tal que


Qual a diferença para identidade?
A B e para todo a A, f(a) = a
é sempre uma injeção, ou seja

incA,B: A B

Linguagens Formais e Autômatos 81


Exp: Funções injetora, sobrejetora, bijetora, conjuntos
isomorfos
Função módulo: Z N tal que

módulo(a) = a
é sobrejetora, ou seja

módulo: Z N

Função f: Z N tal que:

f(a) = 2a se a 0 inteiros não negativos: naturais pares


f(a) = 2a - 1 se a 0 inteiros negativos: naturais ímpares
é bijetora, ou seja, é um isomorfismo

f: Z N

Linguagens Formais e Autômatos 82


1 – Introdução e Conceitos Básicos
1.1 Introdução
1.1.1 Sintaxe e Semântica Text
1.1.2 Abordagem
1.2 Conjuntos, Relações e Funções
1.2.1 Conjuntos e Operações sobre Conjuntos
1.2.2 Relações
1.2.3 Funções Parciais
1.2.4 Funções ***Ultimo assunto da revisão***
1.2.5 Cardinalidade de Conjuntos
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.5 Indução

Linguagens Formais e Autômatos 83


1.2.5 Cardinalidade de Conjuntos
Cardinalidade de um conjunto
uma medida de seu tamanho

definida usando funções bijetoras

Importante conclusão do estudo da cardinalidade de


conjuntos
nem todos os conjuntos infinitos possuem a mesma cardinalidade

contradiz a noção intuitiva da maioria das pessoas.

Linguagens Formais e Autômatos 84


Problemas solucionáveis não solucionáveis
cardinal (infinito) dos problemas solucionáveis
existe pelo menos um algoritmo computacional capaz de
solucioná-lo

é menor que o cardinal (infinito) dos problemas não solucionáveis

ou seja, existem mais problemas não solucionáveis do que


problemas solucionáveis

Linguagens Formais e Autômatos 85


Def: Cardinalidade finita, cardinalidade infinita
Cardinalidade de um conjunto A, representada por A, é:

Finita

existe bijeção entre A e { 1, 2, 3, , n }, para algum n N

A=n

Infinita

existe bijeção entre A e um subconjunto próprio de A

Linguagens Formais e Autômatos 86


Portanto, um conjunto A:
finito (cardinalidade finita)
se for possível representá-lo por extensão

conjunto infinito
se for possível retirar alguns elementos de A
e, mesmo assim, estabelecer uma bijeção com A

Linguagens Formais e Autômatos 87


Exp: Cardinalidade do conjunto dos números inteiros
Função f: Z N tal que:

se a 0, então f(a) = 2a
se a 0, então f(a) = 2a - 1

é bijetora

N é subconjunto próprio de Z

Então Z é infinito

Linguagens Formais e Autômatos 88


Cardinal do conjunto dos números naturais N
de especial interesse para computação e informática

denotado por 0
(lê-se "álef") é a primeira letra do alfabeto hebraico

0 é o menor cardinal dos conjuntos infinitos

Linguagens Formais e Autômatos 89


Def: Conjunto contável, conjunto não contável, conjunto
enumerável
Um conjunto infinito A é

Infinitamente contável ou enumerável se existe

bijeção entre A e um subconjunto infinito de N


neste caso, a bijeção é denominada enumeração de A

Não contável, caso contrário

Portanto, um conjunto é contável


se for possível enumerar seus elementos
como uma sequência a0, a1, a2,
cardinal de qualquer conjunto contável é 0

Linguagens Formais e Autômatos 90


Exp: Conjunto enumerável, conjunto não contável

Enumeráveis

os conjuntos Z e Q

Não contáveis

os conjuntos I e R
prova-se que o cardinal de I e R é 2 0

Fim Revisão LFA

Linguagens Formais e Autômatos 91


1 – Introdução e Conceitos Básicos
1.1 Introdução
1.2 Conjuntos, Relações e Funções
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.5 Indução

Linguagens Formais e Autômatos 92


1.3 Noções de Lógica
Lógica matemática é básica para qualquer estudo em
computação e informática
linguagens formais e autômatos

Lógica booleana ou lógica de Boole


estudo dos princípios e métodos usados para distinguir sentenças
verdadeiras de sentenças falsas
George Boole (inglês, 1815-1864) foi um dos precursores da lógica

Linguagens Formais e Autômatos 93


Def: Proposição
Proposição

construção (sentença, frase, pensamento)


que se pode atribuir juízo

No caso da lógica matemática

o tipo de juízo é o verdadeiro-falso


o interesse é na “verdade” das proposições

Proposição sobre (um conjunto universo) U

proposição cujo valor lógico depende de um elemento x U


considerado

Linguagens Formais e Autômatos 94


Em lógica matemática
forma tradicional de tratar com a “verdade” é considerar dois valores
verdade
V e F (verdadeiro e falso, respectivamente)

e estipular que proposições só podem assumir esses valores.

p(x)
proposição p
a qual descreve alguma propriedade de um elemento x U

Toda proposição p sobre U induz uma partição de U em


duas classes de equivalência
{x p(x) é verdadeira }, denominado conjunto verdade de p
{x p(x) é falsa }, denominado conjunto falsidade de p

Linguagens Formais e Autômatos 95


Def: Tautologia, contradição
p proposição sobre U

p é uma tautologia se

p(x) é verdadeira para qualquer x U

p é dita contradição se

p(x) é falsa para qualquer x U

Linguagens Formais e Autômatos 96


Exp: Proposição, tautologia, contradição
Sentença 3 + 4 5 é uma proposição

Proposição n! 10 sobre N

{ 0, 1, 2, 3 } é o conjunto verdade
{ n N n 3 } é o conjunto falsidade

Proposição n + 1 n sobre N é uma tautologia

Proposição "2n é ímpar" sobre N é uma contradição

Linguagens Formais e Autômatos 97


Proposições atômicas ou átomos
proposições introduzidas até o momento
não podem ser decompostas em proposições mais simples

Fórmulas lógicas ou fórmulas


proposições mais complexas
compondo proposições
usando operadores lógicos ou conetivos (lógicos)

Tabela-verdade
descreve os valores lógicos de uma proposição
em termos das combinações dos valores lógicos
das proposições componentes
dos conetivos usados

Linguagens Formais e Autômatos 98


Def: Operadores lógicos
Proposições lógicas p e q

Negação: “não p” ou “não é fato que p”

p ou p

Linguagens Formais e Autômatos 99


p q p p q p q p p
q q

V V F V V V V

V F F F V F F

F V V F V V F

F F V F F V V

Linguagens Formais e Autômatos 100


Conjunção: “p e q”

p q

simultaneidade para ser verdadeira

p q p p q p q p p
q q

V V F V V V V

V F F F V F F

F V V F V V F

F F V F F V V

Linguagens Formais e Autômatos 101


Disjunção: “p ou q”

p q

pelo menos uma (eventualmente duas) das proposições


componentes deve ocorrer para que a resultante seja verdadeira

Linguagens Formais e Autômatos 102


p q p p q p q p p
q q

V V F V V V V

V F F F V F F

F V V F V V F

F F V F F V V

Linguagens Formais e Autômatos 103


Condição: “se p então q”
p q

a partir de uma premissa p verdadeira


obrigatoriamente deve-se chegar a uma conclusão q verdadeira
partindo de uma premissa falsa
qualquer conclusão pode ser considerada

Linguagens Formais e Autômatos 104


p q p p q p q p q p
q

V V F V V V V

V F F F V F F

F V V F V V F

F F V F F V V

Linguagens Formais e Autômatos 105


Bicondição: “p se e somente se q”
p q
condição “nos dois sentidos”:
ida: p é premissa e q é conclusão
volta: q é premissa e p é conclusão

p q p p q p q p q p q

V V F V V V V

V F F F V F F

F V V F V V F

F F V F F V V

Linguagens Formais e Autômatos 106


Conetivo bicondicional pode ser visto como
composição dos conetivos condicional e conjunção (exercício)

p q possui a mesma tabela-verdade que (p q) (q p)

Condição e bicondição induzem as relações


implicação e equivalência entre fórmulas

Relação de implicação
diretamente relacionada com o conceito de teorema
Relação de equivalência
permite definir a noção de “mesmo significado” entre duas fórmulas
(sintaticamente) diferentes

Linguagens Formais e Autômatos 107


Def: Relação de implicação, equivalência
p e q proposições
Relação de implicação: “p implica q”

p q ou p q
se e somente se:
p q é uma tautologia

Relação de equivalência: “p é equivalente a q”

p q
se e somente se:
p q é uma tautologia

relações e são de ordem e de equivalência

Linguagens Formais e Autômatos 108


Exp: Relação de implicação, equivalência
Adição: p p q

Simplificação: p q p

Linguagens Formais e Autômatos 109


p q p q p (p q p q (p q)
) p

V V V V V V

V F V V F V

F V V V F V

F F F V F V

Linguagens Formais e Autômatos 110


Exp: Relação de implicação, equivalência
Contraposição: p q q p

p q p q p q (p q) ( q p
q p )

V V F F V V V

V F F V F F V

F V V F V V V

F F V V V V V

Linguagens Formais e Autômatos 111


Exp: Relação de implicação, equivalência
Redução ao absurdo: p q (p q) F

p q q p p q ((p q) (p q) ((p q) F
q F) )

V V F V F V V

V F V F V F V

F V F V F V V

F F V V F V V

Linguagens Formais e Autômatos 112


1 – Introdução e Conceitos Básicos
1.1 Introdução
1.2 Conjuntos, Relações e Funções
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.4.1 Prova Direta
1.4.2 Prova por Contraposição
1.4.3 Prova por Redução ao Absurdo
1.5 Indução

Linguagens Formais e Autômatos 113


1.4 Técnicas de Demonstração

Teorema é uma proposição do tipo


p q

a qual, prova-se, é verdadeira sempre (tautologia), ou seja


p q
p: hipótese
q: tese

Linguagens Formais e Autômatos 114


Corolário
teorema consequência quase direta de outro já demonstrado
portanto, prova é trivial ou imediata

Lema
teorema auxiliar possui um resultado importante para a prova de
outro teorema

Exemplificando a importância
verificar se uma determinada implementação é correta
um algoritmo que, prova-se, sempre funciona

Linguagens Formais e Autômatos 115


Para demonstrar, é fundamental identificar claramente
a hipótese e a tese
a intersecção distribui-se sobre a união, ou seja,
A (B C) = (A B) (A C)

reescrita identificando claramente a hipótese e a tese

se A, B e C são conjuntos quaisquer,


então A (B C) = (A B) (A C)

Linguagens Formais e Autômatos 116


É usual um teorema ser apresentado na forma p q
A é contável se e somente se
existe função bijetora entre A e o conjunto dos números pares

Sabe-se que:

p q (p q) (q p)

Assim, deve ser demonstrada a "ida" e a "volta"

se um conjunto A é contável, então


existe função bijetora entre A e o conjunto dos números pares
e
se existe função bijetora entre A e o conjunto dos números pares,
então A é contável

Linguagens Formais e Autômatos 117


Dado um teorema p q, existem diversas técnicas para
provar que, de fato, p q
Prova direta

Prova por contraposição

Prova por redução ao absurdo ou prova por absurdo

Prova por indução


aplicação particular do princípio da indução matemática estudado
adiante

Linguagens Formais e Autômatos 118


1 – Introdução e Conceitos Básicos
1.1 Introdução
1.2 Conjuntos, Relações e Funções
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.4.1 Prova Direta
1.4.2 Prova por Contraposição
1.4.3 Prova por Redução ao Absurdo
1.5 Indução

Linguagens Formais e Autômatos 119


1.4.1 Prova Direta

Def: Prova (demonstração) direta


Pressupõe verdadeira a hipótese e, a partir desta, prova ser verdadeira a
tese

Linguagens Formais e Autômatos 120


Exp: Prova direta
a intersecção distribui-se sobre a união, ou seja,
A (B C) = (A B) (A C)

X = Y se e somente se X Y e Y X
X Y se e somente se todos os elementos de X também são
elementos de Y
é fácil verificar (tabela-verdade) que o distribui-se sobre o

p (q r) (p q) (p r)

Para provar que A (B C) = (A B) (A C), deve-se provar que:

A (B C) (A B) (A C) caso 1
(A B) (A C) A (B C) caso 2

Linguagens Formais e Autômatos 121


Suponha que A, B e C são conjuntos quaisquer.

Caso 1. Suponha x A (B C). Então:

x A (B C) definição de intersecção
x A x (B C) definição de união
x A (x B x C) distributividade do sobre o
(x A x B) (x A x C) definição de intersecção
x (A B) x (A C) definição de união
x (A B) (A C)
Portanto, A (B C) (A B) (A C)

Linguagens Formais e Autômatos 122


Suponha que A, B e C são conjuntos quaisquer.

Caso 2. Suponha x (A B) (A C). Então:

x (A B) (A C) definição de união
x (A B) x (A C) definição de intersecção
(x A x B) (x A x C) distributividade do sobre o
x A (x B x C) definição de união
x A x (B C) definição de intersecção
x A (B C)
Portanto, (A B) (A C) A (B C)

Logo, A (B C) = (A B) (A C)

Linguagens Formais e Autômatos 123


1 – Introdução e Conceitos Básicos
1.1 Introdução
1.2 Conjuntos, Relações e Funções
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.4.1 Prova Direta
1.4.2 Prova por Contraposição
1.4.3 Prova por Redução ao Absurdo
1.5 Indução

Linguagens Formais e Autômatos 124


1.4.2 Prova por Contraposição
Baseia-se no resultado (contraposição)
p q q p

Def: Prova (demonstração) por contraposição


Para provar p q

prova-se q p
Para provar q p

a partir de q
obter p (prova direta)

Linguagens Formais e Autômatos 125


Exp: Prova por contraposição
Para demonstrar (supondo n N):

n! (n + 1) n 2

pode-se, equivalentemente, demonstrar por contraposição

n 2 n! n + 1

é muito simples provar que n 2 n! n + 1


basta testar a proposição para os casos n = 0, n = 1 e n = 2
exercício

Linguagens Formais e Autômatos 126


1 – Introdução e Conceitos Básicos
1.1 Introdução
1.2 Conjuntos, Relações e Funções
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.4.1 Prova Direta
1.4.2 Prova por Contraposição
1.4.3 Prova por Redução ao Absurdo
1.5 Indução

Linguagens Formais e Autômatos 127


1.4.3 Prova por Redução ao Absurdo

Baseia-se no resultado (redução ao absurdo)


p q (p q) F

Def: Prova (demonstração) por redução ao absurdo ou


simplesmente por absurdo
A prova de p q consiste em

supor a hipótese p
supor a negação da tese q

Linguagens Formais e Autômatos 128


e concluir uma contradição (em geral, q q)

Linguagens Formais e Autômatos 129


Prova por contraexemplo
é uma demonstração por absurdo
de fato, em uma demonstração por absurdo
a construção da contradição q q
é, em geral, a apresentação de um contraexemplo

Exp: Prova por redução ao absurdo


0 é o único elemento neutro da adição em N

reescrevendo na forma de p q

se 0 é elemento neutro da adição em N,


então 0 é o único elemento neutro da adição em N

Linguagens Formais e Autômatos 130


Suponha que

0 é elemento neutro da adição em N (hipótese)


0 não é o único neutro da adição em N (negação da tese)

Se 0 não é o único, então existe um outro, diferente de 0

Seja e um elemento neutro da adição em N tal que e 0

Então:

como 0 é elemento neutro, vale n = 0 + n = n + 0


em particular, para n = e, vale e = 0 + e = e + 0

como e é elemento neutro, vale n = n + e = e + n


em particular, para n = 0, vale 0 = 0 + e = e + 0

Linguagens Formais e Autômatos 131


Portanto

como e = 0 + e = e + 0 e 0 = 0 + e = e + 0
pela transitividade da igualdade
vale e = 0
o que é uma contradição, pois foi suposto que e 0

Logo, é absurdo supor que o elemento neutro da adição em N não é


único

Portanto, 0 é o único elemento neutro da adição em N

Linguagens Formais e Autômatos 132


1 – Introdução e Conceitos Básicos
1.1 Introdução
1.2 Conjuntos, Relações e Funções
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.5 Indução
1.5.1 Princípio da Indução Matemática
1.4.2 Prova Indutiva
1.4.2 Segundo Princípio da Indução Matemática
1.4.3 Definição Indutiva

Linguagens Formais e Autômatos 133


1.5 Indução
1.5.1 Princípio da Indução Matemática
Técnica para lidar com tipos de dados que têm uma
relação de boa-ordem
relação onde todo subconjunto não vazio do tipo de dado tem um
elemento mínimo segundo essa relação de ordem
exemplo: conjunto dos números naturais

Dada uma boa-ordem


pode-se aplicar indução para provar propriedades
que valem para todo elemento do tipo de dado
por simplicidade, é considerado N
ou qualquer outro conjunto isomorfo a N

Linguagens Formais e Autômatos 134


Def: Princípio da indução matemática
p(n) uma proposição sobre M = {n N n mem N}

p(m) é verdadeira;
para qualquer k M, vale p(k) p(k + 1)
então, para qualquer n M, p(n) é verdadeira

Denominações

base de indução: proposição p(m)


hipótese de indução: proposição p(k)
passo de indução: implicação p(k) p(k + 1)

Linguagens Formais e Autômatos 135


Princípio na sua forma mais tradicional
Primeiro princípio da indução matemática

outras formulações alternativas são usuais


qualquer conjunto isomorfo a N pode ser considerado

Duas aplicações do princípio da indução matemática


destacam-se
Prova indutiva ou prova por indução
técnica de demonstração muito comum
não é do domínio da lógica pura
Definição indutiva ou definição recursiva
igualmente comum
já usada anteriormente de maneira informal

Linguagens Formais e Autômatos 136


1 – Introdução e Conceitos Básicos
1.1 Introdução
1.2 Conjuntos, Relações e Funções
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.5 Indução
1.5.1 Princípio da Indução Matemática
1.5.2 Prova Indutiva
1.5.2 Segundo Princípio da Indução Matemática
1.5.3 Definição Indutiva

Linguagens Formais e Autômatos 137


1.5.2 Prova Indutiva
Prova indutiva ou prova por indução
confirma se uma determinada conjectura p(n) sobre
n M = {n N n m e m N } é correta

Demonstração por indução deve-se


demonstrar a base de indução p(m)

fixado um k, supor verdadeira a hipótese de indução p(k)

demonstrar o passo de indução


p(k) p(k + 1) é, de fato, uma implicação

Linguagens Formais e Autômatos 138


Exp: Prova por indução
para qualquer n N, vale que 1 + 2 + + n = (n2 + n)/2

Prova por indução de p(n): 1 + 2 + + n = (n2 + n)/2

Base de indução. Seja k = 0. Então:

(02 + 0)/2 = (0 + 0)/2 = 0/2 = 0

portanto, p(0) é verdadeira. Note que:

1+2+ + k = 0 +1 + 2 + +k

pois 0 é o elemento neutro da adição, e portanto, o somatório até


k = 0 é definido

Linguagens Formais e Autômatos 139


Hipótese de indução. Suponha que, para algum k N:

p(k): 1 + 2 + + k = (k2 + k)/2 é verdadeira

Passo de indução. Prova para:

p(k + 1): 1 + 2 + + k + (k + 1) = ((k + 1)2 + k + 1)/2

1 + 2 + + k + (k + 1) =
(1 + 2 + + k) + (k + 1) = pela hipótese de indução
(k2 + k)/2 + (k + 1) =
(k2 + k)/2 + (2k + 2)/2 =
(k2 + k + 2k + 2)/2 =
((k2 + 2k + 1) + (k + 1))/2 =
((k + 1)2 + (k + 1))/2

Linguagens Formais e Autômatos 140


Portanto, p(k + 1): 1 + 2 + + k + (k + 1) = ((k + 1)2 + (k + 1))/2 é
verdadeira.

Logo, para qualquer n N, vale que 1 + 2 + + n = (n2 + n)/2

Linguagens Formais e Autômatos 141


1 – Introdução e Conceitos Básicos
1.1 Introdução
1.2 Conjuntos, Relações e Funções
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.5 Indução
1.5.1 Princípio da Indução Matemática
1.5.2 Prova Indutiva
1.5.2 Segundo Princípio da Indução Matemática
1.5.3 Definição Indutiva

Linguagens Formais e Autômatos 142


1.5.3 Segundo Princípio da Indução Matemática
Pode ser conveniente trabalhar com outras
formulações do princípio da indução matemática
Segundo princípio da indução matemática
especialmente importante para computação e informática

Linguagens Formais e Autômatos 143


Def: Segundo princípio da indução matemática
p(n) uma proposição sobre M = {n N n mem N}

Primeira versão.

p(m) é verdadeira

Para qualquer k M, vale

p(m) p(m + 1) p(k) p(k + 1)

Então, para qualquer n N, p(n) é verdadeira

Linguagens Formais e Autômatos 144


Segunda versão. Suponha t N:

p(m), p(m + 1), ,p(m + t), são verdadeiras

Para qualquer k M tal que k m + t, vale:

p(m) p(m + 1) p(k) p(k + 1)

Então, para qualquer n N, p(n) é verdadeira

Segunda versão
prova os t primeiros casos em separado

para verificar a base de indução

Linguagens Formais e Autômatos 145


Indução em estrutura, estruturada ou estrutural
denominações alternativas

razão: frequentemente aplicado na definição e prova de


propriedades de
expressões
fórmulas
árvores, etc.

Linguagens Formais e Autômatos 146


Exp: Segundo princípio da indução matemática
Suponha que p é uma proposição lógica a qual contém
exclusivamente os conetivos conjunção, disjunção e condição.
Se o valor-verdade de todos os átomos de p é V,
então o valor-verdade de p é V

Uma prova por indução (no número de átomos, usando a primeira versão
do Segundo Princípio da Indução)

Base de indução. Seja k = 1. Então p é um átomo. Portanto, por hipótese,


o valor-verdade de p é V

Hipótese de indução. Suponha que, para algum k N, e para qualquer


u N tal que u k, se o número de átomos de p é u, então o valor-
verdade de p é V;

Linguagens Formais e Autômatos 147


Passo de indução. Seja p uma proposição com k + 1 átomos. Então

p pode ser reescrita em um dos seguintes casos

q e r são proposições lógicas as quais


individualmente, possuem no máximo k átomos
conjuntamente, possuem k + 1 átomos

q r q r q r

como, por hipótese de indução o valor-verdade de q e r são V


vale que, em qualquer dos casos, o valor-verdade de p é V

Linguagens Formais e Autômatos 148


1 – Introdução e Conceitos Básicos
1.1 Introdução
1.2 Conjuntos, Relações e Funções
1.3 Noções de Lógica
1.4 Técnicas de Demonstração
1.5 Indução
1.5.1 Princípio da Indução Matemática
1.5.2 Prova Indutiva
1.5.2 Segundo Princípio da Indução Matemática
1.5.3 Definição Indutiva

Linguagens Formais e Autômatos 149


1.5.4 Definição Indutiva
Princípio da indução matemática pode ser usado também
em definições
definição indutiva ou definição recursiva

Nesse caso, afirma-se que a construção é


indutivamente definida ou recursivamente definida

Resumidamente, em uma definição indutiva


base de indução explicita os casos elementares (mais simples)

passo de indução determina como os demais casos são definidos


em termos dos anteriores

Linguagens Formais e Autômatos 150


Exemplo já usado anteriormente: R+, fecho transitivo de R
se (a, b) R, então (a, b) R+
base de indução

se (a, b) R+ e (b, c) R+, então (a, c) R+


passo de indução (e a hipótese?)

os únicos elementos de R+ são os construídos como acima


garante que, de fato, esta é uma definição indutiva
pode ser omitido, quando se afirma que se trata de uma definição
indutiva

Linguagens Formais e Autômatos 151


Linguagens Formais e Autômatos

P. Blauth Menezes

1 Introdução e Conceitos Básicos


2 Linguagens e Gramáticas
3 Linguagens Regulares
4 Propriedades das Linguagens Regulares
5 Autômato Finito com Saída
6 Linguagens Livres do Contexto
7 Propriedades e Reconhecimento das Linguagens
Livres do Contexto
8 Linguagens Recursivamente Enumeráveis e
Sensíveis ao Contexto
9 Hierarquia de Classes de Linguagens e Conclusões

Linguagens Formais e Autômatos 152