Você está na página 1de 36

captulo

introduo e conceitos bsicos

A teoria das linguagens formais nasceu na


dcada de 1950 com o objetivo de tratar linguagens naturais.
Logo foi verificada a sua importncia para o estudo de
linguagens artificiais e, em particular, para as linguagens
computacionais, com nfase em anlise lxica e sinttica.
Mais modernamente, destacam-se aplicaes em
hipertextos, hipermdias e linguagens no lineares.
Este captulo apresenta linguagens
formais e autmatos e faz uma reviso dos
principais pr-requisitos de teoria dos conjuntos,
lgica e induo e tcnicas de demonstrao.
Alm disso, introduz e caracteriza as
noes de sintaxe e semntica.

18

1.1

Linguagens Formais e Autmatos

introduo

A teoria das linguagens formais foi originariamente desenvolvida na dcada de 1950 com
o objetivo de desenvolver teorias relacionadas com as linguagens naturais. Entretanto, logo
foi verificado que esta teoria era importante para o estudo de linguagens artificiais e, em
especial, para as linguagens originrias da computao e informtica. Desde ento, o estudo das linguagens formais desenvolveu-se significativamente e com diversos enfoques, com
destaque para aplicaes em anlise lxica e anlise sinttica de linguagens de programao,
modelagem de circuitos lgicos ou redes lgicas, de sistemas biolgicos, entre outros. Mais
recentemente, destacam-se aplicaes relacionadas com sistemas de animao, hipertextos e
hipermdias, bem como o tratamento de linguagens no lineares, como linguagens planares,
linguagens espaciais e linguagens n-dimensionais.

1.1.1

sintaxe e semntica

Linguagens formais preocupa-se com os problemas sintticos das linguagens. Assim, inicialmente, importante introduzir os conceitos de sintaxe e de semntica de linguagens.

Captulo 1

Introduo e Conceitos Bsicos

19

Historicamente, no estudo do entendimento das linguagens de programao, o problema


sinttico foi reconhecido antes do problema semntico e foi o primeiro a receber um tratamento adequado. Adicionalmente, os problemas sintticos so de tratamento mais simples
que os semnticos. Como consequncia, foi dada uma grande nfase sintaxe, ao ponto de
levar ideia de que as questes das linguagens de programao resumiam-se s questes
da sintaxe. Atualmente, a teoria da sintaxe possui construes matemticas bem definidas e
universalmente reconhecidas como, por exemplo, as Gramticas de Chomsky.
Uma linguagem de programao (bem como qualquer modelo matemtico) pode ser vista
de duas formas:

como uma entidade livre, ou seja, sem qualquer significado associado;


como uma entidade juntamente com uma interpretao do seu significado.

A sintaxe trata das propriedades livres da linguagem como, por exemplo, a verificao gramatical de programas. A semntica objetiva dar uma interpretao para a linguagem como,
por exemplo, um significado ou valor para um determinado programa. Consequentemente,
a sintaxe basicamente manipula smbolos sem considerar os seus correspondentes significados. Note-se que, para resolver qualquer problema real, necessrio dar uma interpretao
semntica aos smbolos como, por exemplo:
estes smbolos representam os inteiros.
Sintaticamente falando, no existe uma noo de programa errado: neste caso, simplesmente no um programa da linguagem em questo. Por outro lado, um programa sintaticamente vlido (correto), pode no ser o programa que o programador esperava escrever.
Assim, a questo de considerar um programa correto ou errado deve considerar se o
mesmo modela adequadamente o comportamento desejado.
Nem sempre os limites entre a sintaxe e a semntica so claros. Um exemplo a ocorrncia
de um nome em um programa o qual pode ser tratado de forma igualmente fcil como um
problema sinttico ou semntico. Entretanto, a distino entre sintaxe e semntica em linguagens artificiais , em geral, bvia para a maioria dos problemas relevantes.
Observe que anlise lxica pode ser vista como um tipo especial de anlise sinttica, a qual
centrada nas componentes bsicas da linguagem. Portanto, linguagens formais tambm se
preocupa com os problemas lxicos.

1.1.2 abordagem
A abordagem desta publicao centrada no tratamento sinttico de linguagens lineares
abstratas com fcil associao s linguagens tpicas da computao e informtica. Os formalismos usados podem ser classificados nos seguintes tipos:
a Operacional. Define-se um autmato ou uma mquina abstrata, baseada em estados, em
instrues primitivas e na especificao de como cada instruo modifica cada estado.

20

Linguagens Formais e Autmatos

Uma mquina abstrata deve ser suficientemente simples para no permitir dvidas sobre
a execuo de seu cdigo. Um formalismo operacional tambm dito um formalismo
reconhecedor, no sentido em que permite a anlise de uma dada entrada para verificar
se reconhecida pela mquina. As principais mquinas definidas nesta publicao so
autmato finito, autmato com pilha e mquina de Turing;
b Axiomtico. Associam-se regras s componentes da linguagem. As regras permitem afirmar o que ser verdadeiro aps a ocorrncia de cada clusula, considerando-se o que era
verdadeiro antes da ocorrncia. A abordagem axiomtica que segue sobre gramticas
(regulares, livres do contexto, sensveis ao contexto e irrestritas). Uma gramtica tambm
dita um formalismo gerador no sentido em que permite verificar se um determinado
elemento da linguagem gerado;
c Denotacional. Tambm denominado formalismo funcional. Define-se um domnio que
permite a caracterizao do conjunto de palavras admissveis na linguagem. Trata-se de
funes, as quais so, em geral, composicionais (horizontalmente) no sentido em que o
valor denotado por uma construo especificado em termos dos valores denotados por
suas subcomponentes. Nesta publicao, a abordagem denotacional restrita s expresses regulares. Como, a partir de uma expresso regular, simples inferir (gerar) as palavras da linguagem denotada, este formalismo tambm frequentemente denominado,
de forma no muito precisa, formalismo gerador.

1.2

conjuntos, relaes e funes

No texto que segue, supe-se que o leitor est familiarizado com os conceitos bsicos
relativos teoria dos conjuntos. Caso o leitor domine esses conceitos, sugere-se uma passagem rpida por esta seo para verificar a nomenclatura e as convenes adotadas ao
longo do livro.

1.2.1

conjuntos e operaes sobre conjuntos

O conceito de conjunto fundamental no estudo de linguagens formais e autmatos, pois


todos os conceitos desenvolvidos, bem como os correspondentes resultados, so baseados
em conjuntos ou em construes sobre conjuntos.
Conjunto uma estrutura que agrupa objetos e constitui uma base para construir estruturas
mais complexas. Assim, informalmente, um conjunto uma coleo, sem repeties e sem
qualquer ordenao, de objetos denominados elementos. O termo elemento usado de
forma ampla e pode designar um objeto concreto ou abstrato. Neste contexto, um elemento
uma entidade bsica a qual no definida formalmente.
definio 1.1 Conjunto
Um conjunto uma coleo de zero ou mais objetos distintos, chamados elementos do conjunto, os quais no possuem qualquer ordem associada.

Captulo 1

Introduo e Conceitos Bsicos

21

Relativamente ao relacionamento entre elementos e conjuntos, vale que:


a Pertinncia. Se um determinado elemento a elemento de um conjunto A, tal fato
denotado por:
aA
o qual interpretado como segue:
a pertence ao conjunto A
Caso contrrio, se afirma que a no pertence ao conjunto A. Tal fato denotado por:
aA
b Continncia e subconjunto. Se todos os elementos de um conjunto A tambm so elementos de um conjunto B, ento afirma-se que A est contido em B e denota-se por:
AB
ou, alternativamente, que B contm A, e denota-se por:
BA
Nesse caso (A B ou B A), afirma-se que A subconjunto de B.
Adicionalmente, se A B, mas existe b B tal que b A, ento se afirma que A est
contido propriamente em B, ou que A subconjunto prprio de B, e denota-se por:
AB
Ou, alternativamente, que B contm propriamente A e denota-se por:
BA
Quando no fato que A B (respectivamente, A B), usual denotar como segue:
A

