base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf ·...

58
219 Capítulo 7 - Provas por indução e conjuntos definidos indutivamente Neste capítulo começaremos por recordar a importante técnica da demonstração por indução nos naturais, e introduziremos uma sua ªversão forteª. Mostraremos que se podem definir princípios de indução noutros conjuntos e que o princípio da indução (finita) nos naturais pode ser visto como um caso particular do princípio de indução sobre uma relação bem fundada. Introduziremos, ainda, a noção de conjunto definido indutivamente e veremos a forma de demonstração por indução de propriedades definidas sobre tais conjuntos (a que chamaremos de demonstração por indução estrutural). Secção 1: O princípio da indução finita nos naturais e sua "versão forte". Uma das principais formas de demonstrar que uma certa propriedade se verifica para todos os naturais é por indução. Neste texto já fizemos algumas demonstrações por indução, e várias mais iremos ainda fazer (nomeadamente no capítulo 9, relativo à solução de relações de recorrência). Nesta secção iremos recordar tal técnica de demonstração e introduzir uma sua "versão forte" que por vezes é útil. Seja P(n) uma propriedade (uma condição) definida sobre todos os naturais. Quando queremos provar que tal propriedade se verifica (é verdadeira) para todos os naturais, podemos usar a técnica da demonstração por indução 1 (informalmente, também se diz, por vezes, que se vai demonstrar por "indução em n" que se tem P(n) para todo o natural n). A demonstração por indução baseia-se no princípio da indução finita 2 , que podemos traduzir pela fórmula: ( P(0) n|No (P(n) P(n+1)) ) n|No P(n) ou descrever por palavras, como se segue: Princípio da indução finita (versão "simples", ou versão "fraca") : Seja P(n) uma propriedade (uma condição) definida sobre todos os naturais. Se i) P(0) se verifica (isto é, P(0) traduz uma asserção verdadeira), e se ii) qualquer que seja o natural n, se P(n) é verdadeira, então P(n+1) também é verdadeira então verifica-se P(n) para todo o natural n. Assim, de acordo com este princípio, para provar que n|No P(n), basta-nos provar: i) que se verifica P(0) (a chamada base da indução) ii) e que n|No (P(n) P(n+1)) (o chamado passo de indução) 1 O que não significa que se deva sempre usar tal técnica de demonstração. Por vezes, para provar que uma certa propriedade se verifica para todos os naturais, há demonstrações "directas" mais simples (e adequadas) que a demonstração por indução. 2 Por vezes, também chamado de princípio de indução matemática (veja-se, por exemplo, o livro [46], página 27).

Transcript of base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf ·...

Page 1: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

219

Capítulo 7 - Provas por indução e conjuntos definidos indutivamente

Neste capítulo começaremos por recordar a importante técnica da demonstração por indução nos naturais, e

introduziremos uma sua ªversão forteª. Mostraremos que se podem definir princípios de indução noutros

conjuntos e que o princípio da indução (finita) nos naturais pode ser visto como um caso particular do

princípio de indução sobre uma relação bem fundada. Introduziremos, ainda, a noção de conjunto definido

indutivamente e veremos a forma de demonstração por indução de propriedades definidas sobre tais

conjuntos (a que chamaremos de demonstração por indução estrutural).

Secção 1: O princípio da indução finita nos naturais e sua "versão forte".

Uma das principais formas de demonstrar que uma certa propriedade se verifica para todos os naturais é por

indução. Neste texto já fizemos algumas demonstrações por indução, e várias mais iremos ainda fazer

(nomeadamente no capítulo 9, relativo à solução de relações de recorrência). Nesta secção iremos recordar

tal técnica de demonstração e introduzir uma sua "versão forte" que por vezes é útil.

Seja P(n) uma propriedade (uma condição) definida sobre todos os naturais. Quando queremos provar

que tal propriedade se verifica (é verdadeira) para todos os naturais, podemos usar a técnica da demonstração

por indução1 (informalmente, também se diz, por vezes, que se vai demonstrar por "indução em n" que se

tem P(n) para todo o natural n).

A demonstração por indução baseia-se no princípio da indução finita2, que podemos traduzir pela

fórmula:

( P(0) ∧ ∀n∈|No (P(n) ⇒ P(n+1)) ) ⇒ ∀n∈|No P(n)

ou descrever por palavras, como se segue:

Princípio da indução finita (versão "simples", ou versão "fraca") :

Seja P(n) uma propriedade (uma condição) definida sobre todos os naturais.

Se

i) P(0) se verifica (isto é, P(0) traduz uma asserção verdadeira),

e se

ii) qualquer que seja o natural n, se P(n) é verdadeira, então P(n+1) também é verdadeira

então verifica-se P(n) para todo o natural n.

Assim, de acordo com este princípio, para provar que ∀n∈|No P(n), basta-nos provar:

i) que se verifica P(0) (a chamada base da indução)

ii) e que ∀n∈|No (P(n) ⇒ P(n+1)) (o chamado passo de indução)

1 O que não significa que se deva sempre usar tal técnica de demonstração. Por vezes, para provar que uma certa propriedade

se verifica para todos os naturais, há demonstrações "directas" mais simples (e adequadas) que a demonstração por indução.2 Por vezes, também chamado de princípio de indução matemática (veja-se, por exemplo, o livro [46], página 27).

Page 2: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

220

e nisto consiste a demonstração por indução de que se "tem P(n) para todo o natural n".

No passo da indução, considera-se um natural n qualquer, assume-se que se verifica P(n) (a chamada

hipótese da indução, normalmente designada pela sigla3 HI), e prova-se que, debaixo dessa assumpção, se

pode concluir que também se tem P(n+1) (que podemos chamar a tese da indução).

Exemplo 1 :

Seja r um qualquer real diferente de zero e de um, e seja a um qualquer real. Quer-se provar que, qualquer

que seja o natural n, se verifica

a r0 + a r1 + a r2 + ... + a rn =

a(r n+1 −1)r −1 (isto é, a + a r + a r2 + ... + a rn =

a(r n+1 −1)r −1 )

asserção que podemos designar de P(n).

Demonstremos que se tem ∀n∈|No P(n), por indução (finita):

Base da indução:

Quer-se provar que se tem P(0). Mas tal é imediato, pois

a r0 = a e

a(r 0+1 −1)r −1 = a

Passo da indução:

Seja n∈|N0 qualquer. Suponha-se que se verifica P(n) (a hipótese de indução - HI), isto é, que:

a r0 + a r1 + a r2 + ... + a rn =

a(r n+1 −1)r −1

e provemos que se verifica P(n+1) (a tese da indução), isto é, que:

a r0 + a r1 + a r2 + ... + a rn+1 =

a(r n+2 −1)r −1

Ora:

a r0 + a r1 + a r2 + ... + a rn + a rn+1

= (por HI)

a(r n+1 −1)r −1

+ ar n+1

=

a(r n+1 −1)r −1 +

ar n+1 (r −1)r −1

=

ar n+1 − ar −1 +

ar n+2 − ar n+1

r −1

=

a(r n+2 −1)r −1 (c.q.d)

3 IH nos textos em inglês.

Page 3: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

221

Exemplo 2 :

Demonstremos por indução que se tem

n! ≥ 2n-1 (asserção a seguir designada de P(n))

para qualquer natural n.

(Nota: embora esta propriedade seja normalmente enunciada apenas para n≥1, ela é também válida para

n=0, assumindo, por definição, que 0!=1.)

Base da indução:

Tem-se 0! = 1 ≥ 20-1 =

12

.

Passo da indução:

Seja n∈|N0 qualquer. Suponha-se que n! ≥ 2n-1 (HI), e mostre-se que (n+1)! ≥ 2(n+1)-1:

(n+1)!

=

(n+1) n!

≥ (por HI)

(n+1) 2n-1

≥ (*)

2 * 2n-1

=

2n

(*): A passagem (n+1) 2n-1 ≥ 2 * 2n-1 só é válida para n≥1.

Parece assim que não conseguimos demonstrar o resultado pretendido por indução, uma vez que só

conseguimos mostrar acima que P(n)⇒P(n+1), para n≥1, e pretendíamos mostrar que P(n)⇒P(n+1),

para qualquer n≥0. Mas tal não significa que essa implicação, P(n)⇒P(n+1), não se verifique mesmo

para todo o n≥0.

Embora o usual, numa prova de indução, seja a demonstração de P(n)⇒P(n+1) ser análoga para todo o

n, nada nos impede de fazer (e, por vezes, temos de fazer) a demonstração de alguns casos de forma

diferente, à parte.

E, de facto, no caso presente também se verifica que P(0)⇒P(1) (a implicação que nos faltava provar):

• como a asserção P(1) é verdadeira, pois 1! = 1 ≥ 21-1 = 1, qualquer asserção implica P(1) e,

portanto, tem-se também que P(0)⇒P(1), como se pretendia.

A demonstração no exemplo 2 anterior ilustra um erro (que aí não se cometeu, mas) que é fácil de

cometer no passo da indução: o não se aperceber que a demonstração genérica de P(n)⇒P(n+1) pode não

funcionar para alguns casos (para alguns valores de n, normalmente iniciais). Vejamos dois exemplos em

que um erro desse tipo é capaz de ter ocorrido4 (verifique-o).

4 O exemplo 3, a seguir, foi tirado do livro [34] (página 54). O exemplo 4 é uma adaptação de um exemplo que me foi contado

em tempos por um colega (que não me recordo quem é).

Page 4: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

222

Exemplo 3 :

a) Demonstremos, por indução, que se verifica, para qualquer natural n, a seguinte condição

∀a,b∈|N0 (n = max{a,b} ⇒ a=b)

(asserção a seguir designada de P(n))

Base da indução:

Tem-se P(0), pois, quaisquer que sejam os naturais a e b, se 0 = max{a,b}, então a=b=0.

Passo da indução:

Seja n∈|N0 qualquer. Suponha-se que se verifica P(n) (HI).

Com vista a provar P(n+1), considere-se dois naturais (que designaremos por) x e y quaisquer, tais que

n+1 = max{x,y} e prove-se que tal implica que x=y:

n+1= max{x, y}

n = max{x-1, y-1}

⇓ (por HI, pois em P(n) os naturais a e b são quaisquer)

x-1= y-1

x = y (c.q.d.)

b) Consequência (de a)):

Atendendo ao que "provámos" em a), como dados dois quaisquer naturais a e b existe sempre um

natural n tal que n = max{a,b}, podemos concluir facilmente que todos os naturais são iguais ! (Algo

parece estar mal - o quê ?)

No exemplo a seguir "demonstraremos um facto" (que todos os Portugueses são do Benfica) que, apesar

de quase verdadeiro, admite algumas excepções.

Exemplo 4 :

a) Demonstremos, por indução, que se verifica, para qualquer natural n, a seguinte condição (que

designaremos de P(n)):

"Qualquer que seja o conjunto de n pessoas,

se nesse conjunto há pelo menos um Benfiquista,

então todos (os elementos desse conjunto) são Benfiquistas"

Base da indução:

Tem-se P(0), pois num conjunto de 0 pessoas, o antecedente da implicação "se nesse conjunto há pelo

menos um Benfiquista, então todos são Benfiquistas" é necessariamente falso, pelo que a implicação é

verdadeira5.

5 Não é aqui que está o busílis da demonstração! Não só a demonsração de P(0) está correcta, como, se quiser, pode demonstrar

que a propriedade se verifica apenas para todo o n≥1: é imediato que se tem P(1), pois, qualquer que seja o conjunto formado

por uma pessoa, se nesse conjunto há pelo menos um Benfiquista, então todos (os elementos do conjunto) são Benfiquistas.

Page 5: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

223

Passo da indução:

Seja n∈|N0 qualquer. Suponha-se que se verifica P(n).

Com vista a provar P(n+1), considere-se um qualquer conjunto A de n+1 pessoas, e suponha-se que em

A há pelo menos um Benfiquista (a seguir designado de "xpto"). Pretendemos provar que todas as

pessoas em A são Benfiquistas.

Considere-se dois conjuntos de n pessoas, B e C, tais que B∪C = A e tais que o Sr. xpto pertence quer

a B quer a C 6.

Então, como B tem n pessoas e pelo menos um Benfiquista (o Sr. xpto, pelo menos), pela hipótese de

indução, todas as pessoas em B são Benfiquistas. Analogamente, todas as pessoas em C são

Benfiquistas. Logo, como A = B∪C, todas as pessoas em A são Benfiquistas (c.q.d.)

b) Considere-se então o conjunto de todos os Portugueses (conjunto finito, pelo que existirá algum

natural n igual ao número de todos os Portugueses).

Nesse conjunto há pelo menos um Benfiquista (o autor deste texto).

Logo, pela propriedade que acabámos de "provar" (por indução), em a), podemos concluir que todos os

Portugueses são Benfiquistas !

Por vezes, no passo da indução, para se provar a tese da indução (i.e. para provar que se verifica

P(n+1)), "dá jeito" poder assumir uma hipótese de indução mais forte do que a simples asumpção de que se

tem P((n): concretamente, pode ser útil assumir que não só se verifica P(n), mas também P(k) para todo o

0≤k<n (i.e. que se verifica P(0), P(1), ..., P(n)). Quando assumimos esta hipótese de indução, dizemos que

fazemos a demonstração por indução forte (ou completa), para distinguir da demonstração por indução em

que apenas se considera a veracidade de P(n) como hipótese de indução, que se diz simplesmente de

demonstração por indução, ou por indução simples. Como mostraremos, os dois princípios de indução são

equivalentes, no sentido de que um é verdadeiro sse o outro o é.

Continuando a considerar que P(n) é uma qualquer propriedade definida sobre todos os naturais,

podemos traduzir a versão forte (ou completa) do princípio da indução finita pela fórmula (onde ≤ designa a

usual relação de ordem nos naturais):

( P(0) ∧ ∀n∈|No (∀k∈|No(k≤n ⇒P(k)) ⇒ P(n+1)) ) ⇒ ∀n∈|No P(n)

isto é, de uma forma "mais simples de ler" (em que se usa uma notação mais informal com "...")

( P(0) ∧ ∀n∈|No (P(0) ∧ ... ∧ P(n) ⇒ P(n+1)) ) ⇒ ∀n∈|No P(n)

princípio que podemos descrever, por palavras, como se segue:

Princípio da indução finita - versão f orte (ou completa) :

Seja P(n) uma propriedade definida sobre todos os naturais.

Se

i) P(0) é (uma asserção) verdadeira,

6 Naturalmente, haverá muitas outras pessoas que estão simultaneamente em B e em C, uma vez que estes conjuntos tem n-1

pessoas em comum, só divergindo, um do outro, numa pessoa.

Page 6: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

224

e se

ii) qualquer que seja o natural n, se P(0) e ... e P(n) são verdadeiras, então P(n+1) também é verdadeira

então verifica-se P(n) para qualquer natural n.

Ilustremos a aplicação deste princípio com um exemplo relacionado com a solução de uma relação de

recorrência, tópico que abordaremos em maior profundidade no capítulo 9.

Exemplo 5 :

Demonstremos por indução (forte) que se uma sucessão (mais precisamente7, uma sucessão0) a0, a1, a2, a3,

..., an, ... satisfaz as seguintes condições

a0 = 7

a1 = 16

an = 5 an-1 - 6 an-2, para todo o n≥2

então, qualquer que seja n≥0, an = 5 * 2n + 2 * 3n (asserção a seguir designada de P(n)).

Base da indução:

Verifica-se P(0), pois a0 = 7 = 5 * 20 + 2 * 30.

Passo da indução:

Seja n∈|N0 qualquer. Quer-se provar que (P(0) ∧ ... ∧ P(n)) ⇒ P(n+1).

n=0: Demonstremos o caso em que n=0, à parte:

Verifica-se P(1), pois a1 = 16 = 5 * 21 + 2 * 31. Logo P(0) ⇒ P(1) (c.q.d.)

n>0: Suponha-se então que n≥1, assuma-se que se verifica P(0) e ... e P(n) (hipótese de indução - HI) e

prove-se que se verifica P(n+1) (isto é, que an+1 = 5 * 2n+1 + 2 * 3n+1):

an+1

= (por hipótese posta no enunciado, uma vez que n+1≥2)

5 a(n+1)-1 - 6 a(n+1)-2

=

5 an - 6 an-1

= (por se verificar P(n) e P(n-1), atendendo a HI)

5 (5 * 2n + 2 * 3n ) - 6 (5 * 2n-1 + 2 * 3n-1 )

=

25 * 2n - 15 * 2n + 10 * 3n - 4 * 3n

=

10 * 2n + 6 * 3n

=

5 * 2n+1 + 2 * 3n+1 (c.q.d.)

7 Recorde a observação 1 da secção 4 do capítulo 4.

Page 7: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

225

Para terminar esta primeira secção, mostremos que os dois princípios de indução são equivalentes.

Teorema 1 (a versão forte do princípio de indução implica a versão fraca):

Suponha-se que, qualquer que seja a propriedade P(n), definida sobre todos os naturais, se tem:

(1) ( P(0) ∧ ∀n∈|No (P(0) ∧ ... ∧ P(n) ⇒ P(n+1)) ) ⇒ ∀n∈|No P(n)

Então, qualquer que seja a propriedade P(n), definida sobre todos os naturais, tem-se:

(2) ( P(0) ∧ ∀n∈|No (P(n) ⇒ P(n+1)) ) ⇒ ∀n∈|No P(n)

Demonstração:

Seja P(n) uma qualquer propriedade definida sobre todos os naturais.

Suponha-se que se tem P(0) ∧ ∀n∈|No (P(n) ⇒ P(n+1)).

Quer-se provar que ∀n∈|No P(n). Tal pode ser demonstrado como se segue8:

Seja n um qualquer natural. Se P(n) ⇒ P(n+1), então P(0) ∧ ... ∧ P(n) ⇒ P(n+1).

Logo tem-se P(0) ∧ ∀n∈|No (P(0) ∧ ... ∧ P(n) ⇒ P(n+1))

E portanto, por (1), conclui-se que ∀n∈|No P(n) (c.q.d.)

Teorema 2 (Recíproco: a versão fraca do princípio de indução implica a versão forte):

Suponha-se que, qualquer que seja a propriedade P(n), definida sobre todos os naturais, se tem:

(2) ( P(0) ∧ ∀n∈|No (P(n) ⇒ P(n+1)) ) ⇒ ∀n∈|No P(n)

Então, qualquer que seja a propriedade P(n), definida sobre todos os naturais, tem-se:

(1) ( P(0) ∧ ∀n∈|No (P(0) ∧ ... ∧ P(n) ⇒ P(n+1)) ) ⇒ ∀n∈|No P(n)

Demonstração:

Seja P(n) uma qualquer propriedade definida sobre todos os naturais.

Suponha-se que se verifica P(0) ∧ ∀n∈|No (P(0) ∧ ... ∧ P(n) ⇒ P(n+1))9. Quer-se provar que ∀n∈|No P(n).

Seja Q(n) a seguinte propriedade (definida sobre todos os naturais):

Q(n) = ∀k∈|No(k≤n ⇒P(k)

ou, numa notação mais abreviada (onde se assume que k é a variável alvo da quanificação e que se trata de

uma variável natural):

Q(n) = ∀k≤n P(k)

ou ainda, de uma forma mais informal:

Q(n) = P(0) ∧ ... ∧ P(n)

Então:

8 Mais formalmente:

i) Seja n um qualquer natural. Se P(n)⇒P(n+1), então, como ∀k∈ |No(k≤n⇒P(k))⇒P(n) (pois ∀k∈ |No(k≤n⇒P(k))⇒(n≤n⇒P(n))

e n≤n), conclui-se que ∀k∈ |No(k≤n⇒P(k))⇒P(n+1).

ii) Logo, se se verifica P(0) ∧ ∀n∈ |No (P(n)⇒P(n+1)), então verifica-se P(0) ∧ ∀n∈ |No (∀k∈ |No(k≤n⇒P(k))⇒P(n+1)).

