Sunteți pe pagina 1din 22

Indução Estrutural

1
Wladimir Araújo Tavares

1 Universidade Federal do Ceará - Campus de Quixadá

8 de agosto de 2019

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 1 / 22


Definições Recursivas

Em computação, usamos a recursão para definir sequências,


funções, conjuntos e algoritmos. Por exemplo, a sequência de
fibonacci, a função fatorial e o conjunto das proposições compostas
da lógica proposicional.
Nessas definições, especificamos alguns elementos iniciais em um
passo base e fornecemos uma regra para a construção de novos
elementos em um passo recursivo.
Uma das vantagem das definições recursivas é que podemos
demonstrar alguns resultados usando o método de indução
estrutural.

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 2 / 22


Sequência de Fibonacci

Definição (Sequência de Fibonacci)


A sequência de Fibonacci f0 , f1 , f2 , . . . pode ser definido por:
PASSO BASE: f0 = 0, f1 = 1
PASSO RECURSIVO: fn = fn−1 + fn−2 para todo n ≥ 2.

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 3 / 22


Indução

Podemos provar por indução que

f0 + f1 + f2 + . . . + fn = fn+2 − 1 (1)
para todo n ≥ 0

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 4 / 22


Passo Base

Passo Base
Vamos mostrar que

f0 = f2 − 1
f0 = 0 (PASSO BASE)
f2 − 1 = f1 + f0 − 1 (PASSO RECURSIVO)
= 1+0-1
= 0

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 5 / 22


Passo Indutivo

Passo Indutivo
Hipótese de Indução f0 + f1 + . . . + fn = fn+2 − 1 para algum n
Tese f0 + f1 + . . . + fn + fn+1 = fn+3 − 1
Vamos mostrar que a tese é verdadeira.
f0 + f1 + . . . + fn + fn+1
= Hipótese de Indução
(fn+2 − 1) + fn+1
= Comutatividade
(fn+2 + fn+1 ) − 1
= Passo Recursivo
fn+3 − 1

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 6 / 22


Conjunto Σ∗

Definição (Conjunto Σ∗ )
O conjunto de palavras do alfabeto Σ, denotado por Σ∗ , pode ser definido
recursivamente
PASSO BASE: ε ∈ Σ∗ (em que ε é a cadeia vazia)
PASSO RECURSIVO: se w ∈ Σ∗ e x ∈ Σ então wx ∈ Σ∗
Dado Σ = {0, 1}, a palavra w = 010 pertence ao conjunto Σ∗ . Utilizando
os seguintes passos:
ε ∈ Σ∗
ε ∈ Σ∗ e 0 ∈ Σ, então 0 ∈ Σ∗ .
0 ∈ Σ∗ e 1 ∈ Σ, então 01 ∈ Σ∗ .
01 ∈ Σ∗ e 0 ∈ Σ, então 010 ∈ Σ∗ .

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 7 / 22


Concatenação

Definição (Concatenação)
A função · que realiza a concatenção de duas palavras w1 e w2 pode ser
definida recursivamente por:
PASSO BASE: Se w ∈ Σ∗ então w · ε = w
PASSO RECURSIVO: se w 1 ∈ Σ∗ , w 2 ∈ Σ∗ e x ∈ Σentão
w1 · (w2 x) = (w1 · w2 )x

A concatenação das palavras w1 = 010 e w2 = 10 pode ser realizada


utilizando os seguintes passos:

(010) · (10) = ((010) · (1))0 = ((010) · (ε))10 = 01010 (2)

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 8 / 22


Tamanho

Definição (Tamanho)
A função l(w ) devolve o comprimento de uma palavra w pode ser definida
recursivamente por:
PASSO BASE: l(ε) = 0
PASSO RECURSIVO: se w ∈ Σ∗ e x ∈ Σ então l(wx) = l(w ) + 1

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 9 / 22


Indução Estrutural

Prove, por indução, sobre y que

l(xy ) = l(x) + l(y ) (3)


para todo x, y ∈ Σ∗

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 10 / 22


Passo Base

Passo Base
Considere y = ε

l(xε) = l(x) + l(ε) (4)

l(xε) = l(x) (definição de ·)


= l(x) + 0 (elemento neutro)
= l(x) + l(ε) (definição de l)

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 11 / 22