B (respectivamente, A B)

c Igualdade de conjuntos. Os conjuntos A e B so ditos conjuntos iguais, o que denotado por:


A=B
se e somente se possuem exatamente os mesmos elementos. Formalmente, afirma-se que:
A=B

se e somente se

ABeBA

Um conjunto especialmente importante o conjunto vazio, ou seja, o conjunto sem elementos { }, o qual usualmente representado pelo seguinte smbolo:

A definio de um conjunto pela listagem de todos os seus elementos denominada denotao por extenso e dada pela lista de todos os seus elementos, em qualquer ordem (separados por vrgulas) e entre chaves como, por exemplo:
Vogais = { a, e, i, o, u }

22

Linguagens Formais e Autmatos

Neste caso, Vogais denota o conjunto { a, e, i, o, u }.


A definio de um conjunto por propriedades denominada denotao por compreenso
como, por exemplo (suponha que N denota o conjunto dos nmeros naturais):
Pares = { n N n nmero par }
a qual interpretada como:
conjunto de todos os elementos n pertencentes ao conjunto N
tal que n nmero par.
Assim, a forma geral de definio de um conjunto por propriedades como segue:
{ x x A e p(x) }

ou

{ x A p(x) }

e tal que um determinado elemento a elemento deste conjunto se a propriedade p verdadeira para a, ou seja, se p(a) verdadeira. Quando claro que x A, pode-se denotar esse
conjunto simplesmente na forma:
{ x p(x) }
Muitas vezes conveniente especificar um conjunto de outra forma que no por compreenso, como, por exemplo:
Dgitos = { 0, 1, 2, 3,, 9 }
Pares = { 0, 2, 4, 6, }
nas quais os elementos omitidos podem ser facilmente deduzidos do contexto.
Um conjunto pode possuir um nmero finito ou infinito de elementos. A definio formal de
conjunto finito e infinito ser apresentada adiante. Informalmente, um conjunto dito:
a Conjunto finito se pode ser denotado por extenso, ou seja, listando exaustivamente
todos os seus elementos;
b Conjunto infinito, caso contrrio.
exemplo 1.1 Conjuntos, elementos
a a { b, a }
c { b, a }
b { a, b } { b, a }
{ a, b } { a, b, c }
{ 1, 2, 3 } = { 3, 3, 3, 2, 2, 1 }
Este ltimo item ilustra claramente a definio de igualdade. De fato, fcil verificar
que:
{ 1, 2, 3 } { 3, 3, 3, 2, 2, 1 }

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

Observe que este exemplo tambm ilustra por que as repeties de elementos podem ser
desconsideradas (se o leitor tiver alguma dvida, revise a definio de continncia);

Captulo 1

Introduo e Conceitos Bsicos

c Os seguintes conjuntos so infinitos:


N
Z
Q
I
R
d { 1, 2, 3 } = { x N x > 0 e x < 4 }
N={xZx0}
Pares = { y y = 2x e x N }

23

conjunto dos nmeros naturais


conjunto dos nmeros inteiros
conjunto dos nmeros racionais
conjunto dos nmeros irracionais
conjunto dos nmeros reais

As principais operaes sobre conjuntos so as seguintes.


definio 1.2 Unio, interseco, diferena, complemento, conjunto das partes, produto
cartesiano
Sejam A e B conjuntos. Ento:
a Unio.
A B = { x x A ou x B }
Interseco.
b
AB={xxAexB}
c Complemento. A operao de complemento definida em relao a um conjunto fixo U
denominado conjunto universo, como segue:
~A = A' = { x x U e x A }
Diferena.
d
A-B={xxAexB}
Ou, alternativamente:
A - B = A ~B
e Conjunto das partes.
2A = P(A) = { S S A }
f Produto cartesiano.
A B = { (a, b) a A e b B }

Dados dois conjuntos A e B, sendo ambos no vazios, se A B = , ento A e B so ditos


conjuntos disjuntos, conjuntos independentes ou conjuntos mutuamente exclusivos.
usual denotar um produto cartesiano de um conjunto com ele mesmo como um expoente.
Por exemplo:
A A = A2
Um elemento de um produto cartesiano denotado na forma:
(a, b)
denominado par ordenado e no deve ser confundido com o conjunto { a, b }:

a ordem importante, pois so distinguidas as duas componentes;


as componentes podem ser repetidas.

24

Linguagens Formais e Autmatos

O conceito de par ordenado pode ser generalizado para n-upla ordenada (x1, x2, x3,, xn),
ou seja, para n N componentes.
exemplo 1.2 Operaes sobre conjuntos
Suponha o universo N, e sejam A = { 0, 1, 2 } e B = { 2, 3 }. Ento:
a A B = { 0, 1, 2, 3 }
b AB={2}
c A - B = { 0, 1 }
d ~A = { x N x > 2 }
e 2B = P(B) = { , { 2 }, { 3 }, { 2, 3 } }
f A B = { (0, 2), (0, 3), (1, 2), (1, 3), (2, 2), (2, 3) }

As seguintes propriedades das operaes sobre conjuntos podem ser facilmente verificadas
(suponha o universo U e os conjuntos A, B e C):
a Idempotncia.
AA=A
AA=A
b Comutativa.
AB=BA
AB=BA
c Associativa.
A (B C) = (A B) C
A (B C) = (A B) C
Observe que, a partir da associatividade, pode-se concluir que a sequncia de realizao
da operao em questo pode ser qualquer. Portanto, os parnteses no so importantes
e, consequentemente, podem ser omitidos. Por exemplo, a expresso A (B C) pode
ser denotada simplesmente como segue:
ABC
d Distributiva.
A (B C) = (A B) (A C)
A (B C) = (A B) (A C)
e Duplo complemento.
~(~A) = A
f DeMorgan.
~(A B) = ~A ~B
~(A B) = ~A ~B
Esta propriedade permite concluir que o complemento da unio (respectivamente, interseco) pode ser calculado em termos da interseco (respectivamente, unio). Por exemplo:
A B = ~(~(A B)) = ~(~A ~B)
Este resultado importante no texto que segue:

Captulo 1

Introduo e Conceitos Bsicos

25

g Universo e Vazio.
A ~A = U
A ~A =

1.2.2 relaes
O conceito de relao usado com frequncia ao longo de todo o texto, alm de ser a base
para um correto entendimento de algumas importantes construes matemticas como, por
exemplo, o conceito de funo. Relativamente ao estudo das linguagens formais e autmatos, os conceitos de relao de ordem, relao de equivalncia e fecho de uma relao so
especialmente importantes.
definio 1.3 Relao
Suponha A e B conjuntos. Uma relao (binria) R de A em B um subconjunto de um produto cartesiano A B, ou seja:
RAB
sendo que:
A denominado domnio, origem ou conjunto de partida de R
B denominado contradomnio, codomnio, destino ou conjunto de chegada de R

importante observar que uma relao R A B constituda de trs partes: a origem A, o


destino B e o conjunto de pares R. Qualquer alterao em uma destas trs partes define uma
outra relao.
Uma relao R A B tambm denotada como segue:
R: A B
e um elemento (a, b) R frequentemente denotado de forma infixada, como segue:
aRb
definio 1.4 Endorrelao, autorrelao
Suponha A um conjunto. Ento uma relao R: A A (origem e destino no mesmo conjunto) dita uma endorrelao ou autorrelao. Nesse caso, afirma-se que R uma relao
em A.