iii) E, por (1) (i.e., nesta notação mais formal: (P(0) ∧ ∀n∈ |No (∀k∈ |No(k≤n⇒P(k))⇒P(n+1)))⇒∀n∈ |NoP(n)), conclui-se que

∀n∈ |NoP(n) (c.q.d.)9 Isto é, mais formalmente: P(0) ∧ ∀n∈ |No (∀k∈ |No(k≤n⇒P(k))⇒P(n+1)).

Page 8: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

226

a) Verifica-se Q(0) (pois Q(0) é equivalente10 a P(0) e verifica-se P(0)).

b) Verifica-se ∀n∈|No (Q(n) ⇒ Q(n+1)). Demonstração11:

Seja n um qualquer natural.

Se P(0) ∧ ... ∧ P(n) ⇒ P(n+1), então P(0) ∧ ... ∧ P(n) ⇒ P(0) ∧ ... ∧ P(n) ∧ P(n+1)

Logo, como (por hipótese) ∀n∈|No (P(0) ∧ ... ∧ P(n) ⇒ P(n+1)), tem-se que

∀n∈|No (Q(n) ⇒ Q(n+1))

c) Mas, por hipótese, (2) verifica-se para qualquer propriedade definida sobre os naturais, e portanto

também se verifica para Q(n). Assim, por (2), a) e b), pode concluir-se que

∀n∈|No Q(n).

d) Mas, qualquer que seja o natural n, Q(n) ⇒ P(n) (pois12 Q(n) = P(0) ∧ ... ∧ P(n)).

Logo, de ∀n∈|No Q(n), conclui-se que

∀n∈|No P(n) (c.q.d.)

Observação :

a) Facilmente se constata que a condição ii) da (versão simples) do princípio da indução finita:

ii) qualquer que seja o natural n,

se P(n) é verdadeira, então P(n+1) também é verdadeira

é equivalente a

ii') qualquer que seja o natural n>0,

se P(n-1) é verdadeira, então P(n) também é verdadeira.

b) Analogamente, a condição ii) da versão forte do princípio da indução finita:

ii) qualquer que seja o natural n,

se P(0) e ... e P(n) são verdadeiras, então P(n+1) também é verdadeira

(isto é, se P(k) é verdadeira para todo o natural k ≤ n, então P(n+1) também é verdadeira)

10 Usando a notação formal, quer-se provar que: Q(0) = ∀k∈ |No(k≤0⇒P(k)) é equivalente a P(0).

Que Q(0) ⇒ P(0) é imediato. Em pormenor: Suponha-se que se verifica Q(0); Ora Q(0) ⇒ (0≤0⇒P(0)); Logo, por MP (Modus

Ponens), 0≤0⇒P(0); e, como 0≤0, por MP, conclui-se P(0).

Vejamos que P(0) ⇒ Q(0). Suponha-se que se verifica P(0). Seja k um qualquer natural: se k=0, então k≤0⇒P(k) (basta usar a

tautologia: P(0) ⇒ (0≤0⇒P(0))); se k≠0, então é falso que se tenha k≤0, pelo que k≤0⇒P(k). Logo ∀k∈ |No(k≤0⇒P(k)) (c.q.d.)11 Mais formalmente: Seja n um qualquer natural. Suponha-se que se verifica Q(n) = ∀k∈ |No(k≤n⇒P(k)). Quer-se provar que se

verifica Q(n+1) = ∀k∈ |No(k≤n+1⇒P(k)).

Ou seja, considerando um qualquer natural k, tal que k≤n+1, quer-se provar que se tem P(k). Ora:

• Se k≤n, então como se tem Q(n) e Q(n) ⇒ (k≤n⇒P(k)), conclui-se P(k) (c.q.d.)

• Caso contrário, k=n+1. Ora, por hipótese, verifica-se ∀n∈ |No(Q(n)⇒P(n+1)). Logo, em particular, tem-se que Q(n)⇒P(n+1).

E, como estamos a assumir que se verifica Q(n), conclui-se que se tem P(n+1) (isto é, P(k))

Logo, em qualqquer dos casos, verifica-se P(k) (c.q.d.)12 Mais formalmente: suponha-se que se verifica Q(n) = ∀k∈ |No(k≤n⇒P(k)). Ora (em particular) Q(n) ⇒ (n≤n⇒P(n)). Logo

(por MP), n≤n⇒P(n). Mas n≤n. Logo (por MP), tem-se P(n) (c.q.d.)

Page 9: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

227

pode ser reformulada, de forma equivalente, como se segue:

ii') qualquer que seja o natural n>0,

se P(0) e ... e P(n-1) são verdadeiras, então P(n) também é verdadeira

(isto é, se P(k) é verdadeira para todo o natural k < n, então P(n) também é verdadeira;

i.e. ainda, formalmente: ∀k∈|No(k<n ⇒ P(k)) ⇒ P(n) ).

c) (Observação complementar)

Refira-se, ainda, que como a asserção

∀k∈|No(k<0 ⇒P(k))

é sempre verdadeira13, a asserção

∀k∈|No(k<0 ⇒P(k)) ⇒ P(0)

é equivalente à asserção P(0).

Assim, as condições que, de acordo com a versão forte do princípio da indução finita, são

suficientes para garantir que se verifica P(n) para todo o natural n:

i) P(0), e

ii') qualquer que seja o natural n>0,

se P(k) é verdadeira para todo o natural k < n, então P(n) também é verdadeira

não só são equivalentes às condições

i) P(0), e

ii'') qualquer que seja o natural n (e não apenas para todo o natural n≥1),

se P(k) é verdadeira para todo o natural k < n, então P(n) também é verdadeira

como podem mesmo ser traduzidas, simplesmente, pela condição ii'') acabada de referir:

qualquer que seja o natural n (e não apenas para todo o natural n≥1),

se P(k) é verdadeira para todo o natural k < n, então P(n) também é verdadeira

De qualquer forma, qualquer que seja a formulação que se use para este princípio de indução, é costume

explicitar sempre a condição i), de modo a não ficar "escondida" a necessidade de provar P(0).

É bem conhecido que o conjunto de todos os naturais é bem ordenado, o que significa (recorde-se) que

qualquer conjunto não vazio de naturais possui elemento mínimo. E, como se mostra a seguir, poder-se-ia

utilizar tal facto para explicar por que é que o método da demonstração por indução finita funciona:

• Suponha-se que P(n) satisfaz as condições (p.ex. da versão simples) do método de indução finita;

• Se P(n) não fosse verdadeira para algum natural n, então existiria um primeiro natural k que não

verificava tal propriedade (esse k seria o mínimo do conjunto {n: ¬P(n)}) e, das duas uma:

• ou k=0, o que entraria e contradição com a base da indução,

• ou k>0, e verficar-se-ia P(k-1) e ¬P(k) o que entraria em contradição com o passo de indução.

Na próxima secção vamos mostrar que o princípio da indução finita e o princípio da boa ordenação de

|N0 são mesmo, de facto, princípios equivalentes (no sentido de que cada um deles implica o outro).

13 Uma vez que o antecedente da implicação k<0⇒P(k) é falso, qualquer que seja o natural k.

Page 10: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

228

Exercícios :

1. Prove por indução que, qualquer que seja (o natural) n ≥ 0,

n3 − n + 3 é múltiplo de 3.

2. Seja x ≠ 1 e x ≠ 0. Prove por indução que, qualquer que seja (o natural) n ≥ 0:

ixi

i = 0

n∑ =

x − (n +1)xn +1 + nxn+2

(x −1)2

3. Prove por indução que, qualquer que seja (o natural) n ≥ 0:

i2

i = 0

n∑ =

n(n +1)(2n +1)6

4. Suponha que a sucessão (pn)n≥0 satisfaz as seguintes condições:

• p0 = 200

• p1 = 220

• pn = 3pn-1 - 2pn-2 , para n≥2

Demonstre, por indução que (qualquer que seja o natural n):

pn = 5 × 2n+2 +1805. Suponha que a sucessão (pn)n≥0 satisfaz as seguintes condições:

• p0 = 1

• p1 = 1

• pn = 4pn-1 - 4pn-2 , para n≥2

Demonstre, por indução que (qualquer que seja o natural n):

pn = 2n − 12n2n

Secção 2: Indução finita e boa-ordenação dos naturais.

Em vez de formularmos os princípios de indução anteriores à custa de propriedades (definidas sobre todos

os naturais), podemos formulá-los à custa de conjuntos de naturais.

De facto, a uma propriedade P(n), definida sobre todos os naturais, podemos fazer corresponder o

conjunto dos naturais que verificam tal propriedade (i.e. para os quais tal propriedade é verdadeira):

A = {n∈|N0: P(n)}

e, a cada conjunto de naturais A, podemos fazer corresponder a seguinte propriedade (definida sobre todos

os naturais):

P(n) = "n ∈ A"

Page 11: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

229

Em termos de conjuntos, obtem-se assim a seguinte formulação (da versão simples) do princípio de

indução finita14:

Princípio da indução finita (versão "simples" , ou versão "fraca") :

Qualquer que seja o conjunto de naturais A,

Se

i) 0 ∈ A

e se

ii) qualquer que seja o natural n, n ∈ A ⇒ (n+1) ∈ A

então A = |N0.

Observação 1 (Axiomática de Peano dos números naturais):

a) O princípio de indução anterior corresponde ao 5º postulado de Peano. Os 5 postulados de Peano15 para

o sistema dos números naturais são os seguintes:

1) 0 é um número natural.

2) Para cada número natural n, existe um outro número natural n'.

3) Para nenhum número natural n se tem que n' seja igual a 0.

4) Para quaisquer dois números naturais m e n, se m' = n' então m = n.

5) Para qualquer conjunto A de números naturais contendo 0, se n' ∈ A sempre que n ∈ A, então

A contém todo o número natural.

Podemos reformular estes axiomas, como se segue:

O conjunto dos naturais é um conjunto (que designaremos por) |N0 que contém um elemento 0,

designado por zero, e no qual está definida uma aplicação s:|N0→|N0 verificando as seguintes

propriedades:

1) s é injectiva

2) ∀n∈|N0 s(n) ≠ 0 (isto é, 0 ∉ s[|N0])

3) Qualquer que seja A ⊆ |N0,

se 0 ∈ A e A é fechado para s (isto é, qualquer que seja n∈|N0, n ∈ A ⇒ s(n) ∈ A),

então A = |N0.

(a imagem s(n) corresponde ao elemento denotado por n' na descrição acima dos postulados de Peano, e

é designada usualmente por sucessor de n e descrita por n+1).

b) É simples de verificar que, de acordo com a axiomática anterior, todo o natural diferente de 0 pertence à

imagem (ao contradomínio) de s. Demonstração:

Seja A = {0} ∪ {s(n): n ∈ |N0}. Tem-se:

14 Não abordaremos aqui o problema da formalização do princípio de indução numa linguagem lógica, e a questão de saber em

que medida tal pode ser feito numa linguagem de 1ª ordem, ou apenas numa linguagem de 2ª ordem. Sobre isso veja-se, por

exemplo, o livro [29] e as observações aí feitas no Remarks 5.10 da secção 5.4.15 Os quais foram explicitados muito antes de se estudar os sistemas formais.

Page 12: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

230

i) 0 ∈ A

ii) qualquer que seja n∈|N0, se n ∈ A então n ∈ |N0 e, portanto, s(n) ∈ A

Logo, por 3), |N0 = A (c.q.d.)

Assim, todo o natural n diferente de zero é imagem, por s, de um (e de um só, por s ser injectiva)

natural k. (Sendo n um natural diferente de zero, ao único natural k tal que n=s(k), é costume chamar de

antecessor de n e designá-lo por n-1).

c) Sobre o conjunto dos naturais pode definir-se a (usual) operação de adição, como se segue:

Quaisquer que sejam os naturais n e m:

• n + 0 = n

• n + s(m) = s(n+m)

e, à custa desta, pode definir-se a (usual) operação de multiplicação, como se segue:

Quaisquer que sejam os naturais n e m:

• n * 0 = 0

• n * s(m) = (n * m) + n

Pode verificar-se que estas operações têm as propriedades usuais: são associativas, comutativas, etc.

(propriedades que são assumidas em algumas das observações/demonstrações em d) a seguir).

d) Por sua vez, pode definir-se uma (a usual) ordenação dos naturais, como se segue:

Quaisquer que sejam os naturais n e m,

m < n sse existe um natural k tal que n = m + s(k)

Donde sai que (demonstre):

Quaisquer que sejam os naturais n e m,

m ≤ n sse existe um natural k tal que n = m + k

Pode demonstrar-se que ≤ é reflexiva, anti-simétrica e transitiva (pelo que é uma ordem parcial) e

satisfaz as restantes propriedades da ordenação usual dos naturais.

A título ilustrativo, vejamos a demonstração de três propriedades da relação ≤, que são usadas na

demonstração do teorema 1 e em b) da observação 2, a seguir.

• Qualquer que seja o natural n≠0, tem-se 0 < n (logo 0 é menor ou igual que qualquer natural).

Demonstração:

Seja n um qualquer natural diferente de zero. Por b) desta observação, existe k tal que n=s(k).

Logo n = n + 0 = 0 + n = 0+s(k), pelo que 0 < n (c.q.d.)

• Quaisquer que sejam os naturais n e m: m < n ⇔ s(m) ≤ n. Demonstração:

⇒: Se m < n, então existe k tal que n = m + s(k). E:

n = m + s(k) = s(m+k) = s(k+m) = k + s(m) = s(m) + k

Logo s(m) ≤ n (c.q.d.)

⇐: Se s(m) ≤ n, então existe k tal que n = s(m) + k. E:

n = s(m) + k = k + s(m) = s(k+m) = s(m+k) = m + s(k)

Logo m < n (c.q.d.)

• Quaisquer que sejam os naturais n e m: m ≤ n ⇔ m < s(n). Demonstração:

⇒: Se m ≤ n, então existe k tal que n = m + k. E:

Page 13: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

231

s(n) = s(m + k) = s(m+k) = m+s(k)

Logo m < s(n) (c.q.d.)

⇐: Se m < s(n), então existe k tal que s(n) = m+s(k). E (como s é injectiva):

s(n) = m+s(k) ⇒ s(n) = s(m+k) ⇒ n = m+k

Logo m ≤ n (c.q.d.)

Definindo-se a ordenação dos naturais como é usual, pode verificar-se (como se mostra a seguir) que o

princípio de indução finita implica que o conjunto dos naturais |N0, equipado com a ordem usual ≤, é um

conjunto bem ordenado, isto é (ver definição 4 e teorema 1 da secção 3 do capítulo 3):

Teorema 1 (a versão simples do princípio de indução finita implica que |N0 é bem ordenado):

Qualquer subconjunto não vazio de |N0 possui mínimo.

Demonstração :

Seja B um qualquer subconjunto não vazio de |N0. Quer-se provar que B possui mínimo (isto é, que existe

um elemento m ∈ B tal que, qualquer que seja x ∈ B, m ≤ x).

Suponha-se, por absurdo, que B não tinha mínimo.

Seja A o conjunto formado pelos naturais que são menores ou iguais que todos os elementos em B:

A = {k (∈|N0): ∀x∈B k ≤ x}

Se provarmos que existe m ∈ A ∩ B (isto é, que A ∩ B é diferente do vazio), então

• m ∈ B

• e (como m ∈ A, por definição de A, tem-se) ∀x∈B m ≤ x,

pelo que m é mínimo de B, o que contradiz a hipótese de B não ter mínimo, obtendo-se, portanto, uma

contradição (desejada) e a demonstração fica concluída.

Ora, tem-se:

i) 0 ∈ A (pois o zero é menor ou igual que qualquer natural e, portanto, também menor ou igual que

todos os elementos em B)

ii) Seja n∈|N0 qualquer. Suponha-se que n ∈ A. Então:

• (por definição de A) ∀x∈B n ≤ x.

• Assim, se n ∈ B, então n é mínimo de B, o que contradiz o facto de estarmos a assumir que B não

tem mínimo.

• Logo n ∉ B e, portanto, ∀x∈B n < x (pois ∀x∈B n ≤ x)

• Mas então ∀x∈B n+1 ≤ x.

• Isto é, n+1 ∈ A.

Logo, pelo princípio de indução, A = |N0.

Mas então, como B é não vazio, A ∩ B ≠ ∅ e obtemos uma contradição, como se referiu acima.

Iremos, em seguida, demonstrar que, reciprocamente, a assumpção da boa ordenção de |N0 também

implica que |N0 satisfaz a versão simples do princípio de indução finita, mostrando sucessivamente que:

Page 14: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

232

• assumpção da boa ordenação de |N0 implica que |N0 satisfaz a versão forte do princípio de indução finita

• a versão forte do princípio de indução finita implica a versão simples deste princípio16.

Antes, porém, formulemos a versão forte do princípio de indução finita, em termos de conjuntos:

Princípio da indução finita - versão forte (ou completa) :

Qualquer que seja o conjunto de naturais A,

Se

i) 0 ∈ A

e ii) qualquer que seja o natural n, {k (∈|N0): k ≤ n} ⊆ A ⇒ (n+1) ∈ A

(i.e., usando a notação dos intervalos, qualquer que seja o natural n, [0, n] ⊆ A ⇒ (n+1) ∈ A )

então A = |N0.

Observação 2 (Outras formulações equivalentes das duas versões do princípio de indução finita):

a) Facilmente se constata que a condição ii) da (versão simples) do princípio da indução finita:

ii) qualquer que seja o natural n, n ∈ A ⇒ (n+1) ∈ A

é equivalente a

ii') qualquer que seja o natural n>0, n-1 ∈ A ⇒ n ∈ A

b) Analogamente, a condição ii) da versão forte do princípio da indução finita:

ii) qualquer que seja o natural n, {k: k ≤ n} ⊆ A ⇒ (n+1) ∈ A

pode ser reformulada, de forma equivalente, como se segue (verifique):

ii') qualquer que seja o natural n>0, {k: k ≤ n-1} ⊆ A ⇒ n ∈ A

a qual é ainda equivalente a17 (verifique):

ii'') qualquer que seja o natural n>0, {k: k < n} ⊆ A ⇒ n ∈ A

Teorema 2 (a assumpção da boa ordenação de |N0 implica que |N0 satisfaz a versão forte da indução finita):

Se |N0 é bem ordenado, então |N0 satisfaz o seguinte princípio de indução (equivalente à versão forte do

princípio de indução finita: ver b) da observação 2 anterior):

16 A demonstração de que a versão forte implica a versão simples é imediata, como seria de esperar dos "nomes das versões".

Refira-se, aliás, que já vimos, na secção 1, que são equivalentes as duas versões do princípio de indução finita, formuladas em

termos de propriedades, e daí decorre (como é simples de observar) que são igualmente equivalentes as duas versões,

formuladas em termos de conjuntos. De qualquer forma, as demonstrações nesta secção constituem uma forma alternativa de

provar directamente a equivalência entre as duas versões do princípio de indução finita, formuladas em termos de conjuntos.17 Demonstre que as condições i) (isto é, 0 ∈ A) e ii) da versão forte do princípio da indução finita são conjuntamente