Passo Indutivo

Passo Indutivo
Considere y = wx
Hipótese de Indução l(x · w ) = l(x) + l(w )
Tese l(x · (wx)) = l(x) + l(wx)
Vamos mostrar que a tese é verdadeira.
l(x · (wx))
= definição ·
l((x · w )x)
= definição de l
l(x · w ) + 1
= Hipótese de Indução
l(x) + l(w ) + 1
= definição de l
l(x) + l(wx)

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 12 / 22


Reverso

Definição (Reverso)
A função rev devolve o reverso de uma palavra w pode ser definida
recursivamente por:
PASSO BASE: rev (ε) = ε
PASSO RECURSIVO: se w ∈ Σ∗ e x ∈ Σ então rev (wx) = x · rev (w )

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 13 / 22


Indução Estrutural

Prove por indução sobre y que

rev (rev (y )) = y (5)


para todo y ∈ Σ∗

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 14 / 22


Passo Base

Passo Base
Considere y = ε

rev (rev (ε)) = ε (6)

rev (rev (ε)) = rev (ε) (definição de reverso)


= ε (definição de reverso)

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 15 / 22


Passo Indutivo

Passo Indutivo
Considere y = wx
Hipótese de Indução rev (rev (w )) = w
Tese rev (rev (wx)) = wx
Vamos mostrar que a tese é verdadeira.
rev (rev (wx))
= definição rev
rev (x · rev (w ))
= Hipótese de Indução
rev (x · w )
= ????
Não conseguimos continuar!!
Vamos precisar de um resultado auxiliar.

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 16 / 22


Resultados Auxiliares

Vamos precisar do seguinte resultado:


O reverso da concatenção de duas strings

rev (x · y ) = rev (y ) · rev (x)

para todo x, y ∈ Σ∗

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 17 / 22


Passo Indutivo

Passo Indutivo
Hipótese de Indução rev (rev (w )) = w
Tese rev (rev (wx)) = wx
Vamos mostrar que a tese é verdadeira.
rev (rev (wx))
= definição reverso
rev (x · rev (w ))
= Reverso da concatenação
rev (rev (w )) · rev (x)
= definição de reverso
rev (rev (w )) · x
= Hipótese de Indução
w ·x
= wx

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 18 / 22


Indução Mútua

Considere a seguinte máquina de estados:

Pressionar

Desligado Ligado

Pressionar

Para demonstrar, por indução, que


S1 (n) : Se a máquina de estados está no estado Desligado após n acionamentos então n é par.
para todo n ≥ 0.
Precisamos provar que
S2 (n) : Se a máquina de estados está no estado Ligado após n acionamentos então n é ı́mpar.
para todo n ≥ 0.
A recı́proca também é verdadeira.
Para resolver essa dependência mútua, vamos utilizar a indução mútua.

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 19 / 22


Indução Mútua

Considere a seguinte máquina de estados:

Pressionar

Desligado Ligado

Pressionar

Vamos demonstrar, por indução, que


S1 (n) : Se a máquina de estados está no estado Desligado após n acionamentos então n é
par.
S2 (n) : Se a máquina de estados está no estado Ligado após n acionamentos então n é
ı́mpar.
para todo n ≥ 0.

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 20 / 22


Passo Base

Passo Base
Vamos mostrar que S1 (0) e S2 (0) são válidos
A máquina está no estado Desligado após 0 acionamentos e 0 é par. Logo,
S1 (0) e S2 (0) é valido. S2 (0) é válido por vacuidade, uma vez que a
premissa é falsa.

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 21 / 22


Passo Indutivo

Passo Indutivo
Hipótese de Indução S1 (n) e S2 (n) são válidos para algum n
Tese S1 (n + 1) e S2 (n + 1) são válidos
Vamos mostrar que a tese é verdadeira.
Para mostrar que S1 (n + 1) é válido. Suponha que a máquina está no
estado Desligado após n + 1 acionamentos. Analisando a máquina, a
máquina estava no estado Ligado após n acionamentos. Pela Hipótese de
Indução, n é ı́mpar. Logo, n + 1 é par.
Analogamente, podemos mostrar que S2 (n + 1) é válido.

Wladimir Araújo Tavares (UFC) Indução Estrutural 8 de agosto de 2019 22 / 22

S-ar putea să vă placă și