O teorema de Heine-Borel é um dos resultados fundamentais da análise real. Fornece uma caracterização completa dos conjuntos compactos da recta real, mostrando que em \(\mathbb R\) a compacidade coincide exactamente com duas propriedades muito mais simples de reconhecer: ser fechado e ser limitado.
Por outras palavras, um subconjunto de \(\mathbb R\) é compacto se e só se for fechado e limitado. Este resultado torna concreta a definição de compacidade mediante coberturas abertas e explica por que razão intervalos como \([a,b]\) são compactos, ao passo que conjuntos como \((a,b)\) ou \([0,+\infty)\) não o são.
Nesta exposição enunciaremos o teorema de Heine-Borel, esclareceremos o seu significado, demonstraremos ambas as implicações e analisaremos exemplos fundamentais e contra-exemplos.
Índice
- Enunciado do teorema de Heine-Borel
- Significado do teorema
- Por que razão a limitação é necessária
- Por que razão ser fechado é necessário
- Demonstração: todo o compacto de \(\mathbb R\) é fechado e limitado
- Demonstração: todo o fechado e limitado de \(\mathbb R\) é compacto
- Exemplos de conjuntos compactos através de Heine-Borel
- Exemplos de conjuntos não compactos através de Heine-Borel
- Heine-Borel e sucessões
- Resumo final
Enunciado do teorema de Heine-Borel
O teorema de Heine-Borel caracteriza por completo os conjuntos compactos da recta real.
Teorema de Heine-Borel. Um conjunto \(K\subseteq\mathbb R\) é compacto se e só se for fechado e limitado.
Em símbolos:
\[ K \subseteq \mathbb R \text{ é compacto} \quad \Longleftrightarrow \quad K \text{ é fechado e limitado}. \]
O teorema reúne duas afirmações distintas:
- se \(K\subseteq\mathbb R\) for compacto, então \(K\) é fechado e limitado;
- se \(K\subseteq\mathbb R\) for fechado e limitado, então \(K\) é compacto.
A primeira implicação mostra que a compacidade impede tanto a fuga para o infinito como a existência de pontos de acumulação que não pertençam ao conjunto. A segunda implicação mostra, pelo contrário, que na recta real estas duas condições bastam para garantir a compacidade.
Significado do teorema
A definição de conjunto compacto é formulada mediante coberturas abertas: um conjunto \(K\subseteq\mathbb R\) é compacto se toda a cobertura aberta de \(K\) admite uma subcobertura finita.
Esta definição é muito geral, mas nem sempre é imediata de verificar. O teorema de Heine-Borel torna a compacidade muito mais concreta no caso dos conjuntos reais.
Com efeito, graças ao teorema, para determinar se um conjunto \(K\subseteq\mathbb R\) é compacto não é necessário examinar directamente todas as suas coberturas abertas. Basta verificar duas propriedades:
- \(K\) é limitado, isto é, os seus pontos não se podem afastar indefinidamente;
- \(K\) é fechado, isto é, contém todos os seus pontos de acumulação.
Por exemplo, o intervalo
\[ [0,1] \]
é fechado e limitado, pelo que é compacto.
O intervalo
\[ (0,1) \]
é limitado, mas não é fechado; logo, não é compacto.
A semirrecta
\[ [0,+\infty) \]
é fechada, mas não é limitada; logo, não é compacta.
O teorema de Heine-Borel mostra assim que, em \(\mathbb R\), compacidade significa exactamente isto: não há fuga para o infinito e não faltam pontos de acumulação.
Por que razão a limitação é necessária
Vejamos em primeiro lugar por que razão um conjunto compacto não pode ser ilimitado.
Um conjunto \(K\subseteq\mathbb R\) diz-se limitado se existe \(M>0\) tal que
\[ K\subseteq [-M,M]. \]
De forma equivalente, todos os pontos de \(K\) têm valor absoluto menor ou igual a uma mesma constante:
\[ |x|\leq M \qquad \text{para todo } x\in K. \]
Se, pelo contrário, \(K\) não for limitado, então os seus pontos podem afastar-se indefinidamente. Neste caso é possível construir uma cobertura aberta de \(K\) que não admite nenhuma subcobertura finita.
Consideremos, com efeito, a família de abertos
\[ U_n=(-n,n), \qquad n\in\mathbb N,\ n\geq 1. \]
A união de todos estes abertos é toda a recta real:
\[ \bigcup_{n=1}^{+\infty}(-n,n)=\mathbb R. \]
Logo, em particular,
\[ K\subseteq \bigcup_{n=1}^{+\infty}(-n,n). \]
A família \(\{(-n,n)\}_{n\geq 1}\) é, portanto, uma cobertura aberta de \(K\).
Se desta cobertura escolhermos apenas um número finito de abertos, há um índice máximo \(N\) entre os escolhidos. Visto que os intervalos \((-n,n)\) crescem à medida que \(n\) cresce, a união finita dos abertos escolhidos está contida em
\[ (-N,N). \]
Mas, se \(K\) for ilimitado, existe pelo menos um ponto \(x\in K\) tal que
\[ |x|>N. \]
Tal ponto não pertence a \((-N,N)\). Assim, nenhum número finito de abertos da família consegue cobrir todo o \(K\).
Logo, um conjunto ilimitado não pode ser compacto.
Em consequência, todo o conjunto compacto de \(\mathbb R\) tem de ser limitado.
Por que razão ser fechado é necessário
Vejamos agora por que razão um conjunto compacto de \(\mathbb R\) tem de ser fechado.
Um conjunto \(K\subseteq\mathbb R\) é fechado se contém todos os seus pontos de acumulação. Por outras palavras, se uma sucessão de pontos de \(K\) converge para um número real \(x\), então o limite \(x\) tem de pertencer ainda a \(K\).
Se um conjunto não for fechado, pode acontecer que alguns dos seus pontos se aproximem indefinidamente de um ponto exterior ao conjunto. Este fenómeno é incompatível com a compacidade.
Por exemplo, o intervalo
\[ (0,1) \]
não é fechado, porque \(0\) e \(1\) são pontos de acumulação do intervalo, mas não pertencem ao próprio intervalo.
Consideremos a sucessão
\[ x_n=\frac{1}{n}. \]
Para todo \(n\geq 2\), tem-se
\[ x_n\in(0,1), \]
mas
\[ x_n\to 0. \]
O limite \(0\) não pertence a \((0,1)\). Assim, a sucessão \(\left(\displaystyle \frac{1}{n}\right)\), embora contida no intervalo aberto \((0,1)\), converge para um ponto exterior ao conjunto.
Isto mostra por que razão ser fechado é necessário: um conjunto compacto não pode perder os limites das sucessões que vivem no seu interior.
Mais precisamente, se \(K\) for compacto, toda a sucessão de pontos de \(K\) admite uma subsucessão convergente para um ponto de \(K\). Se \(K\) tivesse um ponto de acumulação exterior, seria possível construir uma sucessão de pontos de \(K\) convergente para esse ponto exterior, contradizendo a compacidade.
Em consequência, todo o conjunto compacto de \(\mathbb R\) tem de ser fechado.
Demonstração: todo o compacto de \(\mathbb R\) é fechado e limitado
Demonstremos agora a primeira implicação do teorema de Heine-Borel:
\[ K \text{ compacto} \quad \Longrightarrow \quad K \text{ fechado e limitado}. \]
A demonstração divide-se de forma natural em duas partes:
- primeiro provamos que \(K\) é limitado;
- depois provamos que \(K\) é fechado.
Um compacto de \(\mathbb R\) é limitado
Suponhamos que \(K\subseteq\mathbb R\) é compacto.
Consideremos a família de abertos
\[ U_n=(-n,n), \qquad n\in\mathbb N,\ n\geq 1. \]
Visto que
\[ \bigcup_{n=1}^{+\infty}(-n,n)=\mathbb R, \]
tem-se com certeza
\[ K\subseteq \bigcup_{n=1}^{+\infty}(-n,n). \]
Logo, \(\{U_n\}_{n\geq 1}\) é uma cobertura aberta de \(K\).
Como \(K\) é compacto, desta cobertura aberta podemos extrair uma subcobertura finita. Existem, pois, índices
\[ n_1,n_2,\ldots,n_m \]
tais que
\[ K\subseteq (-n_1,n_1)\cup(-n_2,n_2)\cup\cdots\cup(-n_m,n_m). \]
Seja
\[ N=\max\{n_1,n_2,\ldots,n_m\}. \]
Visto que os intervalos \((-n,n)\) crescem à medida que \(n\) cresce, tem-se
\[ (-n_j,n_j)\subseteq (-N,N) \qquad \text{para todo } j=1,\ldots,m. \]
Por conseguinte
\[ K\subseteq (-N,N). \]
Assim, todo o ponto \(x\in K\) satisfaz
\[ |x|<N. \]
Encontrámos deste modo uma constante \(N>0\) que limita todos os pontos de \(K\). Logo, \(K\) é limitado.
Um compacto de \(\mathbb R\) é fechado
Provemos agora que \(K\) é fechado.
Usaremos a caracterização sequencial dos conjuntos fechados: um conjunto \(K\subseteq\mathbb R\) é fechado se e só se, para toda a sucessão \((x_n)\subseteq K\) convergente para um número real \(x\), se tem necessariamente \(x\in K\).
Seja, pois, \((x_n)\) uma sucessão de pontos de \(K\) tal que
\[ x_n\to x \qquad \text{com } x\in\mathbb R. \]
Como \(K\) é compacto, pela caracterização sequencial da compacidade em \(\mathbb R\), toda a sucessão de pontos de \(K\) admite uma subsucessão convergente para um ponto de \(K\). Existe, pois, uma subsucessão \((x_{n_k})\) tal que
\[ x_{n_k}\to y \qquad \text{com } y\in K. \]
Mas \((x_{n_k})\) é uma subsucessão da sucessão \((x_n)\), e toda a subsucessão de uma sucessão convergente converge para o mesmo limite. Visto que \(x_n\to x\), segue-se que
\[ x_{n_k}\to x. \]
Temos, portanto,
\[ x_{n_k}\to x \qquad \text{e} \qquad x_{n_k}\to y. \]
Pela unicidade do limite em \(\mathbb R\), obtém-se
\[ x=y. \]
Visto que \(y\in K\), segue-se que também \(x\in K\).
Demonstrámos que toda a sucessão de pontos de \(K\) convergente em \(\mathbb R\) tem o seu limite em \(K\). Logo, \(K\) é fechado.
Provámos assim que todo o conjunto compacto de \(\mathbb R\) é simultaneamente fechado e limitado.
Demonstração: todo o fechado e limitado de \(\mathbb R\) é compacto
Demonstremos agora a segunda implicação do teorema de Heine-Borel:
\[ K \text{ fechado e limitado} \quad \Longrightarrow \quad K \text{ compacto}. \]
Esta é a parte mais profunda do teorema. Com efeito, não basta saber intuitivamente que um conjunto fechado e limitado está bem controlado: temos de demonstrar que toda a sua cobertura aberta admite uma subcobertura finita.
Procederemos em dois passos:
- primeiro demonstraremos que todo o intervalo fechado e limitado \([a,b]\) é compacto;
- depois usaremos este resultado para demonstrar que todo o subconjunto fechado e limitado de \(\mathbb R\) é compacto.
Passo 1: todo o intervalo \([a,b]\) é compacto
Sejam \(a,b\in\mathbb R\), com \(a\leq b\). Queremos demonstrar que o intervalo
\[ [a,b] \]
é compacto.
Consideremos uma cobertura aberta qualquer de \([a,b]\):
\[ [a,b]\subseteq \bigcup_{i\in I} U_i, \]
onde cada \(U_i\) é um aberto de \(\mathbb R\).
Temos de demonstrar que existem \(i_1,\ldots,i_m\in I\) tais que
\[ [a,b]\subseteq U_{i_1}\cup\cdots\cup U_{i_m}. \]
Raciocinemos por redução ao absurdo. Suponhamos que existe uma cobertura aberta de \([a,b]\) da qual não é possível extrair nenhuma subcobertura finita.
Dividamos o intervalo \([a,b]\) em duas metades:
\[ \left[a,\frac{a+b}{2}\right], \qquad \left[\frac{a+b}{2},b\right]. \]
Se ambas estas metades admitissem uma subcobertura finita, então também a sua união, isto é todo o \([a,b]\), admitiria uma subcobertura finita. Isto contradiria a hipótese.
Logo, pelo menos uma das duas metades não admite uma subcobertura finita. Designemo-la por \(I_1\).
Dividamos agora \(I_1\) em duas metades. Também neste caso, pelo menos uma das duas metades não pode admitir uma subcobertura finita; caso contrário \(I_1\) seria coberto por um número finito de abertos. Designemos tal metade por \(I_2\).
Prosseguindo deste modo, construímos uma sucessão de intervalos fechados e limitados
\[ I_1\supseteq I_2\supseteq I_3\supseteq \cdots \]
tais que:
- cada \(I_n\) é um subintervalo fechado de \([a,b]\);
- nenhum \(I_n\) admite uma subcobertura finita mediante os abertos da cobertura inicial;
- o comprimento de \(I_n\) tende para \(0\).
Mais precisamente, se \(I_n=[a_n,b_n]\), então
\[ b_n-a_n=\frac{b-a}{2^n}. \]
Pelo teorema dos intervalos encaixados, existe pelo menos um ponto
\[ x\in \bigcap_{n=1}^{+\infty} I_n. \]
Visto que \(x\in[a,b]\) e a família \(\{U_i\}_{i\in I}\) cobre \([a,b]\), existe um índice \(i_0\in I\) tal que
\[ x\in U_{i_0}. \]
Como \(U_{i_0}\) é aberto, existe \(r>0\) tal que
\[ (x-r,x+r)\subseteq U_{i_0}. \]
Visto que o comprimento dos intervalos \(I_n\) tende para \(0\), podemos escolher \(N\in\mathbb N\) tal que
\[ b_N-a_N<r. \]
Além disso \(x\in I_N\). Logo, para todo \(y\in I_N\), tem-se
\[ |y-x|\leq b_N-a_N<r. \]
Por conseguinte
\[ I_N\subseteq (x-r,x+r)\subseteq U_{i_0}. \]
Mas então \(I_N\) fica coberto por um só aberto da cobertura inicial, a saber \(U_{i_0}\). Em particular, \(I_N\) admite uma subcobertura finita.
Isto contradiz a construção dos intervalos \(I_n\), segundo a qual nenhum \(I_n\) devia admitir uma subcobertura finita.
O absurdo provém de termos suposto que \([a,b]\) não era compacto. Logo, todo o intervalo fechado e limitado \([a,b]\) é compacto.
Passo 2: todo o fechado e limitado \(K\subseteq\mathbb R\) é compacto
Seja agora \(K\subseteq\mathbb R\) um conjunto fechado e limitado.
Visto que \(K\) é limitado, existe \(M>0\) tal que
\[ K\subseteq [-M,M]. \]
Acabámos de demonstrar que o intervalo \([-M,M]\) é compacto.
Consideremos agora uma cobertura aberta qualquer de \(K\):
\[ K\subseteq \bigcup_{i\in I} U_i. \]
Queremos demonstrar que desta cobertura se pode extrair uma subcobertura finita.
Visto que \(K\) é fechado, o seu complementar
\[ \mathbb R\setminus K \]
é aberto.
Acrescentemos este aberto à família \(\{U_i\}_{i\in I}\). Obtemos assim a família
\[ \{U_i\}_{i\in I}\cup\{\mathbb R\setminus K\}. \]
Esta nova família é uma cobertura aberta de todo o intervalo \([-M,M]\).
Com efeito, se \(x\in[-M,M]\), podem ocorrer dois casos:
- se \(x\in K\), então \(x\) pertence a pelo menos um dos abertos \(U_i\), porque \(\{U_i\}_{i\in I}\) cobre \(K\);
- se \(x\notin K\), então \(x\in\mathbb R\setminus K\).
Logo
\[ [-M,M]\subseteq \left(\bigcup_{i\in I} U_i\right)\cup(\mathbb R\setminus K). \]
Visto que \([-M,M]\) é compacto, desta cobertura aberta de \([-M,M]\) podemos extrair uma subcobertura finita.
Existe, pois, um número finito de abertos da cobertura inicial, que denotamos por
\[ U_{i_1},\ldots,U_{i_m}, \]
e eventualmente também o aberto \(\mathbb R\setminus K\), tais que
\[ [-M,M]\subseteq U_{i_1}\cup\cdots\cup U_{i_m}\cup(\mathbb R\setminus K). \]
Restrinjamos agora a atenção aos pontos de \(K\). Visto que nenhum ponto de \(K\) pertence a \(\mathbb R\setminus K\), a parte \(\mathbb R\setminus K\) não contribui para cobrir \(K\).
Por conseguinte, os abertos
\[ U_{i_1},\ldots,U_{i_m} \]
bastam, só por si, para cobrir \(K\):
\[ K\subseteq U_{i_1}\cup\cdots\cup U_{i_m}. \]
Extraímos, pois, uma subcobertura finita da cobertura aberta inicial de \(K\).
Visto que a cobertura aberta inicial era arbitrária, \(K\) é compacto.
Demonstrámos assim que todo o conjunto fechado e limitado de \(\mathbb R\) é compacto.
Exemplos de conjuntos compactos através de Heine-Borel
O teorema de Heine-Borel permite reconhecer rapidamente muitos conjuntos compactos de \(\mathbb R\), sem necessidade de verificar directamente a definição mediante coberturas abertas.
Em \(\mathbb R\), com efeito, basta verificar duas propriedades:
- o conjunto tem de ser fechado;
- o conjunto tem de ser limitado.
Intervalos fechados e limitados
Todo o intervalo da forma
\[ [a,b], \qquad a,b\in\mathbb R,\ a\leq b, \]
é compacto.
Com efeito, \([a,b]\) é fechado, porque contém os seus próprios extremos, e limitado, porque todo o ponto \(x\) seu satisfaz
\[ a\leq x\leq b. \]
Assim, pelo teorema de Heine-Borel, \([a,b]\) é compacto.
Conjuntos finitos
Todo o conjunto finito de números reais é compacto.
Por exemplo, consideremos
\[ A=\{-2,0,3,7\}. \]
O conjunto \(A\) é fechado, porque todos os seus pontos são isolados e não possui pontos de acumulação exteriores. Além disso é limitado, porque todos os seus elementos pertencem, por exemplo, ao intervalo \([-2,7]\).
Logo, pelo teorema de Heine-Borel, \(A\) é compacto.
Um conjunto infinito com um ponto de acumulação incluído
Consideremos o conjunto
\[ K=\{0\}\cup\left\{\frac{1}{n}:n\in\mathbb N,\ n\geq 1\right\}. \]
Este conjunto é limitado, porque
\[ K\subseteq [0,1]. \]
Além disso é fechado: o único ponto de acumulação da sucessão \(\displaystyle \frac{1}{n}\) é \(0\), e \(0\) pertence a \(K\).
Logo, \(K\) é fechado e limitado. Pelo teorema de Heine-Borel, \(K\) é compacto.
União finita de intervalos fechados e limitados
Também conjuntos como
\[ A=[-2,-1]\cup[0,3]\cup[5,6] \]
são compactos.
Com efeito, \(A\) é limitado, porque está contido no intervalo \([-2,6]\). Além disso é fechado, por ser uma união finita de conjuntos fechados.
Logo, pelo teorema de Heine-Borel, \(A\) é compacto.
Exemplos de conjuntos não compactos através de Heine-Borel
O teorema de Heine-Borel permite também reconhecer rapidamente quando um conjunto de números reais não é compacto.
Em \(\mathbb R\), um conjunto não é compacto se lhe falta pelo menos uma das duas propriedades exigidas pelo teorema: ser fechado ou ser limitado.
Intervalos abertos limitados
O intervalo
\[ (0,1) \]
não é compacto.
Com efeito, é limitado, mas não é fechado. Os pontos \(0\) e \(1\) são pontos de acumulação de \((0,1)\), mas não pertencem ao intervalo.
Visto que \((0,1)\) não é fechado, pelo teorema de Heine-Borel não é compacto.
Intervalos semiabertos
Também o intervalo
\[ [0,1) \]
não é compacto.
É limitado, mas não é fechado, porque \(1\) é um ponto de acumulação do conjunto e \(1\notin[0,1)\).
Logo, \([0,1)\) não é compacto.
Conjuntos fechados mas ilimitados
A semirrecta
\[ [0,+\infty) \]
não é compacta.
Com efeito, é fechada, mas não é limitada: os seus pontos podem afastar-se indefinidamente para \(+\infty\).
Pelo teorema de Heine-Borel, um subconjunto de \(\mathbb R\) é compacto se e só se for fechado e limitado. Visto que \([0,+\infty)\) não é limitado, não é compacto.
Um conjunto limitado mas não fechado
Consideremos o conjunto
\[ A=\left\{\frac{1}{n}:n\in\mathbb N,\ n\geq 1\right\}. \]
O conjunto \(A\) é limitado, porque
\[ A\subseteq (0,1]. \]
No entanto, não é fechado, porque a sucessão
\[ \frac{1}{n} \]
converge para \(0\), mas \(0\notin A\).
Logo, \(A\) não é fechado. Pelo teorema de Heine-Borel, \(A\) não é compacto.
Heine-Borel e sucessões
O teorema de Heine-Borel está estreitamente ligado à caracterização sequencial da compacidade.
Em \(\mathbb R\), dizer que um conjunto \(K\) é compacto equivale também a dizer que toda a sucessão de pontos de \(K\) admite uma subsucessão convergente para um ponto de \(K\).
O teorema de Heine-Borel explica por que razão esta propriedade é equivalente a ser fechado e limitado.
O papel da limitação
A limitação impede que as sucessões fujam para o infinito.
Por exemplo, no conjunto
\[ [0,+\infty) \]
a sucessão
\[ x_n=n \]
está inteiramente contida no conjunto, mas não admite nenhuma subsucessão convergente em \(\mathbb R\). Com efeito, toda a subsucessão sua tende para \(+\infty\).
Isto mostra por que razão a limitação é necessária para a compacidade.
O papel de ser fechado
Ser fechado impede que as sucessões convirjam para pontos exteriores ao conjunto.
Por exemplo, no intervalo
\[ (0,1) \]
a sucessão
\[ x_n=\frac{1}{n} \]
está contida em \((0,1)\) para todo \(n\geq 2\), mas converge para \(0\), que não pertence ao intervalo.
Isto mostra por que razão ser fechado é necessário para a compacidade.
Ser fechado e limitado em conjunto
Se um conjunto \(K\subseteq\mathbb R\) for limitado, então toda a sucessão de pontos de \(K\) é limitada. Pelo teorema de Bolzano-Weierstrass, admite uma subsucessão convergente em \(\mathbb R\).
Se, além disso, \(K\) for fechado, o limite dessa subsucessão pertence ainda a \(K\).
Logo, toda a sucessão de pontos de \(K\) admite uma subsucessão convergente para um ponto de \(K\).
Este é o conteúdo sequencial da compacidade e representa outra forma do teorema de Heine-Borel na recta real.
Resumo final
O teorema de Heine-Borel afirma que um subconjunto \(K\subseteq\mathbb R\) é compacto se e só se for fechado e limitado.
Em símbolos:
\[ K\subseteq\mathbb R \text{ é compacto} \quad \Longleftrightarrow \quad K \text{ é fechado e limitado}. \]
A compacidade define-se mediante coberturas abertas: toda a cobertura aberta de \(K\) deve admitir uma subcobertura finita.
O teorema de Heine-Borel torna concreta esta definição no caso da recta real. Em vez de examinar directamente todas as coberturas abertas, basta verificar duas propriedades:
- \(K\) é fechado, pelo que contém todos os seus pontos de acumulação;
- \(K\) é limitado, pelo que os seus pontos não podem fugir para o infinito.
A limitação impede a fuga para o infinito, ao passo que o facto de ser fechado garante que o conjunto contém todos os seus pontos de acumulação.
Por este motivo, em \(\mathbb R\), os conjuntos compactos são exactamente os conjuntos fechados e limitados.
O teorema de Heine-Borel é, pois, o resultado que liga de forma definitiva a definição abstracta de compacidade, baseada nas coberturas abertas, a uma caracterização simples e concreta na recta real: ser fechado e limitado.
Esta caracterização está na base de muitos resultados posteriores da análise, entre eles o teorema de Weierstrass, a caracterização sequencial da compacidade e o estudo das funções contínuas definidas sobre conjuntos compactos.