equivalentes à condição ii''') "qualquer que seja o natural n, {k (∈|N0): k < n} ⊆ A ⇒ n ∈ A". De qualquer forma (tal como se

referiu em c) da observação incluída na secção 1), qualquer que seja a formulação que se use para este princípio de indução, é

costume explicitar sempre a condição i), de modo a não ficar "escondida" a necessidade de provar que 0 ∈ A.

Page 15: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

233

Qualquer que seja o conjunto de naturais A, se

i) 0 ∈ A, e

ii) qualquer que seja o natural n>0, {k: k < n} ⊆ A ⇒ n ∈ A

então A = |N0

Demonstração:

Suponha-se que |N0 é bem ordenado e seja A um qualquer conjunto de naturais, verificando i) e ii).

Quer-se provar que A = |N0.

Suponha-se, por absurdo, que A ≠ |N0.

Então |N0-A ≠ ∅ e portanto (como estamos a assumir que |N0 é bem ordenado) existe m = min(|N0-A). E:

a)•Como, por i), 0∈A e como m∈(|N0-A), tem-se m≠0. E, como 0=min(|N0), tem-se 0≤m. Logo: 0 < m

b)•Como m = min(|N0-A), não existe k∈(|N0-A) tal que k < m (Justifique pormenorizadamente !)

c)• Logo {k (∈|N0): k < m} ⊆ A

d)•Logo, como (por a)) m>0, de c) e ii), conclui-se que m ∈ A

Mas tal entra em contradição com o facto de m∈(|N0-A) (por m ser mínimo de |N0-A) (c.q.d.)

Teorema 3 (a versão forte do princípio de indução finita implica a versão simples desse princípio):

A versão forte do princípio de indução finita (a seguir referida por vf):

(vf) Qualquer que seja o conjunto de naturais A, se

(vf-i) 0 ∈ A, e

(vf-ii) qualquer que seja o natural n, {k: k ≤ n} ⊆ A ⇒ (n+1) ∈ A

então A = |N0

implica a versão simples do princípio de indução finita (a seguir referida por vs):

(vs) Qualquer que seja o conjunto de naturais A, se

(vs-i) 0 ∈ A, e

(vs-ii) qualquer que seja o natural n, n ∈ A ⇒ (n+1) ∈ A

então A = |N0

Demonstração:

Suponha-se que se verifica (vf) e seja A um qualquer conjunto de naturais, verificando (vs-i) e (vs-ii).

Quer-se provar que A = |N0. Por (vf), tal ficará provado se demonstrarmos que se verifica (vf-i) e (vf-ii).

Demonstração de que se tem (vf-i): Imediata, pois tem-se (vs-i)

Demonstração de que se tem (vf-ii):

Seja n um qualquer natural n tal que {k: k ≤ n} ⊆ A. Quer-se provar que (n+1) ∈ A. Ora:

Se {k: k ≤ n} ⊆ A, então n ∈ A. Logo, por (vs-ii). tem-se (n+1) ∈ A (c.q.d.)

No teorema 1, mostrámos que a assumpção do axioma da indução finita nos permitia provar que o

conjunto dos naturais, equipado com a sua ordem usual ≤, era bem ordenado. Pelos teoremas 2 e 3, o

recíproco é igualmente verdadeiro. Assim, em vez de assumirmos que |N0 verifica o axioma da indução

Page 16: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

234

finita, podemos assumir, alternativamente, como axioma, que (|N0, ≤) é bem ordenado, e a partir daí

concluir que o conjunto dos naturais satisfaz o princípio da indução finita.

Secção 3: Indução noutros conjuntos (indução sobre uma relação bem fundada).

No teorema 2, da secção anterior, mostrámos que o facto de |N0 ser bem ordenado garante que |N0 satisfaz o

seguinte princípio de indução18:

"Qualquer que seja o conjunto de naturais A,

se

i) min(|N0) ∈ A

e ii) qualquer que seja o natural n ≠ min(|N0), {k (∈|N0): k < n} ⊆ A ⇒ n ∈ A

então A = |N0"

Este resultado não é específico do conjunto dos naturais. De facto, qualquer conjunto bem ordenado

satisfaz um princípio de indução análogo ao anterior19. Tal é mostrado a seguir, começando por considerar

o caso mais genérico em que o conjunto está equipado com uma relação bem fundada (e não apenas com

uma boa ordem).

Teorema 1 (Indução sobre uma relação bem fundada):

Seja

p uma relação bem fundada num conjunto X. Então:

Se A ⊆ X é tal que:

i) todos os elementos minimais de X pertencem a A

e

ii) qualquer que seja o elemento x (de X), não minimal, ∀y∈X (y

p x ⇒ y ∈ A) ⇒ x ∈ A

(i.e., qualquer que seja o elemento x, não minimal, {y (∈X): y

p x} ⊆ A ⇒ x ∈ A)

então A = X.

Demonstração (parecida à demonstração do teorema 2 da secção anterior):

Seja

p uma relação bem fundada em X e seja A ⊆ X verificando i) e ii) acima.

Suponha-se, por absurdo, que A ≠ X.

Então X-A ≠ ∅ e, portanto (pelo teorema 2 da secção 3 do capítulo 3), X-A possui elementos minimais.

Seja m um elemento minimal de X-A.

Tem-se m ∉ A (pois m ∈ X-A).

Logo, por i), m não é um elemento minimal de X.

18 O que se segue é uma reformulação imediata da versão forte do princípio de indução finita, atendendo a que 0 é o mínimo

de |N0, e a que (portanto) n ≠ 0 é equivalente a n > 0.19 Tal princípio de indução é, por vezes, genericamente designado de princípio de indução transfinita sobre uma boa ordem.

Usando tal terminologia, podemos dizer que o facto de |N0 ser bem ordenado implicar que |N0 satisfaz o princípio de indução

anterior, é um caso particular do resultado mais geral que nos diz que qualquer conjunto bem ordenado satisfaz o princípio de

indução transfinita (princípio que é equivalente ao princípio da indução finita, no caso particular do conjunto dos naturais).

Page 17: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

235

Considere-se agora y ∈ X, qualquer, tal que y

p m. Então y ∈ A (pois, se y pertencesse a X-A, então

y

p m implicaria que m não fosse um elemento minimal de X-A).

Logo, por ii), m ∈ A, o que entra em contradição com m ∉ A.

Observação 1 :

As condições i) e ii) do teorema anterior podem ser substituídas pela (por uma só) condição seguinte:

"qualquer que seja x (∈X), ∀y∈X (y

p x ⇒ y ∈ A) ⇒ x ∈ A"

A formulação escolhida para o teorema chama a atenção que no caso dos elementos minimais de X, se tem

de provar ("incondicionalmente") que eles pertencem ao conjunto A.

Se a relação bem fundada for mesmo uma boa ordem20 em X, então o resultado anterior pode

simplificar-se como se segue.

Teorema 2 (Corolário do teorema 1: Indução sobre uma boa ordem):

Seja p uma boa ordem num conjunto X (não vazio21).

Se A ⊆ X é tal que:

i) min(X) ∈ A

e

ii) qualquer que seja x ≠ min(X) (com x ∈ X), ∀y∈X (y

p x ⇒ y ∈ A) ⇒ x ∈ A

(i.e., qualquer que seja x ≠ min(X), {y (∈X): y

p x} ⊆ A ⇒ x ∈ A)

então A = X.

Demonstração :

Sai do teorema 1: se a relação bem fundada for mesmo uma boa ordem, então X só poderá admitir um

elemento minimal (porquê?) e este será o mínimo de X (exercício 27 da secção 3 do capítulo 3).

Reescrevendo o teorema 1 em termos de propriedades (considerando A = {x∈X: P(x)}), obtem-se a

seguinte formulação do princípio da indução bem fundada22:

20 Para o que basta que seja total: veja-se a alínea b) do teorema 3 da secção 3 do capítulo 3.21 Como não se impôs, na definição de conjunto bem ordenado, que um conjunto bem ordenado tenha de ser diferente do vazio,

a condição de X ser não vazio (que muitas vezes se deixa implícita) é necessária para que min(X) esteja definido. O caso em

que X = ∅ não tem qualquer interesse no contexto deste teorema, pois se X=∅ emtão qualquer subconjumto A de X é igual a X.22 Para provar que uma dada propriedade P(x) se verifica para todo o elemento x de um conjunto X, sobre o qual está definida

uma relação bem fundada

p , uma alternativa à utilização do princípio da indução bem fundada, consiste em considerar o

"conjunto dos (hipotéticos) contra-exemplos" A = {y (∈ X): ¬P(y)} e mostrar que ele tem de ser vazio, provando que esse

conjunto A não possui elementos minimais (pois, como

p é uma relação bem fundada em X, pelo teorema 3.3.2, se A fosse

diferente do vazio, A teria de ter pelo menos um elemento minimal).

Page 18: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

236

Princípio da indução bem fundada (PIBF):

Seja

p uma relação bem fundada em X.

Então (X,

p ) verifica o seguinte princípio de indução (que designaremos abreviadamente de PIBF)

Seja P(x) uma propriedade definida sobre todos os elementos de X.

Se

i) P(x) se verifica para todos os elementos x que são elementos minimais de X (em relação a

p )

e se

ii) qualquer que seja o elemento x (de X), não minimal, ∀y∈X (y

p x ⇒ P(y)) ⇒ P(x)

(i.e., qualquer que seja o elemento x, não minimal,

verificar-se P(y), para todo o y

p x, implica que se verifica P(x) )

então verifica-se P(x) para todo o elemento x de X.

No resto desta secção iremos concretizar este princípio de indução, para certas estruturas bem fundadas.

Como veremos em particular, já a seguir, ele conduz-nos aos usuais princípios de indução finita sobre

os conjuntos formados por todos os inteiros maiores ou iguais que um dado inteiro q (i.e. os conjuntos Zq

= {q, q+1, q+2, q+3, ...}), indução que generaliza de forma imediata a indução finita sobre os naturais

(atender a que |N0 = Z0).

Exemplo 1 (Versão simples do princípio de indução finita sobre Zq):

Seja q um qualquer inteiro. Considerando a seguinte relação bem fundada sobre Zq:

(quaiquer que sejam k e n pertencentes a Zq)

k

p n sse k = n-1

o princípio da indução bem fundada (PIBF) reduz-se (é equivalente) ao princípio de indução finita sobre Zq:

Sendo P(n) uma propriedade definida sobre Zq (i.e. sobre os inteiros maiores ou iguais a q), se

i) P(q) se verifica

e

ii) 23 qualquer que seja o inteiro n≥q, se P(n) é verdadeira, então P(n+1) também é verdadeira

então verifica-se P(n) para qualquer n∈Zq (i.e. verifica-se P(n) para todo o inteiro n≥q)

Exemplo 2 (Versão forte do princípio de indução finita sobre Zq):

Seja q um qualquer inteiro. Considerando a seguinte relação bem fundada sobre Zq (que é uma boa ordem):

k

p n sse k < n (onde < designa a usual ordenação dos inteiros)

o princípio da indução bem fundada (PIBF) reduz-se à versão forte do princípio de indução finita sobre Zq:

Sendo P(n) uma propriedade definida sobre Zq, se

i) P(q) se verifica

23 Condição equivalente a “qualquer que seja o inteiro n>q, se P(n-1) é verdadeira, então P(n) também é verdadeira”.

Page 19: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

237

e

ii) 24 qualquer que seja o inteiro n>q,

se P(q) e ... e P(n) são verdadeiras, então P(n+1) também é verdadeira

então verifica-se P(n) para todo o inteiro n≥q.

Exemplo 3 (Um princípio de indução simples sobre sequências 25):

Seja B um conjunto e seja X = B* (o conjunto formado por todas as sequências de elementos de B).

Como se viu no exemplo 3.3.10 (exemplo 10 da secção 3 do capítulo 3, a relação binária em X,

p ,

dada por:

s1

p s2 sse (s1 é uma parte inicial de s2 e #s1 = #s2 - 1)

é uma relação bem fundada.

Assim, pelo princípio da indução bem fundada (PIBF), para provar que uma propriedade P(s) se verifica

para toda a sequência s de elementos de B, basta-nos provar que:

i) - base da indução26: verifica-se P(()) (i.e. verifica-se P(m) para m igual à sequência vazia ())

e

ii) - passo de indução: qualquer que seja a sequência s, não vazia,

se 27 P(Drop[s,-1]) se verifica, então verifica-se P(s)∇

Exemplo 4 (Outro princípio de indução simples sobre sequências):

Seja B um conjunto e seja X = B* (o conjunto formado por todas as sequências de elementos de B).

Como se viu no exemplo 3.3.10, a relação binária em X,

p , dada por:

s1

p s2 sse (s1 é uma parte final de s2 e #s1 = #s2 - 1)

é uma relação bem fundada.

Assim, pelo princípio da indução bem fundada (PIBF), para provar que uma propriedade P(s) se verifica

para toda a sequência s de elementos de B, basta-nos provar que:

i) - base da indução28: verifica-se P(())

24 Condição equivalente a “qualquer que seja o inteiro n>q, se P(q) e ... e P(n-1) são verdadeiras, então P(n) também é

verdadeira (i.e. se P(k) é verdadeira para todo o inteiro q ≤ k < n, então P(n) também é verdadeira)”.25 Neste exemplo e nos exemplo 4 e 5 (e no exercício 1 a seguir), em vez das sequências poderiam estar as listas da linguagem

de programação Mathematica, uma vez que se trata do mesmo tipo de estruturas.

Por outro lado, nestes exemplos (e no exercício 1) em vez de considerarmos que X era o conjunto de todas as sequências de

elementos de um conjunto B, bastar-nos-ia supor que X era p.ex. um qualquer conjunto de sequências “fechado para as

subsequências” (i.e. tal que se uma sequência s pertence a X então também pertence a X qualquer subsequência de s).26 Neste caso, a sequência vazia () é o único elemento minimal de X (em relação a

p ).27 Usando, por analogia com a linguagem de programação Mathematica, Drop[s,-1] (com s diferente da sequência vazia)

para denotar a sequência que se obtém da sequência s retirando o seu último elemento (a qual é a única sequência s1 que

satisfaz: s1 é uma parte inicial de s e #s1 = #s – 1).28 Tal como no exemplo anterior, também neste caso a sequência vazia () é o único elemento minimal de X (em relação a

p ).

Page 20: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

238

e

ii) - passo de indução: qualquer que seja a sequência s, não vazia,

se 29 P(Rest[s]) se verifica, então verifica-se P(s)∇

Exemplo 5 (Um princípio de indução forte sobre sequências):

Seja B um conjunto e seja X = B* (o conjunto formado por todas as sequências de elementos de B).

Como se viu no exemplo 3.3.10, a relação binária em X,

p , dada por:

s1

p s2 sse s1 é uma "parte inicial estrita" de s2

é uma relação bem fundada.

Assim, pelo princípio da indução bem fundada (PIBF), para provar que uma propriedade P(s) se verifica

para toda a sequência s de elementos de B, basta-nos provar que:

i) - base da indução30: verifica-se P(())

e

ii) - passo de indução: qualquer que seja a sequência s, não vazia,

se P(s1) se verifica para toda a parte inicial estrita s1 de s, então verfica-se P(s)∇

Exercícios :

1. Seja B um conjunto e seja X = B* (o conjunto formado por todas as sequências de elementos de B).

Comece por descrever os princípios de indução (fortes) para sequências que obtém quando considera as

seguintes relações bem fundadas sobre X:

a) s1

p s2 sse s1 é uma "parte final estrita" de s2

b) s1

p s2 sse s1 é uma "subsequência estrita (ou própria)" de s2

c) s1

p s2 sse (s1 é uma subsequência de s2 e #s1 = #s2 - 1)

d) s1

p s2 sse #s1 = #s2 - 1

c) s1

p s2 sse #s1 < #s2

Em seguida diga quais destes princípios de indução lhe parecem mais úteis na prática.

2. Prove por indução que:

a)

arii= k

n

∑ = ark 1− rn−k+1

1− r, para qualquer inteiro n ≥ k (com k inteiro e r real diferente de 1)

b)

ii= k

n

∑ =(k + n)2

(n − k +1), para qualquer inteiro n ≥ k (com k inteiro)

c)

ii=1

n

∑ (i +1) =n(n +1)(n + 2)

3, para qualquer natural n ≥ 1

29 Usando, por analogia com a linguagem de programação Mathematica, Rest[s] (com s diferente da sequência vazia) para

denotar a sequência que se obtém da sequência s retirando o seu primeiro elemento.30 A sequência vazia () é um mínimo (em relação a

p ), pelo que há um e um só elemento minimal de X: essa sequência vazia.

Page 21: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

239

Observação 2 :

Para terminar esta nossa introdução ao princípio da indução bem fundada, que a seguir se recorda:

Seja

p uma relação bem fundada em X e P(x) definida em todo o elemento x de X. Se

i) P se verifica para todos os elementos minimais de X, e

ii) qualquer que seja o elemento x, não minimal,

se se verifica P(y), para todo o y

p x, então verifica-se P(x)

então verifica-se P(x) para todo o elemento x de X.

veja-se por que é que, intuitivamente, ele funciona bem:

• Suponha-se (por absurdo, que apesar de se verificar i) e ii), se tinha) que a propriedade P não era

verdadeira para algum elemento de X.

Designemos por a0 um tal elemento (ou seja, tem-se ¬P(a0)).

• Ou a0 é minimal (o que não pode acontecer, por i)), ou, por ii), como ¬P(a0), existirá algum y de X tal

que y

p a0 e ¬P(y).

Designemos por a1 um desses elementos31. Então tem-se a1

p a0 e ¬P(a1)

• Ou a1 é minimal (o que não pode acontecer, por i)), ou, por ii), como ¬P(a1), existirá algum y de X tal

que y

p a1 e ¬P(y).

Designemos por a2 um desses elementos. Então tem-se a2

p a1

p a0 e ¬P(a2)

• E assim sucessivamente, mas não ad infinitum:

como a relação

p é bem fundada, num número finito de passos (n) haveremos de chegar a um an tal

que an

p ...

p a1

p a0 e ¬P(an) e an é um elemento minimal de X, contradizendo i).

Secção 4: Conjuntos definidos indutivamente e provas por indução estrutural.

Introduzimos um mecanismo poderoso para provar que todo o elemento de um conjunto X satisfaz uma

propriedade P (definida sobre esse conjunto): o princípio da indução bem fundada.

Mas, para aplicarmos esse método de indução, temos de definir uma relação bem fundada (apropriada)

sobre o conjunto X. Ora, em primeiro lugar, embora32 qualquer conjunto admita (mesmo) uma boa

ordenação dos seus elementos, tal não significa que sejamos sempre capazes de definir (pelo menos

facilmente) tal relação de boa ordem, de forma explícita. Em segundo lugar, como os exemplos anteriores

mostraram, sobre um mesmo conjunto podemos definir várias relações bem fundadas e estamos

31 Saliente-se que, à partida, tal pode envolver uma escolha entre uma infinidade de elementos (veja-se a observação incluída

na secção 3 do capítulo 3). Tal não acontece, contudo, com muitas das estruturas bem fundadas com que trabalhamos (nem, em

particular, na indução finita nos naturais).32 Aceitando o princípio da boa ordenação de Zermelo (veja-se a secção 3 do capítulo 3).

Page 22: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

240

interessados em escolher aquela que for mais "apropriada" ao problema em causa, isto é, aquela que nos

gerar o princípio de indução mais simples possível que se aplique ao caso33.

Ora, existem conjuntos que podem ser definidos de um modo que:

a)• sugere um "procedimento operacional" para a geração dos seus elementos;

b)•sobre os quais é possível definir um princípio de indução (dito princípio de indução estrutural) de

enunciado simples e fácil aplicação;

c)• e em que (sob certas circunstâncias) a forma como os elementos do conjunto são gerados induz uma

relação bem fundada "natural" no conjunto34, verificando-se que o princípio de indução estrutural é

equivalente ao princípio de indução bem fundada que é gerado por essa relação.

Tais conjuntos ocorrem frequentemente e são muito importantes quer em certas áreas da Matemática

(como a Lógica), quer em Ciência da Computação, e são chamados de conjuntos indutivos (ou conjuntos

definidos indutivamente). A eles dedicaremos esta secção.

Antes de darmos definições formais, vejamos um exemplo de um conjunto definido indutivamente e

expliquemos informalmente as ideias que estão por detrás da construção/definição de tais conjuntos.

Consideremos como primeiro exemplo (motivador) o conjunto dos pares positivos, que a seguir

designaremos de Pares+. Podemos definir este conjunto em compreensão, por exemplo como se segue:

Pares+ = {n ∈ |N1: ∃ i∈|N1 n = 2i} (= {n ∈ |N0: ∃ i∈|N1 n = 2(i+1)}

No entanto, esta definição, de "tipo declarativo" (no sentido que diz/declara qual a propriedade que um

objecto - no caso, um natural - tem de satisfazer para ser um par positivo), diz-nos o que é um par

positivo, mas não nos diz como gerar os pares positivos. Ora, por vezes dá-nos "jeito" ter uma definição

de "tipo operacional", que cumpra essa missão. Uma possível definição é a seguinte:

Definição de Pares+: Abstracção do procedimento que está a ser seguido:

i) 2 é par positivo (isto é, 2 ∈ Pares+) i) Há um primeiro elemento (neste caso, o 2)

ii) se n é par positivo, então n+2 também o é ii) Há uma operação de construção (neste caso, a

(i.e. se n ∈ Pares+, então n+2 ∈ Pares+) aplicação λn.n+2 definida, p.ex. de |N0 para |N0)

iii) "nada mais" é par positivo iii) Há uma "afirmação de fecho" que nos diz que não

(i.e. "nada mais" pertence ao conjunto Pares+) existem outros elementos no conjunto em definição

Este procedimento é um exemplo de uma definição indutiva de um conjunto. Um conjunto de objectos

assim definido diz-se um conjunto indutivamente gerado, ou definido indutivamente (ou simplesmente, de

forma abreviada, um conjunto indutivo).

33 Por exemplo, para provar, por indução, que uma propriedade é verdadeira para todos os naturais, "ninguém" vai procurar

utilizar a versão forte do princípio da indução finita, se a versão simples bastar.34 A título complementar, mostraremos mesmo que é sempre possível defnir uma relação bem fundada sobre qualquer conjunto

indutivo (a qual "estende" a relação "natural" referida, quando esta é definível).

Page 23: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

241

Os conjuntos indutivos consistem de objectos que são construídos, de algum modo, a partir de outros

objectos que já existem no conjunto. Assim, nada pode ser construído a não ser que exista (pelo menos)

um objecto no conjunto para iniciar o processo.

Generalizando o exemplo anterior, podemos dizer que a definição indutiva de um conjunto X consiste

nos seguintes passos:

Base: Lista-se alguns elementos que fazem parte de X (pelo menos um elemento tem de ser indicado).

(Passo de) Indução: Dá-se uma ou mais regras para construir novos elementos a partir de elementos já

existentes em X.

Fecho:É afirmado que X consiste exactamente dos elementos obtidos a partir da base e do passo de indução.

Esta última afirmação (de fecho) é usualmente assumida, sem a explicitar. Mas, apesar da afirmação de

fecho ficar usualmente implícita, ela é fundamental. Sem ela, existiriam imensos conjuntos que

satisfaziam a base e o passo de indução.

Por exemplo, embora o conjunto

X = {2, 4, 5, 6, 8, ...}

não satisfaça as condições

i) 2 ∈ X (base)

ii) Se n ∈ X, então n+2 ∈ X (passo de indução)

(pois 5+2∉X), já os conjuntos

X = {0, 2, 4, 6, 8, 10, ...}

X = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...} (= |N0) X = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...}

X = {0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...} X = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...}

X = {0, 2, 4, 5, 6, 7, 8, 9, 10, 11, ...} X = {2, 4, 5, 6, 7, 8, 9, 10, 11, ...}

X = {0, 2, 4, 6, 7, 8, 9, 10, 11, ...} X = {2, 4, 6, 7, 8, 9, 10, 11, ...}

X = {0, 2, 4, 6, 8, 9, 10, 11, ...} X = {2, 4, 6, 8, 9, 10, 11, ...}

etc.

satisfazem, todos eles, i) e ii), apesar de conterem imensos elementos que não são pares positivos35 (em

termos informais, podemos dizer que estes conjuntos, para além dos elementos desejados, têm "lixo").

O conjunto definido indutivamente é o "menor" conjunto (para a relação ⊆) que satisfaz a base e o

passo da indução (é o único conjunto que satisfaz a base e o passo da indução e que não tem "lixo").

À frente veremos outros exemplos de conjuntos definidos indutivamente36. Antes, porém, vamos

precisar estas ideias, começando por dar (ou recordar) algumas definições prévias.

Seja E ≠ ∅ o nosso universo de trabalho (pelo que os vários conjuntos a considerar serão sempre

assumidos como subconjuntos de E).

35 Uma infinidade deles (com excepção do conjunto X={0,2,4,6,8,10,...}, que só tem um elemento que não é par positivo: o 0).36 Um exemplo de um conjunto que pode ser definido indutivamente é, naturalmente, o próprio conjunto dos naturais. Por outro

lado, a definição de linguagens e a maioria das definições em lógica são de natureza indutiva (ou podem assim ser formuladas).

Page 24: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

242

Como referimos no capítulo 4, uma operação em (ou sobre) E é normalmente vista como uma

aplicação de Ek em E, supondo que se trata de uma operação k-ária (k≥1)37, dizendo-se que um conjunto é

fechado para uma operação f se a imagem por f de elementos do conjunto ainda pertence ao conjunto.

No entanto, por vezes é útil considerar operações que nem sempre estão definidas, i.e. admitir que as

operações possam ser parciais, e ver uma operação k-ária (k≥1) sobre E, f, simplesmente como uma

função (parcial) f : Ek / → E. A definição anterior de conjunto fechado para uma operação estende-se de

uma forma natural a estes casos:

Definição 1 :

Diz-se que um conjunto U (⊆ E) é fechado para uma operação f : Ek / → E sse

∀x1,...,xk ∈ U ((x1,...,xk) ∈ dom(f) ⇒ f(x1,...xk) ∈ U)

Notação :

Recorde-se que, dada uma função f: Ek / → E, quando escrevemos y = f(x1,...xk) subentende-se que

(x1,...,xk) ∈ dom(f) (e, naturalmente, que y ∈ E).

Observação 1 :

A definição anterior pode também ser estendida, de forma igualmente natural, a relações binárias entre Ek e

E. Tal é feito a seguir, usando a notação x →R y, em vez de xRy, para designar que x está em relação com

y por uma relação binária R:

Diz-se que um conjunto U (⊆ E) é fechado para uma relação binária R ⊆ Ek x E sse

∀x1,...,xk ∈ U ∀y ∈ E ((x1,...,xk) →R y ⇒ y ∈ U)

(i.e., informalmente, “as imagens” por R de elementos que pertencem a U ainda pertencem a U).

Como uma função f : Ek / → E pode ser vista (representada) como uma relação binária funcional Rf

entre Ek e E (veja-se o capítulo 4), facilmente se conclui que a definição 1 pode ser vista como um "caso

particular" desta definição.

Refira-se, aliás, que a generalidade do que se segue (definições e resultados) ainda permanece válida se

em vez de considerarmos funções f: Ek / → E, considerarmos (mais geralmente) relações binárias R entre Ek

e E (bastará adaptar convenientemente as notações usadas à utilização de relações em vez de funções).

37 Por vezes (como no âmbito da especificação de tipos abstractos) também se considera operações 0-árias (i.e. operações sem

argumentos), vendo-se as constantes como operações desse tipo. Voltamos a salientar que não tomaremos aqui tal opção. A

uniformidade de tratamento que tal opção proporciona, embora útil em muitas circunstâncias, ao esbater as diferenças entre os

dois tipos de operações (as 0-árias e as outras), obscurece os diferentes papéis que desempenham em muitos contextos.

Page 25: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

243

Definição 2 :

Seja ∅ ≠ S (⊆ E) e seja38 "ops" um conjunto (não vazio) de operações (eventualmente parciais) em E.

Diz-se que um conjunto U (⊆ E) é indutivo com respeito ao conjunto S (dito a base ou o conjunto inicial)

e ao conjunto de operações "ops" sse

i) S ⊆ U

ii) U é fechado para cada uma das operações f (do conjunto de operações em causa, ops)

Observação 2 :

a) Dado ∅ ≠ S (⊆ E) e um conjunto ops de operações em E, existe sempre pelo menos um conjunto que

é indutivo com respeito à base S e a esse conjunto de operações: o próprio E.

b) Normalmente o conjunto de operações em que estamos interessados é um conjunto finito. No entanto,

o que se segue é válido para qualquer conjunto de operações39.

c) Num dos exemplos à frente, consideraremos operações que podem ter "um qualquer número de

argumentos" em E. Mais precisamente, consideraremos também funções

f: (∪k≥1Ek) / → E.

A noção de conjunto fechado para uma operação pode ser definida para tais casos como se segue40:

um conjunto U (⊆ E) é fechado para uma função f: (∪k≥1Ek) / → E sse

∀k≥1 ∀x1,...,xk ∈ U ((x1,...,xk) ∈ dom(f) ⇒ f(x1,...xk) ∈ U).

Apesar de não ser muito correcto dizer que uma função entre Ek e E é um caso particular de uma

função entre (∪k≥1Ek) e E (pois relacionam conjuntos distintos), vendo essas funções como meros

conjuntos (como relações), temos que uma função f(k) : Ek / → E é um caso particular de uma função

entre (∪k≥1Ek) e E, que satisfaz:

∀j≠k ∀x1,...,xj ∈ U ((x1,...,xj) ∉ dom(f(k)))

Nesse sentido podemos dizer que a definição acabada de dar de conjunto fechado para uma operação

estende a definição 1.

Por outro lado, podemos também ver uma função f: (∪k≥1Ek) / → E como uma família de funções

f(k) : Ek / → E (k≥1), tendo-se então, informalmente, que U é fechado para f se U é fechado para todas as

funções da família. Nesta perspectiva, como o conjunto ops das operações em questão não tem de ser

finito, a consideração de uma "operação" f: (∪k≥1Ek) / → E não traz nada de essencialmente novo.

38 No que se segue, assumiremos implícito que o conjunto de operações (que designaremos genericamente de) "ops" é não

vazio. Ao longo desta secção, igualmente assumiremos (mesmo sem o explicitar) que as operações em E podem ser "parciais"

(no sentido de que não têm de ser aplicações de Ek em E, podendo ser simplesmente funções f : Ek / → E).39 O que é fundamental é que cada uma das operações seja "finitária", isto é, tenha aridade finita (informalmente, tenha um

número finito de argumentos).40 Conceito que pode ainda ser estendido a relações binárias entre sequências de elementos de E e elementos de E (isto é, a

relações binárias entre (∪k≥1Ek) e E): ver observação 1 atrás.

Page 26: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

244

Notações e termino logia :

a) Para designar que um conjunto U (⊆ E) é indutivo com respeito a um conjunto ∅ ≠ S (⊆ E) e a um

conjunto ops de operações, escreveremos abreviadamente U é indutivo wrt(S; ops) 41.

b) No caso mais usual em que ops é um conjunto finito de operações {f1, ..., fn} (n≥1), em vez de dizer

que U é indutivo com respeito a S e ao conjunto {f1,. .., fn}, podemos dizer que U é indutivo com

respeito a S e às operações f1, ..., fn, e escrever abreviadamente que U é indutivo wrt(S; f1,...,fn).

c) Quando S e o conjunto ops das operações em causa for evidente pelo contexto, podemos mesmo dizer,

simplesmente, que U é indutivo (em vez de dizer que U é indutivo wrt(S;ops)).

Teorema 1 :

Seja ∅ ≠ S (⊆E) e ops um conjunto de operações em E.

Existe um conjunto indutivo wrt(S;ops) que é menor que todos os outros, no sentido de que está contido

em todos os outros conjuntos indutivos wrt(S;ops), o qual é igual ao conjunto

U indutivo wrt(S;ops)I U

isto é, o conjunto42:

U∈BI U , com B = {U (⊆ E): U é indutivo wrt(S;ops)}

isto é, ainda, o conjunto:

{x (∈E): ∀U indutivo wrt(S;ops) x∈U}

Demonstração :

Designemos o conjunto anterior por Sg

i) Sg é indutivo, pois:

- S ⊆ Sg (uma vez que o conjunto S está contido em todo o conjunto U indutivo wrt(S;ops))

- e Sg é fechado para qualquer operação f (pertencente a ops), como se mostra a seguir (supondo que a

aridade de f é k):

x1, ..., xk ∈ Sg e y = f(x1,...,xk)

⇓ (por definição de Sg)

∀U indutivo wrt(S;ops) (x1, ..., xk ∈ U e y = f(x1,...,xk))

⇓ (por definição de conjunto indutivo)

∀U indutivo wrt(S;ops) y ∈ U

⇓ (por definição de Sg)

y ∈ Sg

ii) Que Sg está contido em qualquer conjunto indutivo sai imediatamente da definição de Sg.

41 wrt vem de “with respect to” (com respeito a).42 Conjunto que está bem definido (veja-se a secção 3 do capítulo 2), pois B é não vazio (uma vez que E ∈ B).

Page 27: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

245

Definição 3 :

Seja ∅ ≠ S (⊆ E) e ops um conjunto de operações em E. Ao menor conjunto indutivo wrt(S;ops) (cuja

existência é garantida pelo teorema 1), chama-se o conjunto gerado a partir de S pelas operações em ops,

ou o conjunto definido indutivamente, a partir de S, pelas operações em ops. Tal conjunto será designado

por43 Sgops. Pode também usar-se Sg

f1,...,fn, se ops for um conjunto finito de operações {f1, ..., fn}. Pode

ainda escrever-se só Sg, se pelo contexto for evidente que as operações em causa estão implícitas.

Teorema 2 (Corolário):

Se U ⊆ Sgops e U é indutivo wrt(S;ops), então U = Sg

ops

Demonstração :

Imediato, pois, como Sgops

é o menor conjunto indutivo wrt(S;ops), tem-se Sgops ⊆ U.

Terminologia :

Quando se diz o conjunto X (⊆ E) define-se indutivamente como se segue:

i) S ⊆ X

ii) X é fechado44 para as operações ...

quer-se com isso dizer que X é o conjunto gerado a partir de S pelas operações indicadas.

Exemplo 1 :

Considerando (por exemplo) que E = |N0, então, de acordo com o que vimos atrás e usando a terminologia

anterior, podemos dizer que o conjunto Pares+ (dos pares positivos) define-se indutivamente como se segue:

i) {2} ⊆ Pares+ (ou, equivalentemente, 2 ∈ Pares+)

ii) Pares+ é fechado para λn.n+2 (ou, equivalentemente, se x ∈ Pares+, então x+2 ∈ Pares+)

Sobre os conjuntos definidos indutivamente pode definir-se um princípio de indução, de fácil enunciado

e aplicação, como se mostra a seguir45.

43 O índice superior "g" é para ser mnemónico de g erado.44 Ou uma afirmação equivalente a esta: veja-se os exemplos.45 Na definição seguinte P designa uma propriedade e, como é usual, P(x) significa que x (∈E) satisfaz a propriedade P.

Designando por H o subconjunto do universo de trabalho E onde a propriedade P está definida (isto é, informalmente, H designa

o conjunto dos elementos de E para os quais faz sentido afirmar que x satisfaz ou não satisfaz a propriedade P), embora em

geral H coincida com E (por a propriedade P estar definida em todo o universo de trabalho), poderá haver casos em que H é um

subconjunto próprio de E. De qualquer forma, em qualquer dos casos, continua a poder falar-se do conjunto {x (∈E): P(x)}, que

coincidirá com o conjunto {x∈H: P(x)}. No entanto, se H for um subconjunto próprio de E, (como afirmar P(x) é afirmar que P

está definida em x e x satisfaz P, e afirmar ¬P(x) é afirmar que P está definida em x e x não satisfaz P) não será verdade que

{x(∈E): P(x)} ∪ {x(∈E): ¬P(x)} = E, embora se tenha que {x∈H: P(x)} ∪ {x∈H: ¬P(x)} = H.

Page 28: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

246

Definição 4 :

Diz-se que uma propriedade P é preservada por f : Ek / → E sse o conjunto {x(∈E): P(x)} é fechado para f.

Isto é, informalmente, f preserva46 P sse as imagens por f de elementos que satisfazem P ainda

satisfazem P (ou, de outro modo, sempre que f é aplicada a elementos que satisfazem P, e para os quais f

está definida, obtêm-se elementos que ainda satisfazem P):

P(x1) ∧ ... ∧ P(xk) ∧ y = f(x1,...,xk) ⇒ P(y)

Seja X o conjunto gerado a partir de S por um conjunto ops de operações e suponha-se que se pretende

provar que todo o elemento x de X satisfaz uma dada propriedade P, i.e. pretende-se provar que: ∀x∈X P(x).

Se provarmos que o conjunto {x∈X: P(x)} (isto é, o conjunto {x(∈E): x∈X ∧ P(x)}) é indutivo

wrt(S;ops), então, pelo teorema 2, temos que {x∈X: P(x)} = X, pelo que ∀x∈X P(x) (c.q.d.).

Obtém-se, assim, o seguinte princípio de indução, dito princípio de indução estrutural, por

(informalmente) a indução ser feita de acordo com a estrutura da geração do conjunto X em causa.

Princípio de indução estrutural I (para conjuntos definidos indutivamente)47:

Seja X o conjunto gerado a partir de S por um conjunto ops de operações. Para provar que todo o elemento

x de X satisfaz uma dada propriedade P, basta-nos provar que {x(∈E): x∈X ∧ P(x)}) é indutivo wrt(S;ops),

isto é, basta-nos provar que:

i) Base da indução: todo o elemento de S verifica (satisfaz) a propriedade P

iI) Passo de indução: qualquer que seja a operação f em ops (com k a aridade de f):

quaisquer que sejam os elementos x1, ..., xk de X (para os quais f está definida),

P(x1) ∧ ... ∧ P(xk) ∧ y = f(x1,...,xk) ⇒ P(y)

Refira-se, ainda, que em geral este mecanismo de indução pode ser formulado de uma forma mais

simples, que é suficiente para a maioria dos casos.

De facto, em muitos casos não precisamos de nos concentrar no conjunto {x(∈E): x∈X ∧ P(x)}; basta

considerar o conjunto U = {x(∈E): P(x)} e mostrar que ele é indutivo wrt(S;ops) (pois, se tal for o caso,

então, como X = Sgops

é o menor conjunto indutivo wrt(S;ops), tem-se X⊆U e, portanto, ∀x∈XP(x)).

Obtém-se, assim, a seguinte versão mais simples do princípio de indução estrutural:

46 Este conceito pode estender-se a relações binárias entre Ek e E como se segue (veja-se a observação 1): uma propriedade P

é preservada por uma relação binária R (entre Ek e E) sse o conjunto {x(∈E): P(x)} é fechado para R, isto é, se "as imagens" por

R de elementos que satisfazem P ainda satisfazem P: P(x1) ∧ ... ∧ P(xk) ∧ (x1,...,xk)→Ry ⇒ P(y).47 O princípio de indução simples nos naturais pode ser visto como um caso particular deste princípio de indução, considerando

que |N0 é o conjunto gerado a partir de S={0} pela operação λx.(x+1) (podendo assumir-se que o universo de trabalho E,

implícito, é p.ex. |R).

Page 29: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

247

Princípio de indução estrutural II (para conjuntos definidos indutivamente):

Seja X o conjunto gerado a partir de S por um conjunto ops de operações. Para provar que todo o elemento

n de X satisfaz uma dada propriedade P, basta-nos provar que:

i) Base da indução: todo o elemento de S verifica (satisfaz) a propriedade P

iI) Passo de indução: a propriedade P é preservada por qualquer uma das operações em ops.

Observação 3 ("restrição de f a X" e diferença entre as duas versões do princípio de indução estrutural)

a) Sendo f : Ek / → E uma operação (parcial) em E, então pela "restrição de f a X" (com X ⊆ E) entende-

se48 a função f|X : Xk / → E assim definida:

qualquer que seja (x1,...,xk)∈Xk,

f|X está definida em (x1,...,xk) sse f também o está, em cujo caso f|X(x1,...,xk) = f(x1,...,xk)

Quando X é fechado para f, então o contradomínio de f|X está contido em X, podendo considerar-se que o

conjunto de chegada de f|X é o próprio X (em vez de E), pelo que f|X será então uma operação em X.

Refira-se, ainda, que muitas vezes se usa mesmo f, em vez de f|X, para denotar a "restrição de f a X".

Tal simplificação notacional será também aqui usada (desde que seja evidente pelo contexto que nos

estamos a referir à "restrição de f a X").

b) Embora as duas versões do princípio de indução estrutural não sejam equivalentes, a versão I implica a

versão II (demonstre!).

c) Usando a noção introduzida em a), podemos estabelecer as diferenças entre as duas versões do princípio

de indução estrutural, como se segue (onde X designa o o conjunto gerado a partir de S por ops):

• na versão II, mostramos que a propriedade P é preservada por qualquer uma das operações f em ops;

• ao passo que, na versão I, apenas temos de mostrar que a propriedade P é preservada pela "restrição a

X" dessas operações.

Na generalidade dos casos, a propriedade P em causa é mesmo preservada pelas operações f : Ek / → E,

em causa, isto é, quaisquer que sejam x1,...,xk em E:

P(x1) ∧ ... ∧ P(xk) ∧ y = f(x1,...,xk) ⇒ P(y)

pelo que nesses casos, podemos recorrer à versão II (mais simples) do princípio de indução estrutural.

No entanto, existem situações em que embora uma dada operação f : Ek / → E não preserve P, a sua

restrição a X, já preserva P, pelo que nesses casos temos de recorrer à versão I do princípio de indução

estrutural. Na observação 4-b), à frente, ilustra-se uma situação desse género.

Vejamos um primeiro exemplo de aplicação do princípio de indução estrutural (versão) II.

Exemplo 2 (propriedades dos pares positivos):

Suponha-se que se pretende provar que todo o par positivo é a soma de dois ímpares.

48 De acordo com as definições introduzidas no capítulo 4, secção 1, esta função seria a restrição de f a Xk.

Page 30: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

248

a) Usando a definição indutiva do conjunto Pares+, apresentada no exemplo 1 (onde se considerou E=|N0),

pode provar-se esse resultado, por indução estrutural, como se segue, onde P(n) designa a propriedade

"n é a soma de dois ímpares":

Base: Verifica-se P(2).

Demonstração:

2 = 1 + 1

Passo de indução: A operação (unária) em |N0, λn.n+2, preserva P.

Demonstração:

Seja n um qualquer natural. Quer-se provar que P(n) ⇒ P(n+2). Ora:

P(n)

existem x e y ímpares tais que n = x + y

existem x e y ímpares tais que n+2 = x + (y + 2)

⇓ 49

existem x e z ímpares tais que n+2 = x + z

P(n+2) (c.q.d.)

b) Naturalmente, como o nosso universo de trabalho (o conjunto dos naturais) também satisfaz um

princípio de indução, poderíamos usar o princípio de indução finita para provar o seguinte resultado

equivalente:

todo o natural n satisfaz a propriedade Q(n)

com Q(n) = " se n é par positivo, então n é a soma de dois ímpares"

mas tal demonstração (que se deixa ao cuidado do leitor) parece ser (desnecessariamente) mais

complicada.

Observação 4 :

a) Antes de prosseguir, convém "tirar a ideia" (que poderá começar a surgir) que, sempre que possível, se

deve procurar utilizar o método da demonstração por indução. Ora, o método de demonstração a utilizar

depende do problema em causa, e o melhor método de demonstração é aquele que permitir provar de

forma mais simples o que se pretende.

Suponha-se por exemplo, que se quer provar que todo o par positivo, diferente de 2, não é primo.

Ora, neste caso, em vez de efectuar uma demonstração por indução, podemos tirar partido da

definição "de tipo declarativo" do que é um par positivo50, para obter uma demonstração muito simples

desta propriedade.

49 Um natural y é ímpar se y = 2k+1, para algum natural k. Mas então z = y+2 = 2(k+1)+1 é ímpar.50 Estamos aqui a assumir que já se provou que o conjunto Pares+ (definido indutivamente) coincide com o conjunto ({n ∈ |N1:

∃i∈|N1 n = 2i}) = {n ∈ |N0: ∃i∈|N1 n = 2(i+1)}, o que é muito fácil de fazer, por indução estrutural (p.ex. versão II).

Page 31: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

249

De facto, se x é um par positivo, então existe um natural k≥1 tal que x = 2k. E:

ou k=1, e x = 2, pelo que x satisfaz "x ≠ 2 ⇒ x não é primo"

ou k>1, e x é maior que 1, x é divisível por 2 e x é diferente de 2, pelo que x não é primo51.

b) Refira-se ainda, a propósito deste exemplo, que embora o resultado em causa

"todo o par positivo, diferente de 2, não é primo"

possa também ser provado por indução estrutural, a versão II (mais simples) desse princípio não servirá

neste caso, já que a operação em |N0, λn.n+2, não preserva a propriedade

P(x) = "x ≠ 2 ⇒ x não é primo"

Para o ver, basta atender a que se tem P(9) mas não P(11) (ou, como outro contra-exemplo, tem-se

P(1) mas não P(3)).

Já a versão I do princípio de indução estrutural pode ser usada para demonstrar que "todo o par

positivo, diferente de 2, não é primo", provando o seguinte (com P(x) = "x ≠ 2 ⇒ x não é primo"):

Base: Verifica-se P(2).

Passo de indução: Sendo x∈Pares+ qualquer, se se verifica P(x), então verifica-se P(x+2).

No entanto, na demonstração do passo de indução (que se deixa como exercício) será fundamental usar o

facto de x∈Pares+ e de tal implicar x é igual a 2k, para algum natural k≥1, pelo que esta demonstração

por indução não nos traz qualquer vantagem face à demonstração directa, efectuada em a).

Vejamos mais alguns exemplos de conjuntos definidos indutivamente (de diferentes géneros),

juntamente com algumas provas por indução estrutural.

Exemplo 3 (Linguagens):

a) Considere-se uma hipotética linguagem simbólica L definida como se segue:

• Alfabeto de L: os caracteres "a" e "b"

Isto é, designando por52 Alf o alfabeto de L, tem-se Alf = {a, b}

• Frases da linguagem L:

O conjunto das frases de L define-se indutivamente como se segue (onde w designa uma qualquer

sequência, eventualmente vazia, de elementos do alfabeto de L)

i) Uma sequência formada apenas pelo símbolo a é uma frase de L.

ii) Se wa é uma frase de L, então waa também o é;

Se wa é uma frase de L, então wab também o é;

Se wb é uma frase de L, então wbb também o é.

Notação: nas sequências de caracteres (strings) costuma-se omitir os parênteses cursos e as vírgulas, e

escrever apenas, por exemplo: a em vez de (a) (identificando o carácter a com a sequência (a)); ab em

51 Um número primo, como é bem conhecido, é um número natural, maior que 1, que só é divisível por 1 e por si próprio.52 Se for necessário explicitar qual a liguagem L em causa, poderá escrever-se, por exemplo, Alf(L), ou AlfL, para designar o

alfabeto de L.

Page 32: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

250

vez de (a, b); etc. Para designar a sequência vazia, usaremos a seguir o símbolo ε (entre outros

símbolos usados para denotar a sequência vazia refira-se e ¸).

(Nota: facilmente se verifica que a sequência vazia não é considerada uma frase desta linguagem.)

b) Vejamos como se pode definir o conjunto das frases de L à custa dos conceitos introduzidos.

Consideremos como universo de trabalho o conjunto E = Alf+ formado por todas as sequências não

vazias de elementos do alfabeto de L53.

O conjunto das frases de L é o conjunto gerado a partir de S = {a}, pelas operações fa e fb a seguir

definidas:

• fa é a função fa : E / → E dada por por: qualquer que seja w∈Alf*, fa(wa) = waa

subentendendo-se que a operação fa só está definida para sequências terminando em a 54

(nota: fazendo w igual à sequência vazia ε, obtém-se f(a) = f(εa) = εaa = aa)

• fb é a função fb : E / → E dada por55: qualquer que seja w∈Alf*, fb(wa) = wab e fb(wb) = wbb

(nota: fa está definida em todo o E = Alf+)

c) Construção de frases da linguagem (abordaremos este tópico, de forma genérica, mais à frente):

É fácil verificar que, por exemplo, a sequência aab é uma frase da linguagem, mostrando que ela pode

ser obtida a partir da base, por aplicação sucessiva das operações (de geração de novas frases):

frase 1: w1 = a (∈S)

frase 2: w2 = aa = fa(w1)

frase 3: w3 = aab = fb(w2)

d) Provemos agora que se tem:

∀w frase de L

w = anbk, com n≥1 e k≥0

isto é, mais precisamente:

∀w frase de L

∃n≥1

∃k≥0

w = anbk

asserção que podemos formular como se segue

∀w frase de L

P(w), com P(w) a propriedade

∃n≥1

∃k≥0

w = anbk

onde bk designa uma sequência de k b's (a sequência vazia ε, se k=0).

Provemos este resultado por indução estrutural (aplicando p.ex. a versão II deste princípio):

Base: Verifica-se P(a).

Demonstração:

Imediato, pois a = a1b0

Passo de indução: A propriedade P é preservada pelas operações fa e fb.

Caso 1: A propriedade P é preservada por fa. Demonstração:

53 Alternativamente podíamos mesmo considerar que E era igual a Alf*, i.e. o conjunto formado por todas as sequências de

elementos do alfabeto de L (incluindo a sequência vazia).54 Alternativamente podemos considerar que fa é a aplicação fa: E → E dada por: qualquer que seja v∈Alf+, fa(v) = va, se v

termina em a e, caso contrário, fa(v) = v.55 Alternativamente podemos considerar que fb é a aplicação fb: E → E dada por: qualquer que seja v∈Alf+, fb(v) = vb.

Page 33: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

251

Seja w ∈ E = Alf+ qualquer. Pretende provar-se que fa estar definida em w e verificar-se P(w)

implica que se verifica P(fa(w)).

Demonstração:

P(w) e w∈dom(fa)

⇓ (P(w) ⇒ w = anbk, para n≥1 e k≥0; e w = anbk ∧ w∈dom(fa) ⇒ k=0)

w = an, para algum n≥1

fa(w) = an+1, com n≥1

fa(w) = an+1b0, com n≥1

P(fa(w))

Caso 2: A propriedade P é preservada por fb. Demonstração:

Seja w ∈ E = Alf+ qualquer. Pretende provar-se que fb estar definida em w (o que se verifica sempre)

e verificar-se P(w) implica que se verifica P(fa(w)).

Demonstração:

P(w)

w = anbk, para algum n≥1 e algum k≥0

⇓ 56

fb(w) = anbj, para algum n≥1 e algum j≥1 (j = k+1)

P(fb(w))

Observação 5 (Linguagens e gramáticas):

Na Teoria das Linguagens as linguagens são normalmente definidas a partir de gramáticas. Há vários tipos

de gramáticas. As mais simples são as chamadas gramáticas independentes do contexto. Uma gramática

independente do contexto, G, toma a forma:

G = (SNT, ST, P, SI)

onde:

• SNT é o conjunto dos símbolos não terminais;

• ST é o conjunto dos símbolos terminais (os símbolos que fazem parte do alfabeto da linguagem);

• P é o conjunto (finito) das produções;

• e SI é o símbolo inicial57 (que é sempre um símbolo não terminal).

Cada produção toma a forma α→β, com α e β sequências formadas por símbolos terminais e não

terminais, não podendo α ser a sequência vazia.

56 Ou w = anb0 = an, para algum n≥1 e fb(w) = anb = anb1, ou w = anbk, para algum n≥1 e algum k≥1, e fb(w) = anbk+1.

Page 34: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

252

Uma produção α→β pode ser vista como significando "substituir α por β".

Deverá existir uma produção cujo lado esquerdo (α) seja formado apenas pelo símbolo inicial, cada

símbolo não terminal deverá ocorrer no lado esquerdo de alguma produção e o lado esquerdo de cada

produção deverá envolver pelo menos um símbolo não terminal.

Uma frase da linguagem deve poder ser derivada, a partir do símbolo inicial SI, por aplicação das

produções, até se chegar a uma sequência formada só por símbolos terminais.

A forma como se processa a derivação de uma frase, por aplicação das produções, é mais ou menos

intuitiva e não especificaremos aqui, uma vez que se trata de um tópico já fora do âmbito deste texto. De

qualquer forma, ilustraremos a seguir uma derivação.

A linguagem L, do exemplo 3 anterior, poderia ser definida a partir da seguinte gramática independente

do contexto:

G = ({SI, A, B}, {a, b}, P, SI)

com P o conjunto formado pelas produções:

SI → aAB

A → aA ε (onde significa "ou" e, como no exemplo 3, ε designa a sequência vazia)

B → bB ε

Usando ⇒ como significando "deriva-se num passo (i.e. por aplicação de uma produção)", podemos

ilustrar a derivação da frase aab, de acordo com esta gramática, como se segue:

SI

⇓ (produção SI → aAB)

aAB

⇓ (produção58 A → aA)

aaAB

⇓ (produção A → ε)

aaB

⇓ (produção B → bB)

aabB

⇓ (produção B → ε)

aab

Exemplo 4 (Fórmulas de uma linguagem lógica: lógicas de base proposicional):

Ao definir uma lógica, começa-se por definir a linguagem formal que lhe serve de suporte. As frases (ou

frases bem formadas) de uma linguagem formal são chamadas de fórmulas.

57 Costuma-se designar o símbolo inicial por S, mas aqui temos usado S para nos referirmos à base dos conjuntos gerados.58 A produção A→aAε pode ser vista como uma abreviatura de duas produções, com o mesmo lado esquerdo: a produção

A→aA e a produção A→ε. Por outro lado, é de referir que nesta derivação se optou por primeiro substituir o símbolo não

terminal A e só depois se substituir o símbolo não terminal B, mas nada obriga a que se siga essa estratégia de derivação.

Page 35: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

253

A generalidade das linguagens formais inclui no seu alfabeto três tipos de símbolos: símbolos de

pontuação, símbolos utlizados para denotar as fórmulas (frases) atómicas59 e símbolos de operadores

("sintácticos").

A cada símbolo de operador está associado uma operação de construção de frases (fórmulas). Fixado o

símbolo (designemo-lo a seguir, genericamente, por o), precisamos de saber a aridade da operação

associada, bem como o tipo de notação considerada (prefixa, infixa ou sufixa60), para conhecer o modo

como este gera novas frases a partir de outras frases. Supondo que o é um símbolo de operador n-ário

(n≥1), podemos definir (genericamente) a operação de construção de frases que lhe está associada como uma

aplicação (a seguir designada por fo) definida como se segue61:

fo : En → E

fo(e1,...,en) = (o e1), se o for um operador unário (i.e. se n = 1)

= (e1 o e2), se o for um operador binário (i.e. se n = 1)

= o(e1, ..., en), se a aridade n do operador o for superior a 2

onde E é igual a Alf*, com Alf o conjunto de símbolos do alfabeto da linguagem62.

O conjunto das fórmulas de uma tal linguagem é usualmente definido como sendo o conjunto gerado a

partir do conjunto das fórmulas atómicas pelas operações de construção de frases consideradas.

E, pela versão mais simples do princípio de indução estrutural, para provar que toda a fórmula da

linguagem satisfaz uma certa propriedade P, basta-nos provar que:

i) Base da indução: Toda a fórmula atómica satisfaz P

ii) Passo de indução: As operações preservam a propriedade P

Vejamos dois exemplos concretos, para ilustrar o que se acabou de dizer (o primeiro relativo às lógicas

proposicionais e o seguinte sobre as chamadas lógicas de crenças).

59 Isto assumindo que não estamos interessados em detalhar a estrutura de tais fórmulas atómicas, como é o caso com as

linguagens de base proposicional. Quando tal não é o caso, como nas linguagens de 1ª ordem, então em vez de se considerar no

alfabeto símbolos para denotar as fórmulas atómicas, introduzem-se símbolos para denotar os termos atómicos (tipicamente

símbolos de constantes e variáveis), bem como símbolos (de funções) usados para gerar termos a partir de outros termos, e

símbolos (de predicados) usados para gerar as frases atómicas a partir dos termos.60 Recorde-se que: na notação prefixa o símbolo do operador aparece antes das expressões argumento; na infixa o símbolo do

operador aparece entre as expressões argumento; e na sufixa o símbolo do operador aparece após as expressões argumento.61 Assume-se a seguir que se usa, como é mais usual, a notação infixa para os operadores binários e a notação prefixa para os

operadores de aridade superior a 2 (incluindo-se a vírgula no alfabeto da linguagem, quando existem estes operadores). Refira-

se ainda que, para evitar a proliferação de parênteses que não sejam estritamente necessários, costuma-se depois omitir,

nomeadamente, os parênteses curvos associados aos operadores unários, bem como os parênteses exteriores de uma fórmula.62 Por vezes designa-se tal universo de trabalho como sendo o conjunto das expressões da linguagem. As fórmulas da

linguagem, que são o subconjunto dessas expressões em que estamos interessados, podem então ser vistas como as expressões

"bem formadas" da linguagem. Por exemplo, na linguagem proposicional L¬,⇒, que a seguir se descreve, e usando esta

terminologia, tem-se que ¬(p1 será uma expressão da linguagem L¬,⇒, apesar de não ser uma fórmula dessa linguagem.

Page 36: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

254

a) As lógicas mais simples são as chamadas lógicas proposicionais, que incluem um conjunto

(normalmente numerável) de símbolos para denotar as frases atómicas (ditos símbolos proposicionais)

e um conjunto de operadores para denotar alguns (dos usuais) conectivos proposicionais63.

Segue-se um exemplo de uma linguagem proposicional, a seguir designada de L¬,⇒.

Alfabeto de L¬,⇒:

O alfabeto de L¬,⇒ é formado pelos parênteses curvos, pelos símbolos proposicionais p1, p2, p3, ...

e pelos símbolos de operadores ¬ (operador unário) e ⇒ (operador binário).

Fórmulas de L¬,⇒:

O conjunto das fórmulas de L¬,⇒, que podemos designar por For(L¬,⇒) (ou só por For, quando,

como a seguir, é evidente que nos estamos a referir a L¬,⇒), define-se indutivamente como se segue:

i) Todo o símbolo proposicional é uma fórmula

(i.e. {pi; i≥1} ⊆ For)

ii-a) Se ϕ é uma fórmula, então (¬ ϕ) também o é

(i.e. For é fechado para a operação unária f¬)

ii-b) Se ϕ1 e ϕ2 são fórrmulas, então (ϕ1 ⇒ ϕ2) também o é

(i.e. For é fechado para a operação binária f⇒)

Isto é, dito de outra forma, For é o conjunto gerado a partir de {pi; i≥1} por f¬ e f⇒.

E, pela versão mais simples do princípio de indução estrutural, para provar que toda a fórmula da

linguagem L¬,⇒ satisfaz uma certa propriedade P, basta-nos provar que:

i) Base da indução: verifica-se P(pi), para qualquer i≥1

ii) Passo de indução (sobre as diferenças entre utilizar a versão I e a versão II do princípio de

indução estrutural, no passo de indução, veja-se a póxima nota de rodapé):

ii-1) Se P(e) então P((¬e)), qualquer e∈E 64

ii-2) Se P(e1) e P(e2) então P((e1 ⇒ e2)), para quaisquer expressões e1,e2∈E

Como ilustração da aplicação deste princípio de indução estrutural, costuma-se provar que toda a

fórmula ϕ da linguagem possui a seguinte propriedade:

"O número de parênteses esquerdos em ϕ é igual ao número de parênteses direitos em ϕ"

Apesar de se tratar de uma propriedade "pouco interessante" (por ser intuitivamente óbvia), vejamos

a sua demonstração:

Notação: dado e∈E, qualquer, designe-se por npe(e) o "número de parênteses esquerdos em e", por

npd(e) o "número de parênteses direitos em e", e por P(e) a asserção "npe(e)=npd(e)"

63 Que correspondem aos conectivos primitivos da linguagem. Os outros usuais conectivos proposicionais são então definidos à

custa destes.64 Aproveite-se este exemplo, para voltar a ilustrar as diferenças entre considerar a versão I e a versão II do princípio da

indução estrutural: na versão I, apenas se tem de garantir que "Se P(ϕ) então P((¬ϕ)), para qualquer fórmula ϕ", ao passo que

na versão II não nos preocupamos em considerar apenas fórmulas, e mostramos (usando a terminologia da penúltima nota de

rodapé) que tal implicação se verifica mesmo para qualquer expressão da linguagem, isto é, mostramos que se tem mesmo que

"Se P(e) então P((¬e)), para qualquer expressão e∈E". (Naturalmente, nem sempre a versão II, mais simples, nos chega.)

Page 37: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

255

Base: verifica-se P(pi), para qualquer i≥1. Demonstração:

Imediato, pois, npe(pi) = 0 = npd(pi)

Passo de indução:

ii-1) f¬ preserva P. Demonstração:

Seja e∈E, qualquer. Tem-se:

P(e)

implica

npe(e) = npd(e)

implica (pois f¬(e) = (¬e) )

npe(f¬(e)) = npe(e)+1 = npd(e)+1 = npd(f¬(e))

implica

P(f¬(e))

ii-2) f⇒ preserva P. Demonstração:

Sejam e1,e2∈E, quaisquer. Tem-se:

P(e1) e P(e2)

implica

npe(e1) = npd(e1) e npe(e2) = npd(e2)

implica (pois f⇒(e1, e2) = (e1 ⇒ e2) )

npe(f⇒(e1, e2)) = npe(e1)+ npe(e2)+1 = npd(e1)+ npd(e2)+1 = npd(f⇒(e1, e2))

implica

P(f⇒(e1, e2))

b) Nas chamas lógicas de crença, de base proposicional, considera-se um conjunto Ag de (identificadores

de) agentes, e estende-se o alfabeto de uma linguagem proposicional (por exemplo da linguagem L¬,⇒

anterior), com um operador (unário) Ba para cada agente a (∈Ag). Intuitivamente, se ϕ é uma fórmula

da linguagem, então a fórmula65 (Ba ϕ) significa que "o agente a acredita (Believes) que ϕ é o caso”

(isto é, “o agente a acredita que a asserção expressa por ϕ é verdadeira”).

O conjunto das fórmulas de uma tal linguagem define-se indutivamente como se segue:

i) Todo o símbolo proposicional é uma fórmula

ii-a) Se ϕ é uma fórmula, então (¬ ϕ) também o é

ii-b) Se ϕ1 e ϕ2 são fórrmulas, então (ϕ1 ⇒ ϕ2) também o é

ii-c) Se ϕ é uma fórmula e a∈Ag, então (Ba ϕ) também o é

Isto é, dito de outra forma, o conjunto das fórmulas de uma tal linguagem é o conjunto gerado a partir

de {pi; i≥1} pelo conjunto de operações {f¬ , f⇒} ∪ {fBa : a∈Ag}.

65 Tal como já se referiu em nota de rodapé anterior, os parênteses curvos são em geral omitidos nas fórmulas construídas a

partir de um operador unário, escrevendo-se Baϕ em vez de (Baϕ).

Page 38: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

256

Exemplo 5 (Árvores):

O conceito de árvore é bastante usado em Computação (e não só). Nestas árvores há um nó raiz (que não

descende de ninguém) e cada nó pode ter qualquer número (finito) de filhos66, chamando-se folha a um nó

sem filhos. Na representação gráfica usual, o nó raiz está em cima e as folhas em baixo, como se ilustra a

seguir (através de um exemplo de uma árvore onde se guardam inteiros, e onde se usa circunferências para

denotar nós e traços para representar as arestas que ligam um nó pai aos seus nós filhos):

5

3 7 11

9

Suponha-se que pretendemos dispor de uma notação (não gráfica) para denotar árvores (guardando, por

exemplo, inteiros).

Pensemos que queremos descrever uma dada árvore. Temos de indicar o nó raiz, os seus filhos, os

filhos destes, e assim por diante. Parece complicado. Mas se repararmos que uma árvore pode ser "definida

recursivamente", à custa de outras árvores, teremos o problema simplificado.

A figura a seguir ilustra o que se pretende dizer, usando triângulos para identificar as várias árvores

representadas. A ideia é que, olhando para uma árvore, podemos caracterizá-la indicando: o valor que está

no nó raiz R; e as árvores que têm como nó raiz os filhos do nó R (árvores essas que são descritas segundo

a mesma ideia, parando-se quando se chega às folhas).

5

3 7 11

9

66 Em Computação, mais do que estas árvores, são usadas as chamadas árvores n-árias (ou árvores de aridade n), em que se

fixa o número n de filhos que um nó pode ter. De particular interesse são as chamadas árvores binárias, em que cada nó ou não

tem filhos (e é uma folha), ou só tem filho esquerdo, ou só tem filho direito, ou tem dois filhos.

Page 39: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

257

Usando uma expressão como67 (onde x é um inteiro, e A1, ..., An uma sequência de n árvores)

<x, A1, ..., An>

(que se pode ler informamente "a árvore que tem com x no nó raiz, e A1, ..., An como sub-árvores

descendentes do nó raiz") para denotar a árvore que se representa graficamente como se segue:

x

A1 ... An

e uma expressão como <x> para denotar uma árvore com x no nó raiz e sem qualquer filho (isto é, uma

folha), podemos então denotar uma qualquer árvore (guardando inteiros).

Vejamos, por exemplo, como poderíamos denotar a árvore inicialmente apresentada, que a seguir se

recorda:

(*) 5

3 7 11

9

A estratégia adequada consiste em começarmos a construir / denotar a árvore, a partir das folhas:

1) <9> denota a árvore (formada pela folha):

9

2) <7,<9>> denota a árvore:

7

9

67 Ou uma expressão, talvez mais sugestiva, como arv(x; A1, ..., An), ou, ainda, uma expressão como {x, A1, ..., An} se

quisermos representar árvores por listas da liguagem de programação Mathematica. Não recorremos aqui a {x, A1, ..., An},

uma vez que usamos chavetas para conjuntos e não queremos que uma árvore como {3,{5},{5}} seja identificada com a árvore

{3,{5}}.

Page 40: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

258

3) <3> denota a árvore:

3

4) <11> denota a árvore:

11

5) E a expressão

(**) <5,<3>,<7,<9>>,<11>>

denota a árvore inicial.

A expressão gráfica (*) é muito mais simples e fácil de visualizar (aos nossos olhos) do que a

expressão "textual" (**) ? Certamente ! Mas a expressão (**) também permite denotar a mesma "estrutura"

e não só é mais fácil de escrever num "processador de texto", como (muito mais importante) é mais fácil

de manipular numa linguagem de programação68, assim como é mais fácil de utilizar para descrever

asserções formais sobre árvores binárias e para provar que estas satisfazem certas propriedades.

Vejamos então como podemos gerar o conjunto Arv dos identificadores de árvores (guardando inteiros)

que se sugeriu.

Suponha-se que o nosso universo de trabalho E é, por exemplo, B+ (i.e. o conjunto das sequências69,

não vazias, de elementos de B), com B o conjunto formado pelos inteiros e pelos símbolos (indicados a

seguir entre aspas) "<", ">", e ",".

Então Arv é o conjunto gerado a partir de

• S = {<x> : x∈Z} (o conjunto das árvores formadas por um só nó)

pelas operações (veja-se a observação 2-c))

• fx: (∪k≥1Ek) → E, com x inteiro, dadas por (para qualquer k≥1 e quaisquer e1,...,ek∈E).

fx(e1,...,ek) = <x,e1,...,ek>

Finalmente, vejamos como se pode usar a indução estrutural, para se provar propriedades destas

árvores.

Designe-se por nn(a) o número de nós numa árvore a, e por na(a) o número de arestas numa árvore a.

Sabendo que:

1) nn(<x>) = 1 (com x inteiro)

2) na(<x>) = 0

3) nn(<x,A1,...,Ak>) = 1+nn(A1) + ... + nn(Ak) (com k≥1, A1,...,Ak árvores e x inteiro)

68 Como se referiu na nota de rodapé anterior, basta substituir < por { e > por }, para termos, assim, uma representação das

árvores (de inteiros) na linguagem de programação Mathematica, recorrendo às listas desta linguagem.69 Tal como nas sequências de caracteres, nestas sequências de elementos de B assume-se que estes são colocados de seguida,

sem ser separados por vírgulas, e a sequência não é posta entre parênteses curvos (uma vírgula poderá ocorrer na sequência,

encarada como um elemento de B). De qualquer forma, não nos parece que estes (e outros eventuais) detalhes sejam

fundamentais, para se perceber a ideia da construção.

Page 41: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

259

4) na(<x,A1,...,Ak>) = k+nn(A1) + ... + nn(Ak)

(há uma aresta a ligar o "nó x" ao nó raiz de cada uma das árvores A1, ..., Ak)

é muito fácil de provar, pelo princípio de indução estrutural I, que toda a árvore A satisfaz a propriedade:P(A) = "nn(A) = na(A) +1"

Demonstração:

Base: Tem-se P(<x>) (para qualquer inteiro x). Demonstração:

Imediato, pois: nn(<x>) = 1 = 0+1 = na(<x>)+1

Passo de indução: Seja x∈Z qualquer. A restrição70 de fx a Arv preserva P. Demonstração:

Sejam k≥1 e A1, ..., Ak quaisquer k árvores (i.e., mais precisamente, quaisquer elementos de Arv), e

suponha-se que se verifica P(A1), ..., P(Ak) (HI). Quer-se provar que se verifica P(<x,A1,...,Ak>) (a tese

da indução). Ora, tal é imediato, uma vez que:

nn(<x,A1,...,Ak>)

=

1 + nn(A1) + ... + nn(Ak)

= (pela HI)

1 + (na(A1)+1) + ... + (na(Ak)+1)

=

1 + k + na(A1) + ... + na(Ak)

=

1 + na(<x,A1,...,Ak>)

Exemplo 6 (Listas da linguagem de programação Mathematica):

No que se segue podemos considerar que o nosso universo de trabalho E é, por exemplo, o conjunto das

expressões bem formadas da linguagem Mathematica. Designando por B o conjunto dos números que

podemos representar na linguagem de programação Mathematica71, então o conjunto das listas (dessa

linguagem) formadas por elementos de B (incluindo a lista vazia), pode ser definido como sendo o

conjunto gerado a partir do

• conjunto inicial formado pela expressão Mathematica List[] (ou {}, expressão que denota a lista

vazia)

• pelas operações (mais precisamente, pela família de operações) Appendx: E / → E, com x∈B, definidas

por:

70 É conveniente considerar esta restrição pois só faz sentido (e só se caracterizou) o numero de nós e o número de arestas de

expressões (elementos de E) que denotem árvores.71 Poderíamos mesmo considerar que B era o conjunto de todas as expressões (bem formadas) que podemos escrever

(explicitamente) na linguagem de programação Mathematica.

Page 42: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

260

O domínio de Appendx é formado por72 todas as expressões da forma List[b1,...,bn] (ou

{b1,...,bn}), com b1,...,bn n(≥0) elementos de B, e

Appendx(List[b1,...,bn]) = Append[List[b1,...,bn],x] = List[b1,...,bn,x]

(= List[x], se n=0)

Já vimos vários exemplos de conjuntos definidos indutivamente (bem como de provas por indução

estrutural). Existem, contudo, alguns aspectos relevantes associados a tais conjuntos, que ainda não

analisámos.

Na introdução a esta secção, dissemos, a propósito dos conjuntos definidos indutivamente, que o modo

como eles eram definidos sugeria (o que podemos chamar informalmente de) um "procedimento

operacional" para a geração dos seus elementos. A ideia é que um elemento de tais conjuntos pode ser

obtido, a partir dos elementos da base, por aplicação das operações, um número finito de vezes73 (como,

aliás, já vimos um ou dois exemplos).

Mais precisamente, vamos mostrar a seguir que:

y ∈ Sgops

sse

existe uma sequência de r (≥1) elementos de E (que podemos designar de uma sequência de construção de y)

y1, ..., yr

tal que:

1) yr = y

2) cada yj (j=1,...,r) ou pertence à base S ou resulta de aplicar uma das operações indicadas (em ops) a

elementos anteriores da sequência

(Naturalmente, terá de ter-se y1 ∈ S.)

Comecemos por precisar este conceito, antes de demonstrarmos o resultado pretendido. (No que se

segue omitiremos a referência explícita ao conjunto "ops", das operações em causa, na designação dos

vários conjuntos relevantes, a definir.)

Definição 5 :

a) Uma sequência gerada (a partir de S por um conjunto ops de operações) de comprimento r≥1, é uma

sequência de r elementos de E:

y1, ..., yr

tal que, para todo o j = 1, ..., r:

- yj ∈ S

ou

72 Poderíamos considerar um domínio maior, uma vez que o Mathematica permite efectuar "append's" a expressões que não

representam listas. Por exemplo, pode avaliar-se Append[Plus[a,b],3] que retorna 3+a+b (i.e. Plus[3,a,b]), etc.73 Pelo que, se a base for finita e o conjunto das operações também for finito, será possível geral computacionalmente qualquer

elemento desses conjuntos (assumindo que as operações são "programáveis").

Page 43: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

261

- yj resulta de aplicar uma das operações a elementos anteriores na sequência, no sentido de que74:

yj = f(yi1, ..., yik), para valores 1 ≤ i1, ..., ik < j e alguma operação f (em ops) de aridade k

b) Sr (com r>0) é igual ao conjunto dos elementos y de E tais que existe alguma sequência gerada (a partir

de S por ops) de comprimento r, que termina em y.

c) Diz-se que s é uma sequência gerada (a partir de S por ops) se s é uma sequência gerada (a partir de S

por ops) de comprimento r, para algum r > 0.

d) S =

r≥1U Sr (Se for necessário explicitar o conjunto "ops", escreveremos S ops em vez de S .)

isto é, S é igual ao conjunto dos y (∈E) tais que existe alguma sequência gerada (a partir de S por ops)

que termina em y.

e) Uma sequência de construção de y∈E (a partir de S por ops) é uma sequência gerada (a partir de S por

ops) que termina em y.

Observação 6 :

a) É imediato que S1 = S e que S1 ⊆ S2 ⊆ S3 ⊆ ... (pois o mesmo elemento pode ser repetido numa

sequência gerada).

b) É fácil de verificar que uma parte inicial de uma sequência gerada ainda é uma sequência gerada.

c) É igualmente fácil de verificar que se s1 e s2 são duas sequências geradas, então a sequência s1, s2 (a

sequência formada pela sequência s1 seguida da sequência s2 75) ainda é uma sequência gerada.

Teorema 3 :

Sg = S (isto é, mais precisamente, Sgops = S ops)

Demonstração :

a) Sg ⊆ S :

Basta-nos provar que S é indutivo wrt(S;ops) (pois Sg é o menor conjunto indutivo wrt(S;ops)).

a-i) S = S1 ⊆ S

a-ii) S é fechado para qualquer uma das operações f (em ops). Demonstração:

Seja f uma qualquer dessas operação e suponha-se que f tem aridade k

Sejam x1, ..., xk ∈ S e y ∈ E quaisquer, tais que y = f(x1,...,xk).

Sejam s1, ..., sk as sequências terminando em, respectivamente, x1, ..., xk (cuja existência é

garantida por x1, ..., xk ∈ S ). Então a sequência

s1 , s2, ..., sk , y

(i.e., ...x1, ...x2, ..., ...xk, f(x1,...,xk) )

74 No que se segue, os índices i1, ..., ik não têm de ser distintos. Assim, a operação f pode ter, em vários argumentos, um mesmo

elemento (anterior) da sequência..75 A concatenação das sequências s1 e s2.

Page 44: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

262

é uma sequência gerada que termina em y.

Logo y ∈ S (c.q.d.)

b) S ⊆ Sg :

Basta-nos provar que ∀n≥1 Sn ⊆ Sg, o que provaremos por indução "forte" nos naturais positivos (ver

enunciado de tal princípio de indução no exemplo 2 da secção 3 anterior).

b-i) Base: S1 ⊆ Sg (pois Sg é indutivo wrt(S;ops) e S1 = S)

b-ii) Passo de indução:

Seja n≥1 qualquer.

HI (hipótese de indução): ∀1≤j≤n Sj ⊆ Sg (note-se que a hipótese Sn ⊆ Sg não chega !)

Tese: Sn+1 ⊆ Sg

Demonstração:

Seja x∈Sn+1 (qualquer). Então (por definição de Sn+1) existe uma sequência gerada

y1, ..., yn, yn+1

com yn+1 = x

Mas então, por definição de sequência gerada:

- Ou x∈S, em cujo caso x∈Sg (pela base);

- Ou x=f(yi1, ..., yik) para valores 1 ≤ i1, ..., ik ≤ n e alguma operação f (em ops).

Mas, por HI, yi1, ..., yik∈Sg (uma vez que yi1∈Si1, ..., yik∈Sik e, como 1 ≤ i1, ..., ik ≤ n,

por HI, Si1⊆Sg, ..., Sik⊆Sg).

Logo, como Sg é fechado para f (por Sg ser indutivo wrt(S;ops)), tem-se que x∈Sg.

Logo, em qualquer dos casos, x∈Sg (c.q.d.)

Exemplo 7 :

Neste exemplo utilizaremos notações análogas às referidas no exemplo 3.

Seja D = {0, 1, ..., 9} o conjunto dos dígitos e suponha-se que o universo de trabalho E é o conjunto

D+ de todas as sequências não vazias de dígitos. Seja juntaCod a operação binária em E definida por:

quaisquer que sejam as sequências de dígitos x1...xn e y1...yk (com n≥1e k≥1),

juntaCod( x1...xn , y1...yk ) = x1...xn0y2...yk

Seja cod o conjunto (dos códigos pouco interessantes) gerado a partir de D por juntaCod. Isto é, dito de

outra maneira, o cojunto dos códigos, cod, define-se indutivamente como se segue:

i) todo o dígito é um código (identificando um dígito com uma sequência formada só por um dígito)

i.e. D ⊆ cod

ii) se x1...xn e y1...yk são códigos, então juntaCod(x1...xn,y1...yk) também o é

i.e. cod é fechado para a operação juntaCod

Ora, esta definição diz-nos como podemos gerar todos os códigos, mas não nos diz qual é a forma

genérica de um código. Gostaríamos de poder ter uma caracterização explícita da forma genérica de um

destes códigos (se tal for possível).

Podemos tentar tirar partido do resultado anterior, para tentar intuir tal forma genérica.

Page 45: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

263

Ora, pelo resultado anterior, nós sabemos que os nossos códigos são as sequências de dígitos que

podem ser obtidas, a partir dos dígitos, pela operação juntaCod ("junta códigos"). "Calculemos" alguns

códigos, a ver se conseguimos inferir uma forma geral para estes:

1) 7 é código (por i): 7 pertence à base D)

2) 9 é código (por i): 9 pertence à base D)

3) juntaCod(7,9) = 70 é código (sai de 1) e 2) por ii))

4) juntaCod(9,70) = 900 é código (sai de 2) e 3) por ii))

5) 4 é código (por i): 4 pertence à base D)

6) juntaCod(900,4) = 9000 é código (sai de 4) e 5) por ii))

7) juntaCod(9000,70) = 900000 é código (sai de 6) e 3) por ii))

Neste momento começamos a suspeitar que os nossos códigos tomam a forma de uma sequência de

dígitos, em que apenas o primeiro dígito é não nulo, isto é (usando a notação em d) do exemplo 3) que:

cod = {d0k: d∈D e k≥0)

Se tal suspeita for verdadeira, então, apesar de juntaCod(500,1070) estar definido, sendo igual a

5000070, esta sequência de dígitos não será um dos nossos códigos (por a seqência de dígitos 1070 não

poder ser obtida pelo processo de geração dos códigos).

Mas suspeitar não chega ! Provemos que tal é efectivamente assim ! Como ? Usando, por exemplo, o

princípio da indução estrutural II.

Demonstremos, então, que

∀c∈cod

P(c), com P(c) a propriedade

∃d∈D

∃k≥1

c = d0k

(onde, recorde-se, 0k designa uma sequência de k zeros; a sequência vazia ε, se k=0)

Base: Verifica-se P(d), para d∈D. Demonstração:

Imediato, pois d = d00

Passo de indução: A propriedade P é preservada pela operação juntaCod. Demonstração:

Sejam c1 e c2 quaisquer sequências não vazias de dígitos tais que se tem P(c1) e P(c2) (HI). Quer-se

provar que se tem P(juntaCod(c1,c2)) (a tese da indução). Demonstração:

• Como, por HI, se verifica P(c1), tem-se que existe d1∈D e k1≥0 tal que c1 = d10k1.

• Como, por HI, se verifica P(c2), tem-se que existe d2∈D e k2≥0 tal que c2 = d20k2.

• Mas então juntaCod(c1, c2) = c2 = juntaCod(d10k1, d20k2) = d10k100k2 = d101+k1+k2

pelo que se verifica P(juntaCod(c1,c2)) (c.q.d.)

Exemplo 8 (Deduções no cálculo proposicional):

A definição de uma lógica envolve usualmente três componentes: a definição da linguagem de suporte, a

atribuição de uma semântica (significado) às fórmulas dessa linguagem (procurando caracterizar aquelas

que, de acordo com essa semântica, devem ser encaradas como sendo "sempre verdadeiras" - normalmente

chamadas de fórmulas válidas, ou logicamente válidas) e a definição de mecanismos de dedução que nos

permitam deduzir (sintacticamente) fórmulas. Essas fórmulas são deduzidas a partir dos axiomas e de outras

fórmulas, as chamadas hipóteses da dedução, por aplicação de regras de dedução (ou regras de inferência).

Page 46: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

264

Quando uma fórmula se deduz sem hipóteses diz-se que é um teorema (e pretende-se, em geral que o

conjunto dos teoremas coincida com o conjunto das fórmulas válidas).

Ilustremos esses mecanismos de dedução, mostrando como normalmente eles são definidos nas lógicas

proposicionais (dando origem ao chamado "Cálculo Proposicional").

Considere-se, por exemplo, a linguagem proposicional L¬,⇒, introduzida em a) do exemplo 4, e

designe-se por For o conjunto das suas fórmulas.

Como axiomas pode considerar-se, por exemplo, qualquer fórmula das seguintes formas76 (onde ϕ1, ϕ2

e ϕ3 designam fórmulas quaisquer da linguagem, e onde se omitem os parênteses exteriores das fórmulas):

(CP1) ϕ1 ⇒ (ϕ2 ⇒ ϕ1) (isto é, com os parênteses exteriores, (ϕ1 ⇒ (ϕ2 ⇒ ϕ1)))

(CP2) (ϕ1 ⇒ (ϕ2 ⇒ ϕ3)) ⇒ ((ϕ1 ⇒ ϕ2) ⇒ (ϕ1 ⇒ ϕ3))

(CP3) (¬ϕ1 ⇒ ¬ϕ2) ⇒ (ϕ2 ⇒ ϕ1)

Como regras de dedução (primitivas) considera-se apenas, normalmente, o Modus Ponens:

MP:

ϕ1 , ϕ

1⇒ϕ

2

ϕ2

(e que se lê, recorde-se: "de ϕ1 e ϕ1 ⇒ ϕ2 sai / conclui-se ϕ2")

E diz-se que uma fórmula ψ se deduz de um conjunto de fórmulas Γ (ditas as hipóteses da dedução), o

que se expressa normalmente escrevendo Γ ψ, sse existe uma sequência de dedução de ψ a partir de Γ,

entendida como uma sequência de r (≥1) fórmulas ϕ1, ..., ϕ r tal que:

1) ϕr = ψ. e

2) cada ϕj (j=1,...,r) ou é um axioma, ou pertence a Γ, ou sai de fórmulas anteriores da sequência por MP.

Quando ∅ ψ diz-se que ψ é um teorema (e, para o denotar, escreve-se apenas ψ).

Ora, quer o conjunto das fórmulas que se deduz de um conjunto de hipóteses Γ, quer o conjunto dos

teoremas (da lógica em causa), podem ser definir à luz dos conceitos introduzidos.

De facto, sendo E = For, designando por Axi o conjunto de todos os axiomas e vendo o MP como uma

função MP: E2 / → E, dada por MP(ϕ1, ϕ1⇒ϕ2) = ϕ2, é fácil verificar (atendendo, nomeadamente, ao

último resultado provado):

• que {ψ: Γ ψ} não é mais do que o conjunto gerado a partir de (Axi ∪ Γ) por MP

• e que, em particular, o conjunto dos teoremas {ψ: ψ} não é mais do que o conjunto gerado a

partir do conjunto dos axiomas (Axi) por MP

E tal permite, nomeadamente, que se tire partido dos mecanismos de indução estrutural, para provar

resultados sobre tais conjuntos.

Por exemplo, para provar que todo o teorema da lógica satisfaz uma certa propriedade P (como ser

válido), basta-nos provar que:

i) Base da indução: Todo o axioma satisfaz P (todo o axioma é válido)

ii) Passo de indução: a regra MP preserva P (MP preserva a validade)

A título de curiosidade, refira-se que nas lógicas de crenças, de base proposicional (ver b) do exemplo

3), para além dos axiomas anteriores e da regra do Modus Ponens, considera-se em geral (pelo menos)

mais o axioma(-esquema)

76 Ditas axiomas-esquema, por representar o esquema (a forma) dos axiomas.

Page 47: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

265

Ba (ϕ1 ⇒ ϕ2) ⇒ (Ba ϕ1 ⇒ Ba ϕ2)

e a chamada regra da necessitação77:

ϕBaϕ

Note-se, por outro lado, que Baϕ ⇒ ϕ não é um teorema destas lógicas (pelo menos para algumas

fórmulas ϕ), o que está de acordo com o facto do agente a poder estar enganado nas suas crenças.

Retomando a nossa exposição 78 (após estes dois longos exemplos), pelo teorema 3 sabemos que

qualquer elemento y, de um conjunto definido indutivamente (a partir de um conjunto base S por um

conjunto ops de operações), pode ser obtido, a partir dos elementos da base, por aplicação das operações,

um número finito de vezes, através da construção de uma sequência (gerada a partir de S por ops)

terminando em y.

Mas, naturalmente, de acordo com a definição dada destas sequências, é possível construir várias

sequências de construção de um mesmo elemento y de um conjunto definido indutivamente. Em particular,

é possível incluir, numa sequência de construção de y, elementos que são irrelevantes para a construção

desse elemento.

Voltando a considerar o exemplo do conjunto Pares+ dos pares positivos (gerado a partir de {2} pela

operação λn.n+2), é imediato verificar que embora qualquer uma das seguintes sequências

2 , 4, 4, 6, 8, 6

2, 2, 4, 6

2, 4, 6

constitua uma sequência de construção de 6, somente a última é formada apenas pelos elementos que são

necessários para a geração do 6.

Podemos dizer que a sequência (2, 4, 6) constitui a forma reduzida79 de uma sequência de construção do

elemento 6 (a partir de {2} pela operação λn.n+2).

E podemos dizer, de uma forma geral, que uma sequência de construção de um elemento y de E (a partir

de um conjunto S por um conjunto ops de operações) é irredutível se qualquer uma sua subsequência

estrita não constitui uma sequência de construção de y (a partir de S por ops).

Numa sequência, irredutível, de construção de y, não só não há elementos repetidos, como nela só

ocorrem os elementos que são essenciais à "geração" de y (nessa sequência). Não se pode reduzir mais os

seus elementos, sem que ela deixe de ser uma sequência de construção de y. Podemos dizer que uma

77 Esta regra conduz a que o agente a acredite em todos os teoremas, sendo por isso alvo de críticas, uma vez que um agente

("real") poderá não acreditar (nem deixar de acreditar) em certos teoremas, por nem estar ciente ("aware") da sua existência.78 O que se segue não é essencial para o entendimento do que são conjuntos definidos indutivamente e do modo como nestes se

pode efectuar provas por indução estrutural.79 Ou canónica.

Page 48: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

266

sequência, irredutível, de construção de y é uma sequência de construção de y que está n(um)a sua forma

reduzida80.

Embora não se vá demonstrar formalmente, é fácil verificar intuitivamente que dada uma qualquer

sequência s de construção de um elemento y podemos sempre extrair dela uma sua subsequência que é uma

sequência irredutível de construção de y. Na observação (complementar) a seguir descreve-se um

procedimento que permite transformar uma sequência de construção de y numa sua forma reduzida.

Observação 7 (observação complementar - construção da forma reduzida de uma sequência de construção):

Seja ∅ ≠ S (⊆E) e ops um conjunto de operações em E.

A função "redução" (abaixo definida) recebe uma sequênca s, gerada a partir de S por ops, encarada

como uma sequência de construção do seu último elemento (que vamos designar por) Last(s), e retorna

uma sequência irredutível de construção de y = Last(s). Para tal ela invoca o o procedimento "reduz", o qual

tem três argumentos: o primeiro é uma sequência s, gerada a partir de S por ops, que se pretende reduzir, o

segundo é um natural menor ou igual que o comprimento de s, que representa a posição do elemento da

sequência s em análise, e o terceiro argumento é um conjunto de elementos de E que são fundamentais à

construção em causa (que se tem de garantir que ocorrem na sequência reduzida).

a) Tem-se (onde s é uma sequência gerada a partir de S por ops, e Last(s) é o último elemento de s):

redução( s ) = reduz( s , #s, {Last(s)} )

b) Por sua vez reduz( y1 ... yr , i , G ),

com s = y1 ... yr uma sequência gerada a partir de S por ops, 0 ≤ i ≤ r e G ⊆ E,

define-se como se segue:

1) Se i = 0, (o procedimento pára e) tem-se

reduz( y1 ... yr , i , G ) = y1 ... yr

(Caso contrário, 1 ≤ i ≤ r, e 81 :)

2) Se [i ≥ 1 e] yi ∉ G, então

(yi não é essencial à construção em causa, pelo que é retirado da sequência, e tem-se)

reduz( y1 ... yr , i, G ) = reduz( y1 ... yi-1 yi+1 ... yr , i-1 , G )

(Caso contrário, yi ∈ G, e:)

3) Se [i ≥ 1 e yi ∈ G e] existe 1≤j<i tal que yj = yi , então

80 Não se pode dizer que exista sempre uma única forma reduzida de uma sequência de construção de um elemento y. Por

exemplo, se S={a} e ops={f, g, h}, com f e g unárias e g binária, então a sequência a, f1(a) , f2(a), f1(a), g(f1(a),f2(a)) admite

duas formas reduzidas: a, f1(a) , f2(a), g(f1(a),f2(a)) e a, f2(a), f1(a), g(f1(a),f2(a)). Sob certas condições (a analisar à frente), a

forma reduzida de uma sequência de construção de um elemento y é necessariamente única, à parte eventuais permutações de

lugar de alguns dos seus elementos (como as que acabámos de ilustrar).81 No que se segue põe-se entre parênteses rectos as condições que não seria necessário descrever se estivessemos a definir

este procedimento numa linguagem de programação recorrendo a uma construção do tipo "if-then-else" (por corresponderem à

negação da condição do "if em causa").

Page 49: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

267

(tira-se repetidos, ficando só com a primeira ocorrência na sequência de yi, e tem-se82)

reduz( y1 ... yr , i, G ) = reduz( y1 ... yi-1 yi+1 ... yr , i-1 , G )

(Caso contrário, ∀1≤j<i yj ≠ yi e:)

4) Se [i ≥ 1 e yi ∈ G e ∀1≤j<i yj ≠ yi e] yi ∈ S, então:

reduz( y1 ... yr , i, G ) = reduz( y1 ... yr , i-1, G-{yi} )

5) Caso contrário [se i ≥ 1 e yi ∈ G e ∀1≤j<i yj ≠ yi e yi ∉ S], então

(por definição de sequência gerada a partir de S por ops)

yi = f(yi1, ..., yik), para valores 1 ≤ i1, ..., ik < i e alguma operação f (em ops) de aridade k

(pelo que, na sequência de geração em causa, y1 ... yr, os elementos yi1, ..., yik são essenciais à

geração do yi)

e tem-se:

reduz( y1 ... yr , i, G ) = reduz( y1 ... yr , i-1 , (G-{yi})∪{yi1, ..., yik} )

Embora tal não se vá aqui demonstrar, pode verificar-se que se s é uma sequência gerada a partir de S

por ops, então uma invocação

reduz( s , #s, {Last(s)} )

acaba por dar origem a uma invocação da forma

reduz( s1 , 0, ∅ )

a qual pára o processo, retornando a sequência s1, que será uma forma reduzida da sequência s, constituindo

uma sequência irredutível de construção de y = Last(s).

Para terminar esta observação, ilustremos o procedimento de redução definido.

Considere-se, por exemplo, as sequências (de pares positivos), geradas a partir de S={2} pela operação

f=λn.n+2, e vejamos como se obtém, por aplicação do procedimento anterior, uma forma reduzida da

seguinte sequência de construção de 6:

2, 4, 4, 6, 2, 8, 6

(isto é, a sequência assim y1 ... y7 obtida, por exemplo, como se segue:

y1=2∈S, y2=4=f(y1), y3=4=f(y1), y4=6=f(y3), y5=2∈S, y6=8=f(y4), y7=6=f(y3))

Pondo os elementos da sequência entre < e >, para facilitar a distinção dos outros argumentos da função

"reduz", tem-se:

redução( <2, 4, 4, 6, 2, 8, 6> )

=

reduz( <2, 4, 4, 6, 2, 8, 6> , 7 , {6} )

= (caso 3, da definição de "reduz")

reduz( <2, 4, 4, 6, 2, 8> , 6 , {6} )

= (caso 2)

82 Sem este passo, não se retiraria da sequência situações em que yi =f(yi1, ..., yik) (i.e. um elemento yi é obtido na sequência

como f(yi1, ..., yik)), para valores 1≤i1,..., ik<i e alguma operação f (em ops) de aridade k, e em que algum dos yi1, ..., yik é o

próprio yi (pense-se por exemplo numa situação, sem interesse, em que a função identidade era incluída no conjunto das

operações ops). Nesses casos, é fácil ver que para a obtenção do yi não é essencial a utilização de f(yi1, ..., yik) na sequência.

Page 50: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

268

reduz( <2, 4, 4, 6, 2> , 5 , {6} )

= (caso 2)

reduz( <2, 4, 4, 6> , 4 , {6} )

= (caso 5)

reduz( <2, 4, 4, 6> , 3 , {4} )

= (caso 3)

reduz( <2, 4, 6> , 2 , {4} )

= (caso 5)

reduz( <2, 4, 6> , 1 , {2} )

= (caso 4)

reduz( <2, 4, 6> , 0 , {} )

= (caso 1)

<2, 4, 6>

Considere-se agora que o nosso universo de trabalho é E = |N0 e que X é o conjunto gerado a partir do

conjunto singular {2}, pelas operações f = λn.(n+3) e g = λx,y.(x+y).

Neste caso, qualquer uma das duas sequências seguintes pode ser vista como uma sequência irredutível

de construção de 14 (a partir de S por f e g):

y1 = 2 (∈S), y2 = 5 = f(y1), y3 = 8 = f(y2), y4 = 11 = f(y3), y5 = 14 = f(y4)

y1 = 2 (∈S), y2 = 4 = g(y1,y1), y3 = 7 = f(y2), y4 = 14 = g(y3,y3)

Ora, num grande número de casos (senão, mesmo, na maior parte dos casos) em que geramos

conjuntos indutivamente, os elementos do conjunto são obtidos a partir da base, por aplicação das

operações, de uma "forma determinística": a forma reduzida de uma qualquer sequência de construção de um

elemento y de tais conjuntos é necessariamente única, à parte eventuais permutações de lugar de alguns dos

seus elementos. Dito de outra forma, nesses casos, dado um qualquer elemento desses conjuntos, podemos

ir decompondo esse elemento nos seus "elementos constituintes" (à custa dos quais ele foi gerado por

alguma operação), de forma única, sucessivamente, até se chegar a elementos da base.

A ideia é que se um elemento y (pertencente a um conjunto X assim gerado) pode ser obtido através de

uma operação f, como sendo83 y = f(x1, ..., xk), é porque tal elemento não pode ser "colocado em" X de

outro modo; o que significa que84:

83 Com x1, ..., xk, k elementos do conjunto X (supondo que a aridade de f é k), não necessariamente distintos.84 Repare-se que as condições a seguir implicam também, em particular, que não se pode ter y = f(x1, ..., xk), com um dos xi=y.

Para o ver basta notar que se y pertence a um conjunto gerado então existe uma sequência de construção de y: s = y1 ... yr (com

r>0 e yr=y); seja yk, com 1≤k≤r, o primeiro elemento nessa sequência que é igual a y; então, como por i), y não pertence à base,

e, como por ii), y não é igual a g(...), para g≠f; e como por iii), y só pode ser igual à imagem, por f, de um só tuplo (x1, ..., xk); se

y ocorresse nesse tuplo, obtinha-se uma contradição (para y=yk estar na sequência, teriam de ocorrer antes na sequência x1, ...,

xk, o que implicaria que y ocorreria antes de yk, contradizendo o facto de yk ser o primeiro elemento na sequência igual a y).

Este resultado pode igualmente ser obtido como consequência do teorema 4-a), à frente.

Page 51: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

269

i)• ele não pertence à base;

ii)• ele não pode ser obtido à custa de outra operação g (i.e. não existem elementos em X tal que g

aplicado a esses elementos retorna y);

iii)• e ele não pode ser obtido à custa de mesma operação f de outra maneira (i.e. não existe um tuplo

(y1,...,yk)∈Xk, tal que (y1,...,yk) ≠ (x1, ..., xk) e y = f(x1, ..., xk)).

Tal conduz-nos à seguinte definição:

Definição 6 :

Seja ∅ ≠ S (⊆ E) e ops um conjunto de operações em E e seja X = Sgops (i.e. X é o conjunto gerado a

partir de S pelas operações em ops).

Quando:

i) qualquer que seja a operação f em ops, o contradomínio da "restrição de f a X"85 é disjunto da base S

ii) quaisquer que sejam as operações distintas em ops, f e g, o contradomínio da "restrição de f a X" é

disjunto do contradomínio da "restrição de g a X"

iii) qualquer que seja a operação f em ops, a "restrição de f a X" é injectiva86

dizemos que X é livremente gerado a partir de S por (meio das operações em) ops.

Exemplo 9 (Conjuntos livremente gerados):

O conjunto dos naturais pode ser encarado como o conjunto livremente gerado a partir de {0} pela função

sucessor.

Dos exemplos apresentados de conjuntos gerados, são livremente gerados o conjunto Pares+ dos pares

positivos, bem como os referidos nos exemplos 3, 4, 5 e 6.

Por sua vez, o conjunto dos códigos, apresentado no exemplo 7, não é livremente gerado, pois a

função juntaCod não é injectiva (mesmo quando se considera apenas a sua restrição ao conjunto cod dos

códigos: por exemplo, juntaCod(70,80) = juntaCod(70,90) = 7000).

E o conjunto {ψ: ψ}, apresentado no exemplo 8, não é igualmente livremente gerado. Para o ver,

basta atender, por exemplo, a que:

• pode provar-se que p1⇒p1 é um teorema da lógica definida;

• (p1⇒p1)⇒(p1⇒(p1⇒p1)) é um axioma (e portanto também um teorema), pois é uma instância do

axioma-esquema (CP1);

• MP(p1⇒p1 , (p1⇒p1)⇒(p1⇒(p1⇒p1)) = (p1⇒(p1⇒p1);

• e (p1⇒(p1⇒p1)) é igualmente um axioma (também é uma instância de (CP1))

pelo que falha a propriedade i) da definição de conjunto livremente gerado (definição 6 anterior).

85 Isto é, a função f|X definida como se indicou na observação 3-a). Note-se que, como X é indutivo wrt(S;ops), o contradomínio

de f|X está contido em X. Realce-se ainda, uma vez mais, que muitas vezes se usa mesmo f (em vez de f|X) para denotar a

"restrição de f a X" (simplificação notacional que também será usada no que se segue).86 Embora o conceito de injectividade tenha sido definido apenas para aplicações, ele estende-se facilmente a quaisquer

funções parciais (veja-se a nota de rodapé 51 do capítulo 4).

Page 52: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

270

Quando consideramos conjuntos livremente gerados (a partir de S por ops), a forma como os elementos

do conjunto são gerados induz uma relação bem fundada "natural" no conjunto,

p , verificando-se mesmo

que o princípio de indução estrutural é equivalente ao princípio de indução bem fundada que é gerado por

essa relação

p (como se referiu no início desta secção e se mostrará a seguir).

A ideia intuitiva é que x

p y sse o elemento x é essencial à construção de y. Mais precisamente:

Definição 7 :

Seja X o conjunto livremente gerado a partir de ∅≠S (⊆E) por um conjunto ops de operações em E.

Sobre X define-se a relação binária

p como se segue (onde x e y designam quaisquer elementos de X):

x

p y

sse

existe alguma operação f (em ops), de aridade k (≥1), e algum tuplo (z1,...,zk)∈Xk,

tal que y = f(z1,...,zk) e x é algum dos z's (isto é, existe 1≤i≤k tal que x = zi)

Lema :

Sejam X, S, ops e

p tal como na definição anterior. Então, quaisquer que sejam os elementos a e b, de X:

se a

p b, então

em qualquer sequência gerada a partir de S por ops, sempre que b ocorra, terá de ocorrer antes a.

Demonstração :

Se a

p b, então existe f em ops e (z1,...,zk)∈Xk, tal que b = f(z1,...,zk) e a é algum dos z's.

Pelo teorema 3 (e observação 6-b)), todos os elementos, de uma qualquer sequência gerada a partir de S por

ops, pertencem a X (= Sgops).

Seja s = y1 ... yr uma sequência gerada a partir de S por ops e suponha-se que b ocorre em s. Seja 1≤i≤r

tal que b = yi.

Ora:

• por i) da definição 6, b = yi não pertence à base S (pois b = f(z1,...,zk) com (z1,...,zk)∈Xk)

• por ii) da definição 6, b = yi não é igual a g(yi1,...,yin), para g≠f e 1≤i1,...,in≤i (com g em ops e n a

aridade de g)

• e, por iii) da definição 6, b = yi só pode ser igual à imagem, por f, de um só k-tuplo de elementos de X

(que terá então de ser (z1,...,zk))

Logo, para b = yi estar na sequência, terão então de ocorrer antes na sequência z1, ..., zk, pelo que a terá de

ocorrer antes de b = yi na sequência.

Teorema 4 :

Sejam X, S, ops e

p tal como na definição 7 anterior. Então:

a)

p é uma relação bem fundada.

b) Os elementos minimais de X (em relação a

p ) são os elementos da base S.

Page 53: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

271

Demonstração :

a) Suponha-se por absurdo que existia uma cadeia infinita descendente ...

p an

p ...

p a1

p a0.

Seja a0 ∈ X (= Sgops) qualquer. Pelo teorema 3, existe uma sequência de construção de a0:

s = y1 ... yr (com r>0 e yr=a0)

Considere-se uma qualquer cadeia descendente da forma ...

p a1

p a0. Então, pelo lema, a1 terá de ocorrer

antes de yr=a0 em s, a2 terá de ocorrer antes de a1 em s, e assim sucessivamente.

Logo, qualquer cadeia descendente da forma ...

p a1

p a0 não poderá ter mais do que r elementos, pelo que

não poderá ser infinita.

b) Se y∈S, então (por definição de X=Sgops) y∈X, e, por i) da definição 6, não existe x∈X tal que x

p y.

Logo y é um elemento minimal de X (em relação a

p ).

Que não existe qualquer outro elemento minimal de X (para além dos elementos em S) pode ver-se

como se segue:

• Seja y∈X e y∉S;

• se y∈X(=Sgops), então, pelo teorema 3, existe uma sequência de construção de y (a partir de S por

ops) s = y1 ... yr (com r>0 e yr=y);

• para y estar na sequência ou y pertence à base S ou y=f(yi1,...,yik), com 1≤i1,...,ik≤r, f em ops e k

a aridade de f (os yi1,...,yik não têm de ser todos distintos, mas tal é irrelevante para o que se segue);

• todo o elemento da sequência s pertence a X (pelo teorema 3 e observação 6-b)), pelo que yi1,...,yik

pertencem a X;

• assim, por exemplo, yi1∈X e yi1

p y;

• Logo y não é um elemento minimal de X (em relação a

p ).

Observação 8 :

Como decorre do resultado anterior,

p é irreflexiva. Mas

p não é nem total, nem transitiva. Logo

p não

é uma boa ordem, nem mesmo uma ordem parcial.

Finalmente, pode verificar-se que o princípio da indução estrutural "não é mais do que" o princípio de

indução bem fundada que é gerado pela relação

p nestes conjuntos (no sentido de que são princípios

equivalentes). Embora o resultado a seguir seja de interesse, a sua demonstração poderá ser omitida pelos

menos interessados em demonstrações (pois, embora não envolva nenhuma dificuldade de maior, também

não traz nada de essencialmente novo sobre este tópico).

Teorema 5 :

Sejam X, S, ops e

p tal como na definição 7 e P(n) uma propriedade definida em X.

A afirmação

a) qualquer que seja o elemento y de X, não minimal, ∀z∈X (z

p y ⇒ P(z)) ⇒ P(y)

é equivalente à afirmação:

b) qualquer que seja a operação f em ops (com k a aridade de f),

Page 54: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

272

quaisquer que sejam os elementos x1,...,xk de X: P(x1) ∧ ... ∧ P(xk) ∧ y = f(x1,...,xk) ⇒ P(y)

(i.e. a restrição de f a X preserva a propriedade P)

Demonstração :

⇑: Suponha-se que se verifica b).

Seja y qualquer um elemento não minimal de X e suponha-se que

(*) "verifica-se P(z), para todo o z

p y".

Quer-se provar que então se verifica P(y).

Como y∈X(=Sgops), pelo teorema 3, existe uma sequência de construção de y (a partir de S por ops)

s = y1 ... yr (com r>0 e yr=y);

Como y é um elemento não minimal de X, por b) do teorema 4 anterior, y∉S.

Mas, se y pertence a uma sequência gerada a partir de S por ops, e y∉S, então (por definição daquelas

sequências), y=yr =f(yi1, ..., yik), para valores 1 ≤ i1, ..., ik < r e alguma operação f (em ops) de aridade

k. E (tal como na demonstração do teorema anterior, tem-se também que) yi1,...,yik pertencem a X.

Logo yi1

p y e ... e yik

p y.

Assim, por (*), tem-se P(yi1) e ... P(yik). Mas então (como y=f(yi1,...,yik)), por b) tem-se P(y) (c.q.d.)

⇓: Suponha-se que se verifica a).

Seja f uma qualquer operação em ops (e k a sua aridade) e sejam x1,...,xk quaisquer elementos de X tais

que:

(**) "verifica-se P(x1) e ... e P(xk) e f está definida em (x1,...,xk)"

Quer-se provar que se verifica P(f(x1,...,xk)).

Seja y=f(x1,...,xk). Seja z um qualquer elemento de X, tal que z

p y. Então (atendendo às definições 7

e 6, pode verificar-se facilmente que) z=x1 ou ... ou z=xk.

Assim, por (**), verifica-se P(z) para todo o z∈X tal que z

p y. Logo, por a), tem-se P(y) (c.q.d.)

Corolário :

Sejam X, S, ops e

p tal como na definição 7. Então:

O princípio da indução bem fundada definido a partir de

p :

Seja P(x) uma propriedade definida em todo o elemento x de X. Se

i) todos os elementos minimais de X satisfazem P, e

ii) qualquer que seja o elemento y (de X), não minimal, ∀z∈X (z

p y ⇒ P(z)) ⇒ P(y)

então ∀x∈X P(x)

é equivalente ao princípio de indução estrutural I:

Seja P(x) uma propriedade definida em todo o elemento x de X. Se

i) verifica-se P(x) para x∈S, e

ii) qualquer que seja a operação f em ops (com k a aridade de f),

quaisquer que sejam os elementos x1,...,xk de X: P(x1) ∧ ... ∧ P(xk) ∧ y = f(x1,...,xk) ⇒ P(y)

então ∀x∈X P(x)

Page 55: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

273

Demonstração :

Sai do teorema 5 anterior e do teorema 4-b).

Os resultados anteriores (teoremas 4 e 5) já não são verdadeiros, se o conjunto X, gerado a partir de S

por ops, não for livremente gerado. No entanto, tal não significa que não se possam definir relações bem

fundadas sobre quaisquer conjuntos gerados, a partir de S por ops.

Na observação complementar a seguir mostraremos como, sobre qualquer conjunto X gerado a partir de

S por ops, se pode definir uma relação bem fundada, que estende87 a relação bem fundada anterior quando X

é livremente gerado. No entanto, o princípio de indução bem fundada, que tal relação gera, já nem sempre é

equivalente ao princípio de indução estrutural.

Observação 9 (observação complementar):

Seja X, gerado a partir de S por ops, e procure-se definir sobre X uma relação bem fundada

p sobre X.

Uma alternativa, que surge natural, será definir (onde x e y designam elementos quaisquer de X)

x

p y

sse88

x antecede y numa sequência de construção de y

procurando captar a ideia intuitiva de que x é, de algum modo, necessário à construção de y.

No entanto, esta alternativa não funciona, pois se y1, ..., yr, com yr = y, é uma sequência de construção

de y, então y1, ..., yr, y também é uma sequência de construção de y, pelo que se obteria y

p y, e a relação

p definida não seria bem fundada !

O problema anterior parece ser de fácil resolução, pois poderíamos considerar apenas sequências de

construção sem repetições (de elementos), uma vez que é intuitivamente fácil de verificar que a partir de

uma qualquer sequência de construção de y se pode obter uma sua subsequência, sem repetições, que ainda é

uma sequência de construção de y.

Mas tal ainda não nos resolve o nosso problema, como é fácil de mostrar porquê. Suponha-se que x e y

são dois elementos (distintos) que pertencem à base. Então, de acordo com a definição de sequência de

construção, (x, y) seria uma sequência de construção de y (sem repetições) e (y, x) seria uma sequência de

construção de x (sem repetições), pelo que se teria quer x

p y, quer y

p x, e a relação

p continuaria a não

ser bem fundada (uma vez que seria possível construir uma cadeia infinita descendente) !

A razão destes "falhanços" deriva de não estarmos a conseguir captar a ideia intuitiva de que "um

elemento x é (de algum modo) necessário à construção de y".

Ora, podemos dizer que um elemento x é, de algum modo, necessário à construção de um elemento y

se x antecede y numa sequência de construção de y que é irredutível, e dizer, em consequência, que x

p y

sse x antecede y numa sequência irredutível de construção de y

87 Diz-se que uma relação R1, num conjunto, estende uma relação R2, sobre o mesmo conjunto, sse R2 ⊆ R1.88 Note-se que o que se segue é equivalente a dizer que existem sequências geradas, s1 e s2, terminando respectivamente, em x

e y, tais que s1 é uma parte inicial própria de s2.

Page 56: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

274

Observe-se, contudo, que, como já vimos, o facto de s ser uma sequência irredutível de construção de y

não significa, à priori, que não possa existir uma outra sequência irredutível de construção de y, com

menor comprimento que s 89: tal dependerá de S e ops. (Por exemplo, tal não será possível se X for

livremente gerado; nesse caso, uma sequência irredutível de construção de y é necessariamente única, à

parte eventuais permutações de lugar de alguns dos seus elementos.)

Este facto dificulta a eventual prova de que a relação

p , definida do modo indicado, é bem fundada (pelo

menos, uma demonstração do resultado a seguir, do tipo da efectuada, parece não funcionar). Como o

objectivo aqui é apenas o de mostrar que se pode sempre definir uma relação bem fundada (de algum modo

natural) sobre X, em vez de analisarmos, com maior profundidade, se a relação

p anterior serviria,

optámos por definir uma outra relação

p , para a qual é fácil de estabelecer o resultado desejado.

Defina-se, sobre X, a relação binária:

x

p y

sse x antecede y numa sequência mínima de construção de y (a partir de S por ops).

onde uma sequência mínima de construção de y∈E (a partir de S por ops) é uma sequência s de construção

de y tal que qualquer sequência de construção de y tem comprimento maior ou igual ao de s.

Pode então provar-se que

p é uma relação bem fundada, como se segue:

Sejam x, u e z quaisquer elementos de X tais que x

p u

p z. Como u

p z existirá uma sequência

mínima de construção de z à qual u pertence. Designemos por sz tal sequência. Então ter-se-á sz =

y1,...,yr e z=yr e u=yi para algum 1≤i<r. Analogamente designemos por su uma sequência mínima

de construção de u à qual x pertence, cuja existência é garantida por x

p u. Terá de ter-se #su <

#sz(=r) pois, caso contrário, y1,...,yi seria uma sequência de construção de u de comprimento

i<r≤#sz, pelo que su não poderia ser uma sequência mínima de construção de u.

Mas então é imediato que não poderá existir uma cadeia infinita descendente (c.q.d.)

É imediato verificar que os elementos minimais de X (em relação a

p ) são os elementos da base S.

Para terminar este tópico, refira-se, ainda, que, para além de podermos definir relações bem fundadas

directamente sobre um conjunto X definido indutivamente, podemos também definir várias relações bem

fundadas e ordens, "naturais", sobre o conjunto das sequências geradas que lhe está associado90.

Mais ainda, tais relações bem fundadas geram princípios de indução alternativos ao princípio de indução

estrutural, que também podem ser usados para91 provar que todo o elemento de um conjunto definido

indutivamente satisfaz uma propriedade P, como se explicita na obervação a seguir.

89 Embora, naturalmente, tal sequência s1 não possa ser uma subsequência de s.90 Sequências que são sempre não vazias (ao contrário do que se passava nos exemplos 3, 4 e 5, da última secção, em que se

considerou conjuntos de sequências que incluiam a sequência vazia).91 E nalguns casos (não muitos) com vantagens, por serem (para esses casos) de mais fácil aplicação que o princípio da indução

estrutural. Por exemplo, a demonstração de que as lógicas proposicionais satisfazem o chamada "metateorema da dedução" é

normalmente feita por indução no comprimento das sequências de dedução.

Page 57: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

275

Observação 10 (Indução sobre o comprimento das sequências geradas)

Seja X = Sgops e suponha-se que se pretende provar que todo o elemento x de X verifica uma propriedade P.

Seja SEQ(S,ops) o conjunto de todas as sequências geradas a partir de S pelo conjunto de operações ops.

Designando por Last(s) o último elemento de uma tal sequência, tem-se que

{Last(s): s ∈ SEQ(S,ops)} = S ops

Logo, pelo teorema 3, demonstrar que

(*) ∀x∈X P(x)

é equivalente a provar que

(**) ∀s∈SEQ(S,ops) Q(s), com Q(s) = P(Last(s))

Assim, tendo sido definida uma relação bem fundada sobre SEQ(S,ops), podemos usar o princípio da

indução bem fundada para provar (**), e daí concluir (*).

Ilustremos o que se acabou de afirmar, definindo duas relações bem fundadas, naturais, sobre

SEQ(S,ops), e observando o princípio de indução que elas geram.

Exemplo 1: Seja

p a relação binária sobre SEQ(S,ops) assim definida (onde s1, s2 ∈ SEQ(S,ops)):

s1

p s2 sse #s1 = #s2 - 1

É imediato que se trata de uma relação bem fundada.

Pelo princípio da indução bem fundada (e o que vimos acima) teremos provado (*), se provarmos que:

Base:

verifica-se Q(s), para s de comprimento 1 (i.e. verifica-se P(x) para x∈S)

Passo de indução:

qualquer que seja n≥1 e qualquer que seja a sequência (gerada) s, de comprimento n+1,

se se verifica Q(s1), para toda a sequência s1 de comprimento n, então verifica-se Q(s)

Exemplo 2: Seja

p a relação binária sobre SEQ(S,ops) assim definida (onde s1, s2 ∈ SEQ(S,ops)):

s1

p s2 sse #s1 < #s2

É imediato que se trata de uma relação bem fundada (e mesmo de uma boa ordem).

Pelo princípio da indução bem fundada (e o que vimos acima) teremos provado (*), se provarmos que:

Base:

verifica-se Q(s), para s de comprimento 1 (i.e. verifica-se P(x) para x∈S)

Passo de indução:

qualquer que seja n≥1 e qualquer que seja a sequência (gerada) s, de comprimento n+1,

se se verifica Q(s1), para toda a sequência s1 de comprimento menor ou igual a n,

então verifica-se Q(s)

Exercícios :

1. Considere o conjunto X definido indutivamente como se segue:

i) 2 e 4 pertencem a X;

ii) se x e y pertencem a X então xy (x vezes y) também pertence a X.

Demonstre por indução estrutural que se tem (onde k designa uma variável inteira):

∀x∈X∃k≥1x = 2k

Page 58: base da indução passo de indução - cee.uma.ptcee.uma.pt/edu/ed/textosp/Texto7.pdf · indutivamente e veremos a forma de demonstração por indução de propriedades definidas

276

2. Demonstre por indução estrutural que todos os múltiplos de 6 são também múltiplos de 3.

3. Considere o conjunto A de inteiros definido indutivamente como se segue:

i) 4 e 6 pertencem a A;

ii) Se x e y pertencem a A, então x+y também pertence a A.

a) Mostre que 14 pertence a A.

b) Demonstre, por indução (estrutural), que se tem (onde k designa uma variável inteira):

∀x∈A ∃k≥1 x = 2k

4. Considere o conjunto A de inteiros definido indutivamente como se segue:

i) 3 e 6 pertencem a A;

ii) Se

x e

y pertencem a A, então

(x + y)2 também pertence a A.

a) Mostre que 81 e 144 pertencem a A.

b) Demonstre, por indução (estrutural), que se tem (onde k designa uma variável inteira):

∀x∈A ∃k≥0 x = 3k

5. Considere uma hipotética linguagem simbólica L, definida como se segue:

O alfabeto de L é formado pelos caracteres “a” e “b”. O conjunto das frases de L define-se

indutivamente como se segue:

i) Uma seqência formada por um só carácter (“a” ou “b”) é uma frase de L;

ii) Se w é uma frase de L, então awb também o é.

a) Mostre que aabbb é uma frase de L.

b) Usando cn (com n≥0) para designar uma sequência formada por n caracteres todos iguais a c (e igual

à sequência vazia, se n=0), demonstre, por indução (estrutural) que se tem (onde n e k designam

variáveis inteiras):

∀w frase de L ∃n≥1 ∃k≥1 (w = anbk ∧ |n-k| = 1)