Ir para o conteúdo principal

Indução Matemática: Provando Propriedades para Todos os Naturais

Autor
Francisco Bustamante
Um químico trabalhando com Ciência de Dados e Programação em Python.
Tabela de conteúdos
Do Caso Base ao Infinito - Este artigo faz parte de uma série de artigos.
Parte 2: Esse Artigo

Como você provaria que \(1 + 2 + 3 + \cdots + n = \dfrac{n(n+1)}{2}\) para todo número natural \(n\)? Verificar caso a caso é impossível: os naturais são infinitos. Precisamos de um argumento que cubra todos de uma vez.

Essa é a função do Princípio de Indução Matemática — uma das ferramentas de prova mais elegantes da matemática.

Por que a indução matemática?
#

A indução aparece sempre que queremos afirmar algo sobre todos os números naturais ao mesmo tempo. Em matemática discreta e ciência da computação, isso acontece com frequência:

  • Fórmulas de somas e produtos — calcular a soma de uma progressão, o produto de uma sequência ou o número de subconjuntos de um conjunto de \(n\) elementos exige um argumento que cubra todo \(n \geq 1\).
  • Análise de algoritmos — complexidade de laços aninhados, somas de séries geométricas e outras fórmulas que aparecem na análise de desempenho são tipicamente provadas por indução.
  • Corretude de funções recursivas — uma função recursiva resolve o caso base diretamente e delega o restante a uma chamada menor; provar que ela retorna o resultado correto para todo \(n\) é, estruturalmente, uma prova por indução.
  • Invariantes de laço — demonstrar que uma propriedade vale após cada iteração de um for ou while também segue a lógica da indução: base (antes da primeira iteração) e passo (de \(k\) para \(k+1\)).
  • Teoria das linguagens formais — propriedades de gramáticas e autômatos são frequentemente demonstradas por indução estrutural, uma generalização do PIM para estruturas recursivas.

Este artigo apresenta o método e seus exemplos fundamentais. As conexões com programação aparecem ao longo do texto.

A Intuição: Dominós e Lâmpadas
#

Imagine uma fileira infinita de dominós em pé. Se você sabe que:

  1. O primeiro dominó cai, e
  2. Sempre que um dominó cai, o próximo também cai,

então todos os dominós vão cair — mesmo que haja infinitos deles.

Outra imagem: uma fileira infinita de lâmpadas conectadas em série. Acender a primeira lâmpada acende a seguinte, que acende a próxima, e assim por diante. A garantia de que a primeira acende, combinada com a garantia de que cada lâmpada acende a próxima, é suficiente para que todas acendam.

A cadeia de implicações resultante se propaga indefinidamente:

flowchart LR
  P1["P(1)"] --> P2["P(2)"]
  P2 --> P3["P(3)"]
  P3 --> P4["P(4)"]
  P4 --> PN["..."]

Isso é exatamente a lógica da indução matemática.

O Princípio de Indução Matemática
#

Princípio de Indução Matemática (PIM)

Seja \(P(n)\) uma propriedade sobre \(n \in \mathbb{N}\). Se:

  1. Base: \(P(1)\) é verdadeira
  2. Hipótese indutiva (HI): assume-se que \(P(k)\) é verdadeira para um \(k \geq 1\) fixado arbitrariamente
  3. Passo indutivo: usando a HI, prova-se que \(P(k+1)\) é verdadeira

Então \(P(n)\) é verdadeira para todo \(n \in \mathbb{N}\).

O PIM é uma técnica central para provar resultados envolvendo números naturais: somas, desigualdades, divisibilidade e propriedades recorrentes.

Estrutura de uma Prova por Indução
#

Toda prova por indução segue a mesma estrutura em três etapas:

Etapa O que fazer
1. Base de indução Verificar que \(P(1)\) é verdadeira
2. Hipótese indutiva (HI) Assumir que \(P(k)\) é verdadeira para um \(k \geq 1\) fixado arbitrariamente
3. Passo indutivo Provar \(P(k+1)\) usando a HI

Depois de verificar a base e executar o passo indutivo, a conclusão segue automaticamente: \(P(n)\) vale para todo \(n \in \mathbb{N}\).

Exemplos Resolvidos
#

Soma dos primeiros \(n\) naturais
#

$$P(n):\ 1 + 2 + \cdots + n = \frac{n(n+1)}{2}$$

Base (\(n = 1\)): \(1 = \dfrac{1 \cdot 2}{2} = 1\) ✓

HI: \(1 + 2 + \cdots + k = \dfrac{k(k+1)}{2}\)

Passo indutivo (\(n = k+1\)):

$$1 + 2 + \cdots + k + (k+1) \stackrel{\text{HI}}{=} \frac{k(k+1)}{2} + (k+1) = (k+1)\left(\frac{k}{2} + 1\right) = \frac{(k+1)(k+2)}{2}$$

Portanto, \(1 + 2 + \cdots + n = \dfrac{n(n+1)}{2}\), que é o que queríamos demonstrar. \(\blacksquare\)

Aplicação: indução e funções recursivas

A prova acima tem uma correspondência direta com a implementação recursiva da soma em Python:

def soma(n):
    if n == 1:
        return 1
    return soma(n - 1) + n

Os três passos da indução mapeiam exatamente para os três elementos da função:

Indução Código
Base: \(P(1)\) é verdadeira if n == 1: return 1
HI: supõe-se que soma(n-1) retorna \(\frac{(n-1)n}{2}\) chamada recursiva soma(n - 1)
Passo: soma(n-1) + n produz \(\frac{n(n+1)}{2}\) return soma(n - 1) + n

Provar a fórmula por indução é provar que a função recursiva está correta para todo \(n \in \mathbb{N}\). Toda função recursiva bem formada carrega implicitamente uma prova por indução. Há ainda uma consequência prática: a função recursiva e o laço for equivalente executam em \(O(n)\) — o tempo cresce com \(n\). A fórmula fechada \(\frac{n(n+1)}{2}\) executa em \(O(1)\), tempo constante. A prova por indução é a garantia matemática de que essa substituição é segura: os dois lados são equivalentes para todo \(n\), sem exceção. No artigo sobre relações de recorrência, veremos como essa mesma função gera a equação \(S(n) = S(n-1) + n\) e como resolvê-la formalmente para obter a fórmula fechada.

Soma dos primeiros \(n\) números ímpares
#

$$P(n):\ 1 + 3 + 5 + \cdots + (2n - 1) = n^2$$

Essa fórmula tem uma beleza geométrica: a soma dos \(n\) primeiros ímpares é sempre um quadrado perfeito.

Base (\(n = 1\)): \(1 = 1^2\) ✓

HI: \(1 + 3 + \cdots + (2k - 1) = k^2\)

Passo indutivo (\(n = k+1\)):

$$1 + 3 + \cdots + (2k-1) + (2(k+1)-1) \stackrel{\text{HI}}{=} k^2 + 2k + 1 = (k+1)^2$$

Portanto, \(1 + 3 + \cdots + (2n-1) = n^2\), que é o que queríamos demonstrar. \(\blacksquare\)

Divisibilidade
#

$$P(n):\ 8 \mid (3^{2n} - 1)$$

Base (\(n = 1\)): \(3^2 - 1 = 8\), e \(8 \mid 8\) ✓

HI: \(8 \mid (3^{2k} - 1)\), isto é, \(3^{2k} - 1 = 8m\) para algum \(m \in \mathbb{Z}\)

Passo indutivo (\(n = k+1\)):

Queremos mostrar que \(8 \mid (3^{2(k+1)} - 1)\). Primeiro, abrimos o expoente:

$$3^{2(k+1)} - 1 = 3^{2k+2} - 1 = 3^2 \cdot 3^{2k} - 1 = 9 \cdot 3^{2k} - 1$$

Agora reescrevemos para isolar \(3^{2k} - 1\), que aparece na HI:

$$9 \cdot 3^{2k} - 1 = 9 \cdot 3^{2k} - 9 + 8 = 9(3^{2k} - 1) + 8$$

Pela HI, \(3^{2k} - 1 = 8m\) para algum \(m \in \mathbb{Z}\), logo:

$$9(3^{2k} - 1) + 8 = 9 \cdot 8m + 8 = 8(9m + 1)$$

Portanto, \(8 \mid (3^{2n} - 1)\), que é o que queríamos demonstrar. \(\blacksquare\)

Aplicação: invariantes de laço

A mesma lógica da indução garante a corretude de laços iterativos. Considere o for abaixo, que computa a soma acumulada:

total = 0
for k in range(1, n + 1):
    total += k
# ao final: total == n*(n+1)//2

Defina o invariante \(P(k)\): “após a \(k\)-ésima iteração, total == k*(k+1)//2”. Então:

  • Base (\(k = 0\), antes do laço): total = 0 e \(0 \cdot 1 / 2 = 0\) ✓
  • Passo (de \(k\) para \(k+1\)): se total == k*(k+1)//2 antes da iteração \(k+1\), então após total += k+1 temos \(\frac{k(k+1)}{2} + (k+1) = \frac{(k+1)(k+2)}{2}\) ✓

Ao fim do laço, \(k = n\), portanto total == n*(n+1)//2. Esse argumento é indução disfarçada — e é exatamente o mecanismo que verificadores formais (como os baseados em Lógica de Hoare) usam para provar corretude de programas iterativos.

PIM Generalizado: Base em \(n_0 \neq 1\)
#

Nem toda propriedade vale a partir de \(n = 1\). Quando queremos provar \(P(n)\) para todo \(n \geq n_0\), usamos a versão generalizada:

PIM Generalizado

Para provar \(P(n)\) para todo \(n \geq n_0\):

  1. Base: verificar que \(P(n_0)\) é verdadeira
  2. Hipótese indutiva (HI): assumir que \(P(k)\) é verdadeira para um \(k \geq n_0\) fixado arbitrariamente
  3. Passo indutivo: usando a HI, provar que \(P(k+1)\) é verdadeira

Quando \(n_0 = 1\), obtemos o PIM usual como caso particular.

Exemplo: \(n^2 > 3n\) para \(n \geq 4\)
#

Por que não começar de \(n=1\)?

A propriedade \(n^2 > 3n\) não vale para \(n = 1, 2, 3\):

  • \(1^2 = 1 \not> 3\)
  • \(2^2 = 4 \not> 6\)
  • \(3^2 = 9 \not> 9\)

A indução só pode começar em \(n_0 = 4\).

Base (\(n = 4\)): \(16 > 12\) ✓

HI: \(k^2 > 3k\) para algum \(k \geq 4\)

Passo indutivo (\(n = k+1\)):

$$(k+1)^2 = k^2 + 2k + 1 \stackrel{\text{HI}}{>} 3k + 2k + 1 = 5k + 1 > 3(k+1) = 3k + 3$$

(válido pois \(5k + 1 > 3k + 3 \iff 2k > 2 \iff k > 1\), que é verdade para \(k \geq 4\))

Portanto, \(n^2 > 3n\), que é o que queríamos demonstrar. \(\blacksquare\)

Exercícios
#

Pratique aplicando a estrutura das três etapas vista acima. As demonstrações estão disponíveis para conferência após sua tentativa.

Exercício 1 — Soma de potências de 2

Prove por indução que \(1 + 2 + 4 + \cdots + 2^{n-1} = 2^n - 1\) para todo \(n \in \mathbb{N}\).

Demonstração:

Base (\(n=1\)): \(1 = 2^1 - 1\) ✓

HI: \(1 + 2 + \cdots + 2^{k-1} = 2^k - 1\)

Passo indutivo:

$$1 + 2 + \cdots + 2^{k-1} + 2^k \overset{\text{HI}}{=} (2^k - 1) + 2^k = 2 \cdot 2^k - 1 = 2^{k+1} - 1$$

Portanto, \(1 + 2 + \cdots + 2^{n-1} = 2^n - 1\), que é o que queríamos demonstrar. \(\blacksquare\)

Exercício 2 — Soma dos quadrados

Prove que \(1^2 + 2^2 + \cdots + n^2 = \dfrac{n(n+1)(2n+1)}{6}\) para todo \(n \in \mathbb{N}\).

Demonstração:

Base (\(n=1\)): \(1 = \dfrac{1 \cdot 2 \cdot 3}{6} = 1\) ✓

HI: \(1^2 + 2^2 + \cdots + k^2 = \dfrac{k(k+1)(2k+1)}{6}\)

Passo indutivo:

$$1^2 + \cdots + k^2 + (k+1)^2 \overset{\text{HI}}{=} \frac{k(k+1)(2k+1)}{6} + (k+1)^2 = (k+1)\!\left(\frac{k(2k+1)}{6} + (k+1)\right)$$$$= (k+1) \cdot \frac{2k^2+7k+6}{6} = \frac{(k+1)(k+2)(2k+3)}{6}$$

Portanto, \(1^2 + 2^2 + \cdots + n^2 = \dfrac{n(n+1)(2n+1)}{6}\), que é o que queríamos demonstrar. \(\blacksquare\)

Exercício 3 — Soma de produtos consecutivos

Prove que \(\displaystyle\sum_{i=1}^{n} i(i+1) = \dfrac{n(n+1)(n+2)}{3}\) para todo \(n \in \mathbb{N}\).

Demonstração:

Base (\(n=1\)): \(1 \cdot 2 = 2\) e \(\dfrac{1 \cdot 2 \cdot 3}{3} = 2\) ✓

HI: \(\displaystyle\sum_{i=1}^{k} i(i+1) = \dfrac{k(k+1)(k+2)}{3}\)

Passo indutivo:

$$\sum_{i=1}^{k+1} i(i+1) \overset{\text{HI}}{=} \frac{k(k+1)(k+2)}{3} + (k+1)(k+2) = (k+1)(k+2)\!\left(\frac{k}{3}+1\right) = \frac{(k+1)(k+2)(k+3)}{3}$$

Portanto, \(\displaystyle\sum_{i=1}^{n} i(i+1) = \dfrac{n(n+1)(n+2)}{3}\), que é o que queríamos demonstrar. \(\blacksquare\)

Exercício 4 — Progressão aritmética

Prove que \(2 + 5 + 8 + \cdots + (3n-1) = \dfrac{n(1+3n)}{2}\) para todo \(n \in \mathbb{N}\).

Demonstração:

Base (\(n=1\)): \(3(1)-1 = 2\) e \(\dfrac{1 \cdot 4}{2} = 2\) ✓

HI: \(\displaystyle\sum_{i=1}^{k}(3i-1) = \dfrac{k(1+3k)}{2}\)

Passo indutivo:

$$\sum_{i=1}^{k+1}(3i-1) \overset{\text{HI}}{=} \frac{k(1+3k)}{2} + (3k+2) = \frac{k+3k^2+6k+4}{2} = \frac{3k^2+7k+4}{2} = \frac{(k+1)(3k+4)}{2}$$

Portanto, \(2 + 5 + \cdots + (3n-1) = \dfrac{n(1+3n)}{2}\), que é o que queríamos demonstrar. \(\blacksquare\)

Exercício 5 — Produto telescópico

Prove que \(\left(1+1\right)!\left(1+\dfrac{1}{2}\right)!\left(1+\dfrac{1}{3}\right)\cdots\left(1+\dfrac{1}{n}\right) = n+1\) para todo \(n \in \mathbb{N}\).

Demonstração:

Base (\(n=1\)): \(1 + \dfrac{1}{1} = 2 = 1+1\) ✓

HI: \(\displaystyle\prod_{i=1}^{k}!\left(1+\dfrac{1}{i}\right) = k+1\)

Passo indutivo:

$$\prod_{i=1}^{k+1}\!\left(1+\frac{1}{i}\right) \overset{\text{HI}}{=} (k+1)\!\left(1+\frac{1}{k+1}\right) = (k+1)\cdot\frac{k+2}{k+1} = k+2$$

Portanto, \(\displaystyle\prod_{i=1}^{n}!\left(1+\dfrac{1}{i}\right) = n+1\), que é o que queríamos demonstrar. \(\blacksquare\)

Exercício 6 — Divisibilidade

Prove que \(2 \mid n^2 + n\) para todo \(n \in \mathbb{N}\).

Demonstração:

Base (\(n=1\)): \(1+1 = 2\), divisível por 2 ✓

HI: \(k^2 + k = 2q\) para algum \(q \in \mathbb{N}\)

Passo indutivo:

$$(k+1)^2 + (k+1) = k^2 + 2k + 1 + k + 1 = \underbrace{(k^2+k)}_{2q} + 2(k+1) = 2\bigl(q + k + 1\bigr)$$

Portanto, \(2 \mid n^2 + n\), que é o que queríamos demonstrar. \(\blacksquare\)

Observação: A fatoração \(n^2 + n = n(n+1)\) revela a intuição — produto de inteiros consecutivos, um deles sempre par — mas é a indução que formaliza a prova para todos os naturais.

Tabela-Resumo
#

Os resultados provados neste artigo, reunidos para consulta rápida:

Resultado Enunciado
Soma dos naturais \(1+2+\cdots+n = \dfrac{n(n+1)}{2}\)
Soma dos ímpares \(1+3+\cdots+(2n-1) = n^2\)
Divisibilidade \(8 \mid (3^{2n}-1)\)
Desigualdade (\(n \geq 4\)) \(n^2 > 3n\)
Potências de 2 \(1+2+\cdots+2^{n-1} = 2^n - 1\)
Soma dos quadrados \(1^2+2^2+\cdots+n^2 = \dfrac{n(n+1)(2n+1)}{6}\)
Soma de produtos consecutivos \(\displaystyle\sum_{i=1}^{n} i(i+1) = \dfrac{n(n+1)(n+2)}{3}\)
Progressão aritmética \(2+5+\cdots+(3n-1) = \dfrac{n(1+3n)}{2}\)
Produto telescópico \(\displaystyle\prod_{i=1}^{n}!\left(1+\frac{1}{i}\right) = n+1\)
Divisibilidade simples \(2 \mid n^2+n\)

Próximos passos
#

O PIM padrão usa apenas o caso \(P(k)\) para provar \(P(k+1)\). Mas alguns problemas exigem todos os casos anteriores ao mesmo tempo. Considere, por exemplo, provar que todo inteiro \(n \geq 2\) admite um fator primo: para decompor \(n\), pode ser necessário invocar a hipótese para valores menores que \(k\), não só para \(k\). O PIM padrão não alcança esse argumento — e para isso existe a Indução Forte, tema do próximo artigo.

Do Caso Base ao Infinito - Este artigo faz parte de uma série de artigos.
Parte 2: Esse Artigo

Relacionados