Uma endorrelao R: A A frequentemente denotada por:


(A, R)
As endorrelaes so especialmente importantes, razo pela qual uma srie de estudos
desenvolvida especialmente para este tipo de relaes, como os apresentados no restante
desta seo.
definio 1.5 Relao conexa, reflexiva, simtrica, antissimtrica, transitiva
Sejam A um conjunto e R uma endorrelao em A. Ento R uma relao:

26

Linguagens Formais e Autmatos

a Conexa, se, para todo a, b A, vale que a R b ou b R a ou a = b


b Reflexiva, se, para todo a A, vale que a R a
c Simtrica, se, para todo a, b A, caso a R b, ento b R a
d Antissimtrica, se, para todo a, b A, caso a R b e b R a, ento a = b
e Transitiva, se, para todo a, b, c A, caso a R b e b R c, ento a R c

Antissimetria estabelece que, para uma relao R e um par (a, b) R, no possvel inverter a ordem dos elementos (ou seja, o par (b, a) R), excetuando-se o caso em que a e b
so iguais.
Note-se que uma relao pode no ser simtrica, nem antissimtrica, ou seja, simetria e antissimetria no so noes complementares. Adicionalmente, uma relao pode ser simultaneamente simtrica e antissimtrica. Tais casos so ilustrados a seguir.
exemplo 1.3 Relao conexa, reflexiva, simtrica, antissimtrica, transitiva
Considere um conjunto no vazio A. Ento, as seguintes endorrelaes so:
a Conexa, reflexiva, antissimtrica e transitiva: (N, )
A
b Reflexiva, antissimtrica e transitiva (em que condies conexa?): (2 , )
c Conexa, antissimtrica e transitiva: (Z, <)
A
d Antissimtrica e transitiva (em que condies conexa?): (2 , )
e No conexa, reflexiva, simtrica, antissimtrica e transitiva: (Q, =)
f No conexa, nem reflexiva, nem simtrica, nem antissimtrica, e nem transitiva:
({ 1, 2, 3, 4 }, R) tal que R = { (1, 2), (2, 1), (2, 3) }

Frequentemente desejvel estender uma relao de forma a garantir que ela satisfaz determinado conjunto de propriedades. Por exemplo, garantir que determinada relao R satisfaz
propriedade reflexiva. Assim, se R no reflexiva, so introduzidos os pares (e somente
estes) que garantem a reflexividade de R.
definio 1.6 Fecho de uma relao
Sejam R: A A uma endorrelao e P um conjunto de propriedades. Ento o fecho de R em
relao a P a menor endorrelao em A que contm R e que satisfaz as propriedades de P
e denotado por:
FECHO-P(R)

Portanto, para qualquer conjunto de propriedades considerado, a relao sempre ser subconjunto de seu fecho, ou seja:
R FECHO-P(R)
Em que condies uma relao igual ao seu fecho, ou seja, R = FECHO-P(R)?
Dois tipos de fecho de uma relao so especialmente importantes no trabalho que segue.

Captulo 1

Introduo e Conceitos Bsicos

27

definio 1.7 Fecho transitivo, fecho transitivo e reflexivo


Seja R uma endorrelao em A. Ento:
a O fecho de R em relao ao conjunto de propriedades { transitiva }, denominado fecho
transitivo de R e denotado por R+, definido como segue:
a.1) Se (a, b) R, ento (a, b) R+
a.2) Se (a, b) R+ e (b, c) R+, ento (a, c) R+
a.3) Os nicos elementos de R+ so os construdos como acima;
b O fecho de R em relao ao conjunto de propriedades { transitiva, reflexiva }, denominado fecho transitivo e reflexivo de R e denotado por R*, tal que:
R* = R+ { (a, a) a A }

A definio de fecho transitivo acima de um tipo especial denominada definio indutiva ou


definio recursiva a qual estudada na seo 1.5 Induo. Por enquanto, basta o entendimento intuitivo da construo.
exemplo 1.4 Fecho de um grafo visto como uma relao
Um grafo (direto ou dirigido) pode ser definido como uma endorrelao A (de arcos, arestas
ou setas) em um conjunto V (de nodos ou vrtices). Assim:
A = { (1, 2), (2, 3), (3, 4), (1, 5) }
um grafo em V = { 1, 2, 3, 4, 5 } como ilustrado na figura 1.1 (esquerda), na qual o par
ordenado que define um arco representado por uma seta cujos nodos de origem e de destino, representados como circunferncias, denotam a primeira e a segunda componente do
par, respectivamente. O fecho transitivo e reflexivo:
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) }
ilustrado na figura 1.1 (direita), na qual os arcos adicionados pelo fecho so representados
com um trao diferente.
Essa definio de grafo (como uma relao) permite a existncia de arcos paralelos, ou seja,
dois ou mais arcos com o mesmo nodo origem e destino?

definio 1.8 Relao de ordem parcial, relao de ordem conexa, cadeia


Sejam A um conjunto e R uma endorrelao em A. Ento R uma:
a Relao de ordem parcial se R uma relao:
reflexiva;
antissimtrica;
transitiva;
b Relao de ordem conexa ou cadeia se R uma relao:
de ordem parcial;
conexa.

28

Linguagens Formais e Autmatos

figura 1.1 Grafo (esquerda) e o correspondente fecho transitivo e reflexivo (direita).

exemplo 1.5 Relaes de ordem parcial, cadeia


Considere um conjunto no vazio A. Ento, as seguintes relaes so de:
a Ordem parcial: (N, ), (2A, ) e (Q, =)
b Cadeia: (N, )

definio 1.9 Relao de equivalncia


Sejam A um conjunto e R uma relao em A. Ento R uma Relao de Equivalncia se for
reflexiva, simtrica e transitiva.

Um importante resultado que cada relao de equivalncia R: A A induz uma partio do


conjunto A em subconjuntos disjuntos e no vazios denominados de classes de equivalncia
ou blocos da partio, tal que a unio de todos os blocos resulta em A. Observe que A pode
ser vazio. Ento, quais so os blocos da partio do vazio?
Suponha que, para dado conjunto A, { A1, A2,, An } uma partio de A. Ento, usual
denotar uma classe de equivalncia por um elemento representativo desta, entre colchetes.
Assim, se a1 A1, a2 A2,, an An, vale que:
[a1] = A1, [a2] = A2,, [an] = An
exemplo 1.6 Relao de equivalncia, classes de equivalncia
Considere a seguinte relao:
R = { (a, b) N2 (a MOD 2) = (b MOD 2) }
onde MOD a operao que resulta no resto da diviso inteira. fcil verificar que R uma
relao de equivalncia.
Intuitivamente, a relao R induz uma partio do conjunto N, como segue:

Introduo e Conceitos Bsicos

Captulo 1

[ 0 ], a classe de equivalncia dos nmeros pares (resto zero);


[ 1 ], a classe de equivalncia dos nmeros mpares (resto um).

29

1.2.3 funes parciais


Normalmente, no estudo da teoria dos conjuntos, o conceito de funo parcial marginalmente desenvolvido, comparativamente com o conceito de funo (total). Entretanto, para o
estudo da computao e informtica em geral, e das linguagens formais em particular, o conceito de funo parcial to ou mais importante que o de funo (total). De fato, a maioria
dos formalismos desenvolvidos ao longo do texto baseada em funes parciais.
definio 1.10 Funo parcial
Uma funo parcial uma relao f A B tal que:
se (a, b) f e (a, c) f, ento b = c

Portanto, uma funo parcial uma relao na qual cada elemento do domnio est relacionado com, no mximo, um elemento do codomnio. Uma funo parcial f A B normalmente denotada por:
f: A

ou simplesmente por f: A B, quando claro que se trata de uma funo parcial. Adicionalmente, (a, b) f usualmente denotado por f(a) = b.
definio 1.11 Imagem, conjunto imagem
Seja f: A B uma funo parcial. Ento:
a Se, para a A, existe b B tal que f(a) = b, ento afirma-se que f est definida para a,
e que b Imagem de a; caso contrrio (no existe b B), se afirma que f no definida
para a;
b O conjunto imagem de f, denotado por f(A) ou Img(f), tal que:
f(A) = Img(f) = { b B existe a A tal que f(a) = b }

exemplo 1.7 Funo parcial, conjunto imagem


a Adio nos naturais. A operao ad: N N N definida como abaixo
ad(a, b) = a + b
uma funo parcial na qual o conjunto imagem N, ou seja, coincide com o codomnio;
b Diviso nos reais. A operao div: R R R tal que:
div(x, y) = x / y
uma funo parcial (qual o conjunto imagem?).

30

Linguagens Formais e Autmatos

definio 1.12 Composio de funes parciais


Sejam f: A B e g: B C funes parciais. A composio de f e g a funo 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)) so definidas
(g o f)(a) indefinida, caso contrrio

exemplo 1.8 Composio de funes parciais


Considere a figura 1.2. A composio das funes parciais f: A B e g: B C g o f: A C
e tal que:
(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
(g o f)(d) = g(f(d)) = g(5) = z
g
A

B
a
b
c
d

C
1
2
3
4
5

x
y
z

figura 1.2 Composio de funes parciais.

1.2.4 funes
Funo total, ou simplesmente funo, um caso particular de funo parcial.
definio 1.13 Funo, aplicao
Uma aplicao, funo total ou simplesmente funo uma funo parcial f: A B a qual
total, ou seja, para todo a A, existe b B tal que f(a) = b.

Portanto, uma funo (total) uma funo parcial definida para todos os elementos do domnio.
exemplo 1.9 Funo
Compare o que segue com o exemplo 1.7 Funo parcial, conjunto imagem:
a Adio nos naturais. A operao ad: N N N definida como abaixo uma funo:
ad(a, b) = a + b
b Diviso nos reais. A operao div: R R R definida como abaixo no uma funo,
pois no definida para (x, 0), qualquer que seja x R:
div(x, y) = x/y

Introduo e Conceitos Bsicos

Captulo 1

31

definio 1.14 Composio de funes


Sejam f: A B e g: B C funes. A composio de f e g a funo:
g o f: A C

tal que, para todo a A, (g o f)(a) = g(f(a)).

Portanto, a composio de duas funes f: A B e g: B C a funo g o f: A C onde


(g o f)(a) = g(f(a)) a aplicao de f ao elemento a e, na sequncia, de g imagem f(a).
exemplo 1.10 Composio de funes
A composio das funes ad: N N N (exemplo 1.9 Funo) e quadrado: N N a
funo quadrado o ad: N N N sendo que, para (3, 1) N N, vale que:
(quadrado o ad)(3, 1) = quadrado(ad(3, 1)) = quadrado(4) = 16
Ou seja, a composio das funes resulta no quadrado da adio.

definio 1.15 Funo injetora, funo sobrejetora, funo bijetora


Uma funo f: A B dita:
a Injetora ou monomorfismo se, para todo b B, existe no mximo um a A tal que
f(a) = b;
b Sobrejetora ou epimorfismos se, para todo b B, existe pelo menos um a A tal que
f(a) = b;

c Bijetora ou isomorfismo se simultaneamente injetora e sobrejetora.


Portanto, uma funo :
a Injetora se cada elemento do codomnio imagem de, no mximo, um elemento do
domnio. Uma funo injetora f: A B frequentemente denotada por:
f: A

b Sobrejetora se todo elemento do codomnio imagem de pelo menos um elemento do


domnio. Uma funo sobrejetora f: A B frequentemente denotada por:
f: A

c Bijetora se todo elemento do codomnio imagem de exatamente um elemento do domnio. Uma funo bijetora f: A B frequentemente denotada por:
f: A B
comum usar os termos injeo, sobrejeo e bijeo em vez de funo injetora, funo
sobrejetora e funo bijetora, respectivamente. Adicionalmente, se existe um isomorfismo
(funo bijetora) entre dois conjuntos, estes so ditos conjuntos isomorfos.
exemplo 1.11 Funo injetora, funo sobrejetora, funo bijetora, conjuntos isomorfos
a Funo identidade. uma funo f: A A tal que, para todo a A, f(a) = a, e usualmente denotada por:
idA: A A

32

Linguagens Formais e Autmatos

Uma funo identidade sempre uma bijeo, ou seja, idA: A A


Funo
incluso. uma funo f: A B tal que A B e, para todo a A, f(a) = a, e
b
usualmente denotada por:
incA,B: A

B ou simplesmente inc: A

B
Uma funo incluso sempre uma injeo, ou seja, incA,B: A
c A funo mdulo: Z N tal que mdulo(a) = a sobrejetora, ou seja, mdulo:
N
Z
d A funo f: Z N tal que:
f(a) = 2a se a 0
f(a) = 2a - 1 se a < 0
bijetora, ou seja, um isomorfismo. Portanto, os conjuntos Z e N so conjuntos isomorfos. Note-se que os inteiros no negativos so associados aos naturais pares, e os inteiros
negativos, aos naturais mpares.

1.2.5

cardinalidade de conjuntos

A cardinalidade de um conjunto uma medida de seu tamanho e definida usando funes


bijetoras. Uma importante concluso do estudo da cardinalidade de conjuntos que nem todos
os conjuntos infinitos possuem a mesma cardinalidade, o que contradiz a noo intuitiva da
maioria das pessoas. De fato, como ser visto ao longo do livro, o cardinal (infinito) dos problemas solucionveis (um problema solucionvel se existe pelo menos um algoritmo computacional capaz de solucion-lo) menor que o cardinal (infinito) dos problemas no solucionveis.
Isto significa que existem mais problemas no solucionveis do que problemas solucionveis.
definio 1.16 Cardinalidade finita, cardinalidade infinita
A cardinalidade de um conjunto A, representada por #A, :
a Finita se existe uma bijeo entre A e o conjunto { 1, 2, 3, , n }, para algum n N.
Nesse caso, afirma-se que (como fica o caso em que n = 0?):
#A = n
b Infinita se existe uma bijeo entre A e um subconjunto prprio de A.

Portanto, um conjunto A um:

conjunto finito (ou seja, possui uma cardinalidade finita) se for possvel represent-lo por
extenso, como j comentado;
conjunto infinito se for possvel retirar alguns elementos de A e, mesmo assim, estabelecer
uma bijeo com A.

exemplo 1.12 Cardinalidade do conjunto dos nmeros inteiros


J foi exemplificado (exemplo 1.11 Funo injetora, funo sobrejetora, funo bijetora,
conjuntos isomorfos) que a funo f: Z N tal que:

Captulo 1

Introduo e Conceitos Bsicos

33

se a 0, ento f(a) = 2a
se a < 0, ento f(a) = 2a - 1
bijetora. Claramente, N subconjunto prprio de Z. Ento Z infinito.

De especial interesse para computao e informtica o cardinal do conjunto dos nmeros


naturais N, denotado por 0. O smbolo (l-se lef) a primeira letra do alfabeto hebraico. De fato, 0 o menor cardinal dos conjuntos infinitos.
definio 1.17 Conjunto contvel, conjunto no contvel, conjunto enumervel
Um conjunto infinito A dito:
a Infinitamente contvel ou enumervel se existe uma bijeo entre A e um subconjunto
infinito de N. Neste caso, a bijeo denominada enumerao de A;

b No contvel, caso contrrio.


Portanto, um conjunto contvel se for possvel enumerar seus elementos como uma sequncia na forma a0, a1, a2, . O cardinal de qualquer conjunto contvel 0.
exemplo 1.13 Conjunto enumervel, conjunto no contvel
a Enumerveis: os conjuntos Z e Q
0
b No contveis: os conjuntos I e R. De fato, prova-se que o cardinal de I e R 2 .

1.3

noes de lgica

Lgica matemtica bsica para qualquer estudo em computao e informtica e, em particular, para estudo de linguagens formais. O principal objetivo do texto que segue apresentar
ou revisar os conceitos e terminologia usados e, portanto, no uma abordagem detalhada.
Caso o leitor domine esses conceitos, sugere-se uma passagem rpida por esta seo para
verificar a nomenclatura e as convenes adotadas ao longo do livro.
Entende-se por lgica booleana ou lgica de Boole o estudo dos princpios e mtodos usados
para distinguir sentenas verdadeiras de sentenas falsas. George Boole (ingls, 1815-1864)
foi um dos precursores da lgica.
definio 1.18 Proposio
a Uma proposio uma construo (sentena, frase, pensamento) a que se pode atribuir
juzo. No caso da lgica matemtica, o tipo de juzo o verdadeiro-falso, ou seja, o interesse na verdade das proposies;
b Considere um conjunto universo U. Uma Proposio Sobre U uma proposio cujo valor
lgico depende de um elemento x U considerado.

Em lgica matemtica, a forma tradicional de tratar com a verdade considerar dois valores
verdade V e F (verdadeiro e falso, respectivamente) e estipular que proposies s podem assumir esses valores. Uma proposio p a qual descreve alguma propriedade de um elemento

34

Linguagens Formais e Autmatos

x U usualmente denotada por p(x). Toda proposio p sobre U induz uma partio de U
em duas classes de equivalncia, como segue:
a { x p(x) verdadeira }, denominado conjunto verdade de p
b { x p(x) falsa }, denominado conjunto falsidade de p
definio 1.19 Tautologia, contradio
Seja p uma proposio sobre o conjunto universo U. Ento:
a p dita uma tautologia se p(x) verdadeira para qualquer x U
b p dita uma contradio se p(x) falsa para qualquer x U

exemplo 1.14 Proposio, tautologia, contradio


a A sentena 3 + 4 > 5 uma proposio;
b Para a proposio n! < 10 sobre N, vale que:
{ 0, 1, 2, 3 } o conjunto verdade;
{ n N n > 3 } o conjunto falsidade;
c A proposio n + 1 > n sobre N uma tautologia;
d A proposio 2n mpar sobre N uma contradio.

As proposies introduzidas at o momento so ditas proposies atmicas ou simplesmente


tomos, no sentido em que no podem ser decompostas em proposies mais simples.
Entretanto, possvel construir proposies mais complexas, usualmente denominadas frmulas lgicas ou simplesmente frmulas, compondo proposies usando operadores lgicos,
tambm denominados de conetivos (lgicos).
Neste contexto, tabela-verdade uma tabela que descreve os valores lgicos de uma proposio em termos das possveis combinaes dos valores lgicos das proposies componentes
e dos conetivos usados. Assim, para cada combinao de valores-verdade e de conetivos, a
tabela-verdade fornece o valor-verdade da expresso resultante.
definio 1.20 Operadores lgicos
Para proposies lgicas p e q, a semntica dos seguintes operadores lgicos ou conetivos
(lgicos) dada pela tabela-verdade ilustrada na figura 1.3:
a Negao. A negao de uma proposio construda, introduzindo-se a palavra no
de forma apropriada ou prefixando-se a proposio por no fato que (ou expresso
equivalente).
Se p denota uma proposio, ento a negao de p denotada por:
p

ou

a qual lida:
no p
b Conjuno. A conjuno de duas proposies p e q, denotada por:
pq

Introduo e Conceitos Bsicos

Captulo 1

35

a qual lida:
p e q
reflete uma noo de simultaneidade para ser verdadeira;
c Disjuno. A disjuno de duas proposies p e q, denotada por:
pq
a qual lida:
p ou q
reflete a noo de que pelo menos uma (eventualmente duas) das proposies componentes deve ocorrer para que a resultante seja verdadeira;
d Condio. A condio envolvendo duas proposies p e q, denotada por:
pq
a qual lida:
se p ento q
reflete a noo de que, a partir de uma premissa verdadeira (ou seja, p verdadeira),
obrigatoriamente deve-se chegar a uma concluso verdadeira (ou seja, q verdadeira),
para que a proposio composta p q seja verdadeira. Entretanto, partindo de uma
premissa falsa, qualquer concluso pode ser considerada;
e Bicondio. A bicondio envolvendo duas proposies p e q, denotada por:
pq
a qual lida:
p se e somente se q
reflete a noo de condio nos dois sentidos, ou seja, considera simultaneamente:
ida: p premissa e q concluso;
volta: q premissa e p concluso.

pq

pq

pq

pq

V
V
F
F

V
F
V
F

F
F
V
V

V
F
F
F

V
V
V
F

V
F
V
V

V
F
F
V

figura 1.3 Tabela-verdade: negao, e, ou, se-ento, se-somente-se.

Note-se que todos os operadores definidos acima so binrios e denotados de forma infixada
(operador no meio dos operandos), excetuando-se o de Negao, que unrio e denotado
de forma prefixada.

36

Linguagens Formais e Autmatos

Na realidade, o conetivo bicondicional pode ser visto como uma composio dos conetivos
condicional e conjuno. De fato, sugere-se como exerccio verificar que:
p q possui a mesma tabela-verdade que (p q) (q p)
ou seja, que para as mesmas atribuies de verdade a p e a q, as duas proposies tm o
mesmo valor-verdade.
Os conetivos de condio e bicondio induzem as relaes de implicao e de equivalncia entre frmulas, respectivamente. A importncia dessas relaes pode ser resumida
como segue:
a Relao de implicao: est diretamente relacionada com o conceito de teorema, como
ser visto adiante;
b Relao de equivalncia: permite definir a noo de mesmo significado entre duas frmulas (sintaticamente) diferentes.
definio 1.21 Relao de implicao, equivalncia
Sejam p e q duas proposies. Ento:
a Relao de implicao. Afirma-se que p implica q, fato que denotado por:
pq

ou

se e somente se:
p q uma tautologia
b Relao de equivalncia. Afirma-se que p equivalente a q, fato que denotado por:
pq
se e somente se:
p q uma tautologia

fcil verificar que e so relaes de ordem e de equivalncia, respectivamente.


exemplo 1.15 Relao de implicao, equivalncia
a Adio (tabela-verdade ilustrada na figura 1.4)
ppq
b Simplificao (tabela-verdade ilustrada na figura 1.4)
pqp
c Contraposio (tabela-verdade ilustrada na figura 1.5)
p q q p
d Reduo ao absurdo (tabela-verdade ilustrada na figura 1.6)
p q (p q) F

Introduo e Conceitos Bsicos

Captulo 1

pq

p (p q)

pq

(p q) p

V
V
F
F

V
F
V
F

V
V
V
F

V
V
V
V

V
F
F
F

V
V
V
V

37

figura 1.4 Tabela-verdade: adio e simplificao.

pq

q p

(p q) (q p)

V
V
F
F

V
F
V
F

F
F
V
V

F
V
F
V

V
F
V
V

V
F
V
V

V
V
F
V

figura 1.5 Tabela-verdade: contraposio.

pq

V
V
F
F

V
F
V
F

F
V
F
V

V
F
V
V

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

V
F
V
V

V
V
V
V

figura 1.6 Tabela-verdade: reduo ao absurdo.

1.4

tcnicas de demonstrao

Um teorema uma proposio do tipo:


pq
a qual, prova-se, verdadeira sempre (tautologia), ou seja, que:
pq
As proposies p e q so denominadas hiptese e tese, respectivamente. usual denominar
corolrio um teorema que uma consequncia quase direta de um outro j demonstrado (ou
seja, cuja prova trivial ou imediata). Adicionalmente, um teorema auxiliar que possui um
resultado importante para a prova de um outro usualmente denominado lema.
Teoremas so fundamentais em computao e informtica e, em particular, no estudo de
linguagens formais e autmatos. Por exemplo, um teorema permite verificar se uma determinada implementao correta. Sob este ponto de vista, um teorema pode ser visto como
um algoritmo que, prova-se, sempre funciona. De fato, muitos dos teoremas apresentados ao
longo do livro refletem essa ideia.

38

Linguagens Formais e Autmatos

Antes de iniciar uma demonstrao, fundamental identificar claramente a hiptese e a tese.


Por exemplo, considere o seguinte teorema:
a interseco distribui-se sobre a unio, ou seja,
A (B C) = (A B) (A C).
Uma reescrita identificando claramente a hiptese e a tese, como segue:
se A, B e C so conjuntos quaisquer,
ento A (B C) = (A B) (A C).
usual um teorema ser apresentado na forma p q como, por exemplo (suponha que A
um conjunto qualquer):
A contvel se e somente se existe uma funo
bijetora entre A e o conjunto dos nmeros pares.
J foi sugerido como exerccio verificar que:
p q (p q) (q p)
Assim, neste caso, deve ser demonstrada a ida e a volta, ou seja, que:
se um conjunto A contvel, ento existe uma funo
bijetora entre A e o conjunto dos nmeros pares
e
se existe uma funo bijetora entre A e o conjunto
dos nmeros pares, ento A contvel.
Para um determinado teorema p q, existem diversas tcnicas para provar (demonstrar)
que, de fato, p q. As seguintes tcnicas de demonstrao destacam-se:
a Prova direta;
b Prova por contraposio;
c Prova por reduo ao absurdo ou simplesmente prova por absurdo;
d Prova por induo.
A prova por induo uma aplicao particular do princpio da induo matemtica, a qual
ser estudada na seo 1.5 Induo. Os demais tipos de prova so descritos a seguir. Destaque-se que, ao longo de todo o livro, cada demonstrao um exemplo de uso de tais

Captulo 1

Introduo e Conceitos Bsicos

39

tcnicas. Seguindo este raciocnio, os exerccios de demonstrao tambm esto distribudos


ao longo de todo o livro.

1.4.1 prova direta


definio 1.22 Prova direta
Uma prova dita prova direta ou demonstrao direta quando pressupe verdadeira a hiptese e, a partir desta, prova ser verdadeira a tese.

exemplo 1.16 Prova direta


Considere o teorema:
a interseco distribui-se sobre a unio, ou seja,
A (B C) = (A B) (A C).
exemplificado acima. Inicialmente, lembre-se que:
a Por definio, X = Y se e somente se X Y e Y X
b Por definio, X Y se e somente se todos os elementos de X tambm so elementos de Y
Adicionalmente, fcil verificar, usando tabela-verdade, que o operador lgico distribui-se
sobre o operador lgico , ou seja, para quaisquer proposies p, q e r:
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)
(A B) (A C) A (B C)

caso 1
caso 2

Suponha que A, B e C so conjuntos quaisquer.


Caso 1. Suponha x A (B C). Ento:
x A (B C)
x A x (B C)
x A (x B x C)
(x A x B) (x A x C)
x (A B) x (A C)
x (A B) (A C)
Portanto, A (B C) (A B) (A C)
Caso 2. Suponha x (A B) (A C). Ento:
x (A B) (A C)
x (A B) x (A C)
(x A x B) (x A x C)
x A (x B x C)

definio de interseco
definio de unio
distributividade do sobre o
definio de interseco
definio de unio

definio de unio
definio de interseco
distributividade do sobre o
definio de unio

40

Linguagens Formais e Autmatos

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

1.4.2

definio de interseco

prova por contraposio

A prova por contraposio baseia-se no seguinte resultado (denominado de contraposio), o


qual foi verificado no exemplo 1.15 Relao de implicao, equivalncia:
p q q p
definio 1.23 Prova por contraposio
Uma prova dita prova por contraposio ou demonstrao por contraposio quando, para
provar p q, prova-se q p, pois so formas equivalentes. Para provar q p basta,
a partir de q, obter p (prova direta).

exemplo 1.17 Prova por contraposio


Para demonstrar o seguinte teorema (supondo n N):
n! > (n + 1) n > 2
pode-se, equivalentemente, demonstrar por contraposio que:
n 2 n! n + 1
Observe que muito simples provar que n 2 n! n + 1, pois basta testar a proposio
para os casos n = 0, n = 1 e n = 2, o que se sugere como exerccio.

1.4.3

prova por reduo ao absurdo

A prova por reduo ao absurdo baseia-se no seguinte resultado (denominado de reduo ao


absurdo), o qual foi verificado no exemplo 1.15 Relao de implicao, equivalncia:
p q (p q) F
definio 1.24 Prova por reduo ao absurdo
Uma prova dita prova (demonstrao) por reduo ao absurdo ou simplesmente prova (demonstrao) por absurdo quando a prova de p q consiste em supor a hiptese p, supor a
negao da tese q e concluir uma contradio (em geral, q q).

Observe que a tcnica de demonstrao conhecida como prova por contraexemplo, uma
demonstrao por absurdo. De fato, em uma demonstrao por absurdo, a construo da
contradio q q , em geral, a apresentao de um contraexemplo.

Captulo 1

Introduo e Conceitos Bsicos

41

exemplo 1.18 Prova por reduo ao absurdo


Considere o seguinte teorema:
0 o nico elemento neutro da adio em N
ou seja, reescrevendo na forma de p q:
se 0 elemento neutro da adio em N,
ento 0 o nico elemento neutro da adio em N.
Uma prova por reduo ao absurdo como segue:
a Suponha que (hiptese) 0 elemento neutro da adio em N e que (negao da tese) 0
no o nico elemento neutro da adio em N. Seja e um elemento neutro da adio em
N tal que e 0 (se 0 no o nico, ento existe um outro, diferente de 0);
Ento;
b
como 0 elemento neutro, para qualquer n N, vale n = 0 + n = n + 0. Em particular, para n = e, vale e = 0 + e = e + 0
como e elemento neutro, para qualquer n N, vale n = n + e = e + n. Em particular, para n = 0, vale 0 = 0 + e = e + 0
portanto, como e = 0 + e = e + 0 e 0 = 0 + e = e + 0, pela transitividade da igualdade, vale e = 0, o que uma contradio, pois foi suposto que e 0
Logo, absurdo supor que o elemento neutro da adio em N no nico. Portanto, 0 o
nico elemento neutro da adio em N.

1.5
1.5.1

induo
princpio da induo matemtica

O princpio da induo matemtica uma tcnica para lidar com tipos de dados que tm uma
relao de boa-ordem, isto , uma relao onde todo subconjunto no vazio do tipo de dado
tem um elemento mnimo segundo essa relao de ordem. Um exemplo tpico o conjunto
dos nmeros naturais. Dada uma boa-ordem, pode-se aplicar induo para provar propriedades que valem para todo elemento do tipo de dado. Por simplicidade, o tipo de dados que
tem uma relao de boa-ordem considerado o conjunto dos nmeros naturais N (ou qualquer outro conjunto isomorfo a N).

42

Linguagens Formais e Autmatos

definio 1.25 Princpio da induo matemtica


Seja p(n) uma proposio sobre M = {n N n m e m N }. O princpio da induo
matemtica como segue:
a p(m) verdadeira;
b Para qualquer k M, vale p(k) p(k + 1)
c Ento, para qualquer n M, p(n) verdadeira.
Nesse caso, utiliza-se a seguinte denominao:

base de induo: a proposio p(m)


hiptese de induo: a proposio p(k)
passo de induo: a implicao p(k) p(k + 1)

Na definio acima, o princpio da induo matemtica foi apresentado na sua forma mais
tradicional, usualmente denominada de primeiro princpio da induo matemtica. Outras
formulaes alternativas do mesmo princpio so usuais. Observe que, embora o princpio da
induo matemtica seja definido sobre o conjunto dos nmeros naturais, qualquer conjunto
isomorfo a N pode ser considerado.
Duas aplicaes do princpio da induo matemtica destacam-se:
a Prova indutiva ou prova por induo, uma tcnica de demonstrao muito comum no
contexto da computao e informtica, a qual no do domnio da lgica pura.
b Definio indutiva ou definio recursiva, igualmente comum no contexto da computao e informtica, j usada anteriormente de maneira informal.

1.5.2 prova indutiva


A prova indutiva ou prova por induo limita-se a confirmar se uma determinada conjectura
p(n) sobre n M = {n N n m e m N } correta.
Assim, em uma demonstrao por induo, deve-se demonstrar a base de induo p(m) e,
fixado um k, supor verdadeira a hiptese de induo p(k) e demonstrar o passo de induo,
ou seja, que p(k) p(k + 1) , de fato, uma implicao.
exemplo 1.19 Prova por induo: 1 + 2 + + n = (n2 + n)/2
Considere o seguinte teorema:
para qualquer n N, vale que 1 + 2 + + n = (n2 + n)/2.
Uma prova por induo de p(n): 1 + 2 + + n = (n + n)/2 como segue:
a Base de induo. Seja k = 0. Ento:
(02 + 0)/2 = (0 + 0)/2 = 0/2 = 0

Captulo 1

Introduo e Conceitos Bsicos

43

Portanto, p(0) verdadeira. Note que:


1 + 2 + + k = 0 +1 + 2 + + k
pois 0 o elemento neutro da adio, e portanto, o somatrio at k = 0 perfeitamente
definido;
b Hiptese de induo. Suponha que, para algum k N:
p(k): 1 + 2 + + k = (k2 + k)/2 verdadeira
c Passo de induo. Prova para:
p(k + 1): 1 + 2 + + k + (k + 1) = ((k + 1)2 + k + 1)/2
como segue:
1 + 2 + + k + (k + 1) =
(1 + 2 + + k) + (k + 1) =
pela hiptese de induo
(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
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

1.5.3

segundo princpio da induo matemtica

Em diferentes momentos, pode ser conveniente trabalhar com outras formulaes do princpio da induo matemtica. Uma formulao especialmente importante para computao e
informtica o segundo princpio da induo matemtica.
definio 1.26 Segundo princpio da induo matemtica
Seja p(n) uma proposio sobre M = {n N n m e m N }. O segundo princpio da
induo matemtica pode, equivalentemente, ser definido como segue:
a Primeira verso.
a.1) p(m) verdadeira;
a.2) Para qualquer k M, vale:
p(m) p(m + 1) p(k) p(k + 1)
a.3) Ento, para qualquer n N, p(n) verdadeira.
b Segunda verso. Suponha t N:
b.1) p(m), p(m + 1),,p(m + t), so verdadeiras;
b.2) Para qualquer k M tal que k m + t, vale:
p(m) p(m + 1) p(k) p(k + 1)
b.3)

Ento, para qualquer n N, p(n) verdadeira.

44

Linguagens Formais e Autmatos

Observe que a segunda verso do segundo princpio da induo matemtica prova os t primeiros casos em separado para verificar a base de induo.
Uma aplicao usual desse princpio est na definio e na prova de propriedades de expresses, frmulas, rvores, etc., razo pela qual esse princpio frequentemente denominado de
induo em estrutura, induo estruturada, ou ainda, induo estrutural.
exemplo 1.20 Segundo princpio da induo matemtica: proposio lgica
Considere o seguinte teorema:
Suponha que p uma proposio lgica a qual contm exclusivamente os
conetivos lgicos conjuno, disjuno e condio.
Se o valor-verdade de todos os tomos de p V, ento o valor-verdade de p V.
Uma prova por induo (no nmero de tomos, usando a primeira verso do segundo princpio da induo) como segue:
a Base de induo. Seja k = 1. Ento p um tomo. Portanto, por hiptese, o valor-verdade de p V;
b Hiptese de induo. Suponha que, para algum k N, e para qualquer u N tal que
u k, se o nmero de tomos de p u, ento o valor-verdade de p V;
c Passo de induo. Seja p uma proposio com k + 1 tomos. Ento p pode ser reescrita
em um dos seguintes casos, sendo que q e r so proposies lgicas as quais, individualmente, possuem no mximo k tomos e, conjuntamente, possuem k + 1 tomos:
qr

qr

qr

Como, por hiptese de induo o valor-verdade de q e r V, vale que, em qualquer dos


casos, o valor-verdade de p V.

1.5.4 definio indutiva


O princpio da induo matemtica pode ser usado tambm em definies. Uma definio
de uma construo usando esse princpio denominada definio indutiva ou definio recursiva. Nesse caso, afirma-se que a construo indutivamente definida ou recursivamente
definida. Resumidamente, em uma definio indutiva:

a base de induo explicita os casos elementares (mais simples);


o passo de induo determina como os demais casos so definidos em termos dos
anteriores.

Este tipo de definio j foi usado anteriormente quando da definio de fecho transitivo
(veja Definio 1.7 Fecho transitivo, fecho transitivo e reflexivo), a qual reproduzida a
seguir:

Captulo 1

Introduo e Conceitos Bsicos

45

O fecho de R em relao ao conjunto de propriedades { transitiva }, denominado fecho


transitivo de R e denotado por R+, definido como segue:
a Se (a, b) R, ento (a, b) R+
b Se (a, b) R+ e (b, c) R+, ento (a, c) R+
c Os nicos elementos de R+ so os construdos como acima.
Nesse caso, vale que:

item a) a base de induo;


item b) o passo de induo (e a hiptese?);
item c) garante que, de fato, esta uma definio indutiva.

Quando se afirma que se trata de uma definio indutiva, o item c) acima usualmente omitido ( subentendido).

1.6

exerccios

exerccio 1.1 Qual a relao entre linguagens formais e as anlises lxica, sinttica e semntica?
exerccio 1.2 Para A = { 1 }, B = { 1, 2 } e C = { { 1 }, 1 }, marque as afirmaes corretas:
a AB
b AB
c AB
d A=B
e AC
f AC
g AC
h A=C
i 1A
j 1C
k {1}A
l {1}C
m C
n C

[
[
[
[
[
[
[
[
[
[
[
[
[
[

]
]
]
]
]
]
]
]
]
]
]
]
]
]

exerccio 1.3 Para A = { 1, 2 } e B = { { 1 }, { 2 }, 1, 2 }, determine o conjunto resultante


em cada um dos seguintes itens:
a AB
b AB

46

Linguagens Formais e Autmatos

c B
d B
e BN
f BN
g BNR
h (B N) R
exerccio 1.4 Prove as seguintes propriedades (suponha que A e B so conjuntos):
Sugesto: solues para este exerccio podem depender de algum conhecimento de lgica. Caso
voc encontre alguma dificuldade ao tentar resolv-lo, volte a esse exerccio aps o estudo da
seo 1.3 Noes de lgica e as correspondentes propriedades apresentadas no exerccio 1.24.
a Elemento neutro.
a.1) A = A = A
a.2) A U = U A = A
b Idempotncia.
b.1) A A = A
b.2) A A = A
c Comutativa.
c.1) A B = B A
c.2) A B = B A
d Associativa.
d.1) A (B C) = (A B) C
d.2) A (B C) = (A B) C
e Distributiva.
e.1) A (B C) = (A B) (A C)
e.2) A (B C) = (A B) (A C)
f Duplo complemento.
~(~A) = A
g DeMorgan.
g.1) ~(A B) = ~A ~B
g.2) ~(A B) = ~A ~B
h Universo e vazio.
h.1) A ~A = U
h.2) A ~A =

Captulo 1

Introduo e Conceitos Bsicos

47

exerccio 1.5 Considere a propriedade de DeMorgan, relacionada com a operao de complemento e que envolve as operaes de unio e de interseco. Prove que a interseco
(respectivamente, a unio) pode ser calculada em termos das operaes de complemento e
de unio (respectivamente, de interseco), ou seja, que:
a A B = ~(~A ~B)
b A B = ~(~A ~B)
exerccio 1.6 Referente s operaes sobre conjuntos, discuta a validade das seguintes afirmaes (suponha que A um conjunto):
a A operao diferena associativa e comutativa;
b A operao produto cartesiano associativa e comutativa;
c O conjunto das partes do conjunto das partes de A o conjunto das partes de A.
exerccio 1.7 Determine em que condies as seguintes relaes so conexas (suponha A
um conjunto no vazio):
a (2A, )
A
b (2 , )
exerccio 1.8 Exemplifique cada um dos casos abaixo:
a Relao que no simtrica nem antissimtrica;
b Relao que simultaneamente simtrica e antissimtrica.
exerccio 1.9 Considere a seguinte relao em { 1, 2, 3, 4 }:
R = { (1, 1), (1, 2), (2, 1) }
Determine:
a O fecho transitivo R+;
b O fecho transitivo e reflexivo R*.
exerccio 1.10 Sejam R: A A uma endorrelao e P um conjunto de propriedades. Em
que condies R = FECHO-P(R)?
exerccio 1.11 Suponha que so conhecidos todos os trechos parciais que podem ser percorridos por um carteiro (exemplo: da casa A para a casa B). Usando a noo de grafo como
uma relao e o conceito de fecho, como podem ser representados todos os caminhos que o
carteiro pode fazer?

48

Linguagens Formais e Autmatos

exerccio 1.12 A definio de grafo como uma endorrelao permite a existncia de arcos paralelos, ou seja, dois ou mais arcos com o mesmo nodo origem e destino? Justifique a sua resposta.
exerccio 1.13 Toda relao de ordem uma relao de equivalncia e vice-versa? Justifique
a sua resposta.
exerccio 1.14 Um conjunto vazio pode ser (e, neste caso, em que condies):
a Uma relao de ordem?
b Uma relao de equivalncia?
exerccio 1.15 Determine uma partio do conjunto vazio.
exerccio 1.16 Para cada item abaixo, justifique a sua resposta:
a Toda funo uma funo parcial e vice-versa?
b Toda funo parcial uma relao e vice-versa?
exerccio 1.17 Relativamente a A B (justifique a sua resposta):
a Pode ser uma relao?
b Pode ser uma funo parcial?
c Pode ser uma funo?
exerccio 1.18 Verifique a existncia de funes entre os conjuntos de cada item abaixo. No
caso de existir, quantas e quais funes distintas podem ser definidas?
a Domnio { a } e codomnio { x, y, z }
b Domnio e codomnio { x, y, z }
c Domnio { a, b, c } e codomnio { x }
d Domnio { a, b, c } e codomnio
e Domnio { a, b } e codomnio { a, b }
exerccio 1.19 Determine todas as composies de funes que podem ser definidas sobre
as seguintes funes:
a Todas as funes com domnio e codomnio em { a, b }
b Todas as funes com domnio em { a, b, c } e codomnio em { x }
exerccio 1.20 Reescreva as seguintes funes com domnio e codomnio em R em termos
de composio de funes elementares:
a f1(x) = x + x2
2
b f2(x) = (x sen x + cos x)

Captulo 1

Introduo e Conceitos Bsicos

49

exerccio 1.21 Seja f: A B uma funo. Uma funo g: B A dita:


inversa esquerda de f se g o f = idA
inversa direita de f se f o g = idB
Prove que:
a Se f injetora, ento f tem inversa esquerda;
b Se f sobrejetora, ento f tem inversa direita.
exerccio 1.22 Prove que Q contvel.
Sugesto: considere Q como sendo um conjunto de pares e, para construir uma funo injetora de Q para N, lembre-se de que a decomposio de um nmero em seus fatores primos
nica.
exerccio 1.23 Prove que:
a A relao de ordem parcial. A relao conexa?
b A relao de equivalncia.
exerccio 1.24 Prove as seguintes equivalncias:
a Idempotncia.
ppp
ppp
b Comutativa.
pqqp
pqqp
c Associativa.
p (q r) (p q) r
p (q r) (p q) r
d Distributiva.
p (q r) (p q) (p r)
p (q r) (p q) (p r)
e Dupla negao.
p p
f DeMorgan.
(p q) p q
(p q) p q

50

Linguagens Formais e Autmatos

g Verdadeiro e falso.
p p V
p p F
exerccio 1.25 Prove, usando tabela-verdade, que quaisquer dos conetivos estudados podem ser expressos usando somente os conetivos e .
exerccio 1.26 Suponha que A(n) denota 1 + 2 + + n = ((2n + 1)2)/8. Ento:
a Prove que se A(k) verdadeiro para um k N, ento A(k + 1) tambm verdadeiro;
b Considerando o item acima, discuta a afirmao:
portanto, por induo, A(n) verdadeiro para qualquer n N.
c De fato, A(n) verdadeiro para qualquer n N? Prove a sua resposta.
exerccio 1.27 Prove por induo que, para qualquer n N, vale que:
1 + 8 + 27 + n3 = (1 + 2 + + n)2
Dica: para verificar a base de induo (n = 0), lembre-se de que zero o elemento neutro
da adio.
exerccio 1.28 Desenvolva uma prova por induo do seguinte teorema:
Qualquer valor de postagem igual ou maior que 12 reais pode
ser formado usando exclusivamente selos de 4 e de 5 reais.
Dica: faa uma prova por induo no nmero de selos, usando a segunda verso do segundo
princpio da induo.
exerccio 1.29 Por que a prova por induo que segue no correta?
a Proposio. Dado um conjunto de n torcedores de futebol, se pelo menos um torcedor
gremista, ento todos os demais torcedores tambm so gremistas;
b Prova. A proposio trivialmente verdadeira para n = 1. O passo de induo pode ser
facilmente entendido pelo seguinte exemplo:
suponha que a proposio verdadeira para n = 3;
sejam T1, T2, T3 e T4, quatro torcedores dos quais pelo menos um gremista (suponha que T1);

Captulo 1

Introduo e Conceitos Bsicos

51

supondo o conjunto { T1, T2, T3 } e a hiptese de que verdadeiro para n = 3, ento


T2 e T3 so gremistas;
analogamente para { T1, T2, T4 }, vale que T2 e T4 so gremistas;
portanto, os quatro torcedores so gremistas!
a generalizao da construo acima para k e k + 1, a prova desejada.