\documentclass[XUPS,XML,SOM,Unicode,francais, NoFloatCountersInSection]{cedram}
\setcounter{tocdepth}{2}

\usepackage{../xups24}
\graphicspath{{xups24-02_figures}}
\hyphenation{dimen-sion espa-ce espa-ces}
%\XUPScorrections

\begin{document}
\frontmatter

\title{Introduction rapide à l'homologie}

\author{\firstname{Vincent} \lastname{Humilière}}
\address{Sorbonne Université and Université de Paris, CNRS, IMJ-PRG,
F-75006 Paris, France,
\& Institut Universitaire de France}
\email{vincent.humiliere@imj-prg.fr}
\urladdr{https://webusers.imj-prg.fr/~vincent.humiliere/}

%\thanks{Journées X-UPS 2024. Introduction à l'analyse de données. Éditions de l'École polytechnique, 2024}

\begin{abstract}
La théorie de l'homologie associe à tout espace topologique des groupes, de telle sorte que si deux espaces sont homéomorphes alors les groupes associés sont isomorphes. C'est un outil central de topologie dont l'introduction remonte à Poincaré et dont les applications sont innombrables. Ils jouent aussi un rôle clé en analyse topologique des données. Dans ce texte, nous verrons ce que sont ces groupes et ce qu'ils nous disent sur les espaces étudiés.
\end{abstract}
\maketitle

\tableofcontents
\mainmatter

Dans ce texte nous introduisons un outil fondamental pour l'étude des espaces topologiques, \emph{l'homologie}. Il jouera un rôle central dans les textes suivants.

L'introduction de l'homologie remonte au moins aux travaux de \cite{Poincare}, même si des embryons de cette théorie existaient antérieurement (chez Euler par exemple). Le principe est d'associer à n'importe quel espace topologique $X$ une famille d'espaces vectoriels $H_k(X)$ avec $k=0,1,2,\ldots$, de telle sorte que si $X$ et $Y$ sont homéomorphes, alors les espaces vectoriels $H_k(X)$ et $H_k(Y)$ sont isomorphes pour tout $k$. Les $H_k(X)$ seront appelés \emph{groupes d'homologie} de $X$. Nous verrons qu'intuitivement, la dimension de $H_k(X)$ groupes d'homologie peut s'interpréter comme un \og nombre de cavités de dimension~$k$\fg renfermées par $X$.

On peut motiver cette construction comme suit. Le but premier de la topologie est la classification des espaces topologiques à homéomorphisme près. Malheureusement, c'est un problème beaucoup trop difficile, mais en étudiant les groupes d'homologie, ce qui est beaucoup plus simple puisque il s'agit d'algèbre linéaire, on obtient tout de même des informations utiles. Par exemple, pour démontrer que deux espaces ne sont pas homéomorphes, il suffit de montrer qu'ils ont des espaces d'homologies de dimensions différentes!

Les références traitant d'homologie sont innombrables. Par exemple, le livre de \cite{Hatcher-book} est très souvent cité, et notre présentation le suit en partie. Nous conseillons aussi le magnifique site web Analysis Situs du collectif Henri-Paul de Saint Gervais (\url{https://analysis-situs.math.cnrs.fr/}).

Dans ce texte, on fixe un corps $\mathbb{K}$ qui sera le corps des coefficients de nos groupes d'homologie.

\section{Homologie simpliciale}

Nous introduisons dans cette partie l'homologie dans le cadre des espaces admettant une structure de \emph{complexes simpliciaux}. Il s'agit d'espaces topologiques construits par induction, ils portent donc une structure combinatoire qui les rend assez simples à étudier. De manière à construire l'intuition, nous commençons par décrire informellement le cas des graphes, puis une généralisation que l'on appellera \og graphes bouchés par des triangles\fg. Si l'on est pressé, on peut passer directement à la partie \ref{sec:complexe-simpliciaux} où se trouve la définition formelle de l'homologie simpliciale.\enlargethispage{\baselineskip}%

\subsection{Cycles dans les graphes}\label{sec:cycles-graphes}

Soit $\Gamma$ un graphe ayant un ensemble de sommets $V$ et un ensemble d'arêtes $E$. On suppose que l'ensemble des sommets est ordonné et on oriente chaque arête $e$ de telle sorte qu'elle aille toujours vers un sommet plus grand que son sommet d'origine. On notera les extrémités $\mathrm{source}(e)$ et $\mathrm{but}(e)$.

On cherche à associer à un graphe des nombres qui soient invariants par déformation, c'est-à-dire par les opérations consistant à écraser une arête pour n'en faire qu'un sommet (figure \ref{fig:ecrasement-arete}) ou les opérations inverses. Un tel invariant est par exemple le nombre de composantes connexes. Une autre possibilité est le \og nombre de boucles\fg dans le graphe. Le \og nombre de boucles\fg est un terme un peu ambigu, mais on peut en donner une définition précise comme suit.

\begin{figure}[htb]
\centering
\def\svgwidth{0.4\textwidth}
\input{xups24-02_figures/ecrasement-arete.pdf_tex}
\caption{Déformation où l'arête $e$ est écrasée sur un sommet.}
\label{fig:ecrasement-arete}
\end{figure}

Appelons \emph{chaîne de sommets} tout ensemble fini $\{(c_i, a_i)\}_{i=1,\dots, \ell}$ de couples $(c_i, a_i)$, où $c_i$ est un sommet de $\Gamma$ et $a_i\in\mathbb{K}$ un coefficient. On~notera une telle chaîne
\[\sum_{i=1}^\ell a_ic_i.\]
Définissons de même les \emph{chaînes d'arêtes} comme les ensembles finis de couples constitués d'une arête $e_j$ et d'un coefficient $b_j$, que l'on notera de manière similaire $\sum e_jb_j$.

Les chaînes de sommets et d'arêtes forment pour les lois évidentes des $\mathbb{K}$-espaces vectoriels que l'on notera respectivement $C_V$ et $C_E$. Ces espaces admettent des bases canoniques qui ne sont autres que~$V$ et~$E$.

Soit $\partial_1$ l'unique application linéaire $C_E\to C_V$ définie pour toute arête $e\in E$ par
\begin{equation}
\partial_1(e)=\mathrm{but}(e)-\mathrm{source}(e).\label{eq:partial1}
\end{equation}

\begin{exemple}\label{ex:hom1}
Dans le graphe triangulaire ci-dessous, on a
\[\partial_1(e_{12}+e_{23})=v_3-v_2+v_2-v_1=v_3-v_1.\]
\begin{figure}[htb]
\centering
\vspace*{-\baselineskip}
\def\svgwidth{0.25\textwidth}
\input{xups24-02_figures/triangle-simple.pdf_tex}
\label{fig:triangle-simple}
\end{figure}
\end{exemple}

\begin{definition} On dira qu'une chaîne d'arête $c$ est un \emph{cycle} si $\partial_1c=0$. L'ensemble des cycles est un sous-espace vectoriel de $C_E$ noté $H_1(\Gamma)$, c'est le \emph{premier groupe d'homologie} de $\Gamma$.
\end{definition}

\begin{exemple}
Dans l'exemple \ref{ex:hom1}, $e_{12}+e_{23}-e_{13}$ est un cycle. En~fait, on peut se convaincre que $H_1(\Gamma)$ est l'ensemble des chaînes de la forme $\lambda(e_{12}+e_{23}-e_{13})$, avec $\lambda\in\mathbb{K}$. Il est donc de dimension $1$. Dans l'exemple ci-dessous, on peut se convaincre que les cycles sont exactement les chaînes combinaisons linéaires des chaînes $e_{12}+e_{23}-e_{13}$ et $e_{13}+e_{34}-e_{14}$. L'espace $H_1(\Gamma)$ est donc de dimension $2$.

\begin{figure}[htb]
\centering
\def\svgwidth{0.35\textwidth}
\input{xups24-02_figures/triangle-double.pdf_tex}
\label{fig:triangle-double}
\end{figure}
\end{exemple}

On observe sur les deux graphes ci-dessus que la dimension de $H_1(\Gamma)$ correspond à ce que l'on voudrait appeler le \og nombre de boucles dans le graphe\fg. C'est un fait général.

Par la construction qui précède, nous avons réalisé le \og nombre de boucles\fg comme la dimension d'un espace vectoriel. Le nombre de composantes connexes admet également une telle description. Pour cela, appelons \emph{bord} toute chaîne de sommets qui est l'image par $\partial_1$ d'une chaîne d'arêtes. Notons que les bords forment un sous-espace vectoriel.

Par exemple, si deux sommets $v$, $v'$ sont reliés par une arête $e$, alors la chaîne $v-v'=\partial_1e$ est un bord. De même, si $v''$ est un troisième sommet qui est relié à $v'$ par une arête, alors $v''-v=(v''-v')+(v'-v)$ est aussi un bord. Plus généralement, la différence entre les extrémités d'un chemin continu d'arêtes forme toujours un bord.
On en déduit que: \emph{deux sommets sont dans la même composante connexe du graphe si et seulement si leur différence est un bord}.

Par conséquent, l'ensemble des composantes connexes s'identifie avec l'espace vectoriel quotient
\begin{equation}
H_0(\Gamma)=C_V / \{\mathrm{bords}\} = C_V /\mathrm{im}(\partial_1).\label{eq:H0}
\end{equation}

Le nombre de composantes connexes correspond alors à la dimension de cet espace.

\subsection{Cycles et bords dans les graphes \og bouchés par des triangles\fg}

Généralisons légèrement en ne considérant plus seulement des graphes mais des espaces que nous appellerons ici des \og graphes bouchés par des triangles\fg (terminologie absolument pas standard et inventée pour les besoins de cet exposé!), c'est-à-dire des espaces~$\Gamma$ obtenus à partir d'un graphe de sommets $V$, d'arêtes $E$, auquel on recolle des triangles de telle sorte que chaque côté soit l'une des arêtes de $E$. On note $T$ l'ensemble des triangles de $\Gamma$ (cette définition est volontairement informelle, nous la rendrons plus précise lorsque nous définirons les complexes simpliciaux généraux dans la partie~\ref{sec:complexe-simpliciaux}). Les triangles sont orientés de manière compatible avec l'ordre des sommets.

\begin{figure}[htb]
\centering
\def\svgwidth{0.35\textwidth}
\input{xups24-02_figures/graphe-bouche.pdf_tex}
\caption{Un graphe \og bouché par des triangles\fg. Nous avons ici deux triangles, ce sont les parties grisées.}
\label{fig:graphe-bouche}
\end{figure}

Comme précédemment, on peut définir des chaînes de sommets, des chaînes d'arêtes et maintenant aussi des chaînes de triangles; on note $C_T$ l'espace vectoriel qu'elles forment. On peut aussi définir l'opérateur $\partial_1$ comme en \ref{sec:cycles-graphes}. On voudrait ici aussi donner un sens au \og nombre de boucles\fg comme précédemment. Pour cela, on voudrait qu'un cycle qui suit le bord d'un triangle ne soit pas compté comme une boucle. Par exemple, on voudrait que les cycles qui entourent les parties grisées de la figure \ref{fig:graphe-bouche} ne soit pas comptés comme des boucles, de manière à obtenir un nombre invariant par déformation (notamment par l'opération consistant à écraser un triangle sur une arête). Pour cela, on définit l'application linéaire $\partial_2:C_T\to C_E$ qui à un triangle $t$ dont le bord est constitué d'arêtes $e, e', e''$ comme sur la figure \ref{fig:triangle}, associe
\begin{equation}
\partial_2(t)=e+e'-e''.\label{eq:partial2}
\end{equation}

\begin{figure}[htb]
\centering
\def\svgwidth{0.3\textwidth}
\input{xups24-02_figures/triangle.pdf_tex}
\caption{Le triangle $t$ et ses arêtes orientées.}
\label{fig:triangle}
\end{figure}

On dira qu'une chaîne d'arêtes est un \emph{bord} si elle appartient à l'image de $\partial_2$.
Remarquez que tout bord est un cycle, autrement dit $\partial_2\circ\partial_1=0$.

Définissons alors l'espace vectoriel quotient
\begin{equation}
H_1(\Gamma)=\{\text{cycles}\}/\{\text{bords}\}=\ker(\partial_1)/\mathrm{im}(\partial_2).\label{eq:H1}
\end{equation}

En passant ainsi au quotient, les cycles qui sont des bords sont en quelque sorte \og oubliés\fg.

On peut vérifier dans l'exemple de la figure \ref{fig:graphe-bouche} que, $\ker(\partial_1)$ est de dimension $3$, $\im(\partial_2)$ est de dimension $2$ (cela correspond aux deux triangles grisés) et donc $\dim H_1(\Gamma)=\dim \ker(\partial_1) - \dim \im(\partial_1)$ est de dimension $1$. Cela correspond bien au nombre de boucles que l'on souhaite compter. Ici, il y a une seule boucle qui n'est pas bouchée par un triangle.

En plus du nombre de composantes connexes et du nombre de boucles, les graphes bouchés par des triangles ont un troisième invariant intéressant, le nombre de cavités.

Par exemple, si $\Gamma$ est obtenu en prenant tous les sommets, toutes les arêtes et toutes les faces d'un tétraèdre, alors on voit qu'il renferme une cavité. Si l'on fait de même à partir de deux tétraèdres collés le long d'une face, il y aura deux cavités si l'on garde la face de recollement, mais une seule si on l'enlève.

On peut formaliser ce compte de cavités suivant le même procédé que précédemment en disant qu'une chaîne de triangles $c$ est un \emph{cycle} si $\partial_2(c)=0$, et en définissant $H_2(\Gamma)$ comme l'ensemble des cycles. Le~nombre de cavités du graphe bouché correspond alors à la dimension de $H_2(\Gamma)$.

La construction des graphes bouchés peut être amplement généralisée, en bouchant des cavités par des tétraèdres, puis en réitérant le procédé en dimension supérieure. On arrive alors à la définition de complexe simplicial.\vspace*{-3pt}

\begin{figure}[htb]
\centering
\def\svgwidth{0.3\textwidth}
\input{xups24-02_figures/Delta_2.pdf_tex}
\label{fig:Delta_2}\vspace*{-5pt}
\end{figure}

\subsection{Complexes simpliciaux}\label{sec:complexe-simpliciaux}

Pour tout entier naturel $n$, on appelle $n$-simplexe standard l'ensemble\vspace*{-3pt}\enlargethispage{.5\baselineskip}
\[\textstyle\Delta_n=\bigl\{t\in (\R_{\geq0})^{n+1}: \sum_{i=0}^n t_i=1\bigr\}.\]

Les éléments $(v_0,\dots, v_n)$ (ordonnés dans cet ordre) de la base canonique de $\R^{n+1}$ sont les \emph{sommets} de $\Delta_n$. Si $n\geq 1$, les \emph{faces} de $\Delta_n$ sont les\vspace*{-3pt}
\[F_i=\Delta_n\cap\{t_i=0\}, \quad i=0,\dots, n.\]
Chacune d'entre elle s'identifie naturellement à $\Delta_{n-1}$. L'\emph{intérieur} $\mathring{\Delta}_n$ de $\Delta_n$ est l'ensemble $\Delta_n$ privé de ses faces.

\begin{definition}
Une structure de complexe simplicial\footnote{La terminologie correcte est \og structure de $\Delta$-complexe\fg, \cf \cite{Hatcher-book}.}  sur un espace topologique $X$ est une famille d'applications continues $(\sigma_\alpha)_{\alpha\in A}$, où~chaque $\sigma_{\alpha}$ est une application $\Delta_{n}\to X$ pour un entier $n$ dépendant de $\alpha$, vérifiant:
\begin{enumerate}
\item $\sigma_\alpha$ est injective en restriction à l'intérieur $\mathring{\Delta}_n$ de $\Delta_{n}$,
\item tout point de $X$ est dans l'image d'exactement l'une des $\sigma_\alpha|_{\mathring{\Delta}_n}$,
\item toute restriction d'une application $\sigma_\alpha$ à une face de $\Delta_n$ est l'une des $\sigma_\beta:\Delta_{n-1}\to X$,
\item une partie $U$ de $X$ est ouverte si et seulement si $\sigma_\alpha^{-1}(U)$ est ouverte pour tout $\alpha$.
\end{enumerate}
\end{definition}

Les applications $\sigma_\alpha$ sont appelées \emph{$n$-simplexes} de la structure simpliciale.
L'entier $n$ maximal de la famille des $\sigma_\alpha$ est appelé la \emph{dimension} du complexe simplicial. Le cas de la dimension $1$ est celui des graphes, celui de la dimension $2$ correspond au cas des graphes bouchés par des triangles de la section précédente. La définition ci-dessous nous sera utile dans le texte \cite{chap-pers-1}.

\begin{definition}\label{def:sous-complexe} Un sous-complexe simplicial d'un complexe simplicial~$X$ est un sous-espace topologique de $X$ qui admet une structure de complexe simplicial dont tous les simplexes sont des simplexes de~$X$.
\end{definition}

Dans la suite, on suppose donnée une structure de complexe simplicial sur un espace $X$ comme dans la définition. Les notions de chaînes, cycles, bords, se généralisent comme suit.

\begin{definition}\label{def:chaîne-simpliciale}
On appelle \emph{$n$-chaîne} tout ensemble fini de couples $(\sigma_1, a_1),\ldots, (\sigma_\ell, a_\ell)$ où chaque $\sigma_i$ est l'un des $\sigma_\alpha:\Delta_n\to X$ et $a_i\in\mathbb{K}$. On note une telle $n$-chaîne sous la forme \[\sum_{i=1}^\ell a_i\sigma_i.\]
Les $n$-chaînes forment pour les lois évidentes un espace vectoriel que l'on notera $C_n$·

Le $n$-ième opérateur de bord est l'application linéaire $\partial_n:C_n\to C_{n-1}$ telle que pour tout $n$-simplexe $\sigma_\alpha$,
\begin{equation}
\partial_n(\sigma_\alpha)=\sum_{i=0}^n(-1)^i\sigma_\alpha|_{F_i}.\label{eq:partialn}
\end{equation}

Un \emph{$n$-cycle} est une $n$-chaîne $c$ telle que $\partial_nc=0$. Un \emph{$n$-bord} est une $n$-chaîne $c$ qui est dans l'image de $\partial_{n+1}$.
\end{definition}

Remarquez que la formule (\ref{eq:partialn}) généralise directement les formules (\ref{eq:partial1}) et (\ref{eq:partial2}). Par convention, on pose $\partial_0=0$, autrement dit, toutes les 0-chaînes sont des cycles.

\begin{exercice}
Vérifier qu'un bord est toujours un cycle, autrement dit $\partial_n\circ \partial_{n+1}=0$.
\end{exercice}

Intuitivement, les $n$-cycles correspondent à des \og cavités de dimension $n$\fg et les $n$-bords correspondent aux cavités qui sont \og remplies\fg.
Nous pouvons enfin définir l'homologie simpliciale.

\begin{definition}\label{def:homologie-simpliciale} Pour tout entier $n\geq0$, le \emph{$n$-ième groupe d'homologie simpliciale} de $X$ est l'espace vectoriel quotient
\[H_k^{\mathrm{simpl}}(X)=\{\text{cycles}\}/\{\text{bords}\}=\ker(\partial_n)/\mathrm{im}(\partial_{n+1}).\]
\end{definition}

Notez que cette définition généralise à la fois (\ref{eq:H0}) et (\ref{eq:H1}).
Nous verrons plus bas que cet espace vectoriel ne dépend pas (à isomorphisme près) du choix de la structure simpliciale sur $X$, ce qui justifie la notation. Nous allons maintenant voir quelques exemples de calculs simples.

\subsection{Calcul de l'homologie simpliciale}\label{sec:calcul-homologie}

\begin{exemple}[Homologie en degré 0] L'argument développé à la fin de la partie \ref{sec:cycles-graphes} montre que la dimension de $H_0^{\mathrm{simpl}}(X)$ est toujours égale au nombre de composantes connexes de $X$.
\end{exemple}

\begin{exemple}[Sphères] La sphère $\mathbb{S}^2=\{(x,y,z)\in \R^3\}$ admet une structure simpliciale obtenue en traçant un tétraèdre sur sa surface (voir figure \ref{fig:sphere-tetraedre}).

\begin{figure}[htb]
\centering
\def\svgwidth{0.3\textwidth}
\input{xups24-02_figures/sphere-tetraedre.pdf_tex}
\caption{Un tétraèdre tracé sur une sphère.}
\label{fig:sphere-tetraedre}
\end{figure}

Cette structure a quatre sommets, six arêtes et quatre triangles. Comme $\mathbb{S}^2$ a une unique composante connexe, $H_0^{\mathrm{simpl}}(\mathbb{S}^2)$ est de dimension $1$. Par (\ref{eq:H0}), $\partial_1$ est donc de rang $3$ et par le théorème du rang, $\ker\partial_1$ est de dimension $3$. On peut ensuite se convaincre que la somme des quatre triangles est un cycle, et que tous les autres 2-cycles sont colinéaires à celui-ci. Autrement dit, $\ker\partial_2$ est de dimension $1$. Par le théorème du rang, son image est de dimension $3$. Comme $\mathrm{im}\, \partial_2$ est inclus dans $\ker \partial_1$ et qu'ils ont la même dimension, ils coïncident.

En conclusion, on obtient\vspace*{-3pt}\enlargethispage{.5\baselineskip}
\[H_k^{\mathrm{simpl}}(\mathbb{S}^2)\simeq
\begin{cases}
\mathbb{K} &\text{si }k=0, 2,\\
\{0\}& \text{sinon.}
\end{cases}
\]
\end{exemple}

De la même manière, on peut donner une structure simpliciale à toute sphère $\mathbb{S}^n$ en l'identifiant au bord d'un $n+1$-simplexe et calculer les groupes d'homologie correspondant. On obtient

\begin{proposition}\label{prop:homologie-sphere}\vspace*{-3pt}
\[H_k^{\mathrm{simpl}}(\mathbb{S}^n)\simeq
\begin{cases}
\mathbb{K} &\text{si }k=0, n,\\
\{0\}& \text{sinon.}
\end{cases}
\]
\end{proposition}

Ce résultat est compatible avec l'intuition que l'homologie compte les cavités: une sphère de dimension $n$ a bien une seule cavité et celle-ci est bien est de dimension $n$.

\begin{figure}[htb]
\centering
\def\svgwidth{0.4\textwidth}
\input{xups24-02_figures/tore.pdf_tex}
\caption{Le tore $\mathbb{T}^2$}
\label{fig:tore}
\end{figure}

On peut aussi regarder l'exemple du tore $\mathbb{T}^2$ (figure \ref{fig:tore}). Celui-ci peut être obtenu en recollant les côtés opposés d'un carré (figure~\ref{fig:deformation-tore}). Cette description du tore donne une structure simpliciale dont les trois arêtes sont les côtés du carré (identifiés par paires) et une diagonale du carré. Cette structure a un sommet, trois arêtes et deux triangles.

\begin{figure}[htb]
\centering
\def\svgwidth{.9\textwidth}
\input{xups24-02_figures/tore-deformation.pdf_tex}
\vspace*{-\baselineskip}
\caption{Le tore $\mathbb{T}^2$ à partir d'un carré}
\label{fig:deformation-tore}
\end{figure}

\begin{exercice} À partir de la structure simpliciale ci-dessus, vérifier que
\[H_k^{\mathrm{simpl}}(\mathbb{T}^2)\simeq
\begin{cases}
\mathbb{K} &\text{si }k=0, 2,\\
\mathbb{K}^2& \text{si }k=1.
\end{cases}
\]
En déduire que le tore $\mathbb{T}^2$ n'est pas homéomorphe à la sphère $\mathbb{S}^2$.
\end{exercice}

Les générateurs du groupe d'homologie de degré $1$ viennent des deux arêtes qui correspondent aux côtés du carré. Ils sont représentés sur la figure \ref{fig:tore} par les courbes grises.

Terminons par une remarque générale sur le calcul de l'homologie simpliciale.

\begin{remarque}\label{rem:calcul_homologie}
Si l'on dispose d'une structure simpliciale explicite, l'homologie simpliciale, ou au moins sa dimension, est très facile à calculer. En effet, la dimension de l'homologie est donnée par
\begin{equation*}
\dim H_k^{\mathrm{simpl}}(X)=\dim \ker\partial_k - \dim \mathrm{im}\,\partial_{k+1}.
\end{equation*}
Donc par le théorème du rang,
\begin{equation}\label{eq:dimension-homologie}
\dim H_k^{\mathrm{simpl}}(X) = \dim C_k(X) - \mathrm{rang}(\partial_k)-\mathrm{rang}(\partial_{k+1}),
\end{equation}
où $\dim C_k(X)$ n'est autre que le nombre de $k$-simplexes dans la décom\-position simpliciale de $X$.

Il s'agit donc simplement de calculer les rangs des applications~$\partial_n$. Or ces applications sont données par leur matrice dans les bases canoniques des différents $C_n(X)$ (constituées des $\sigma_\alpha$).
Ces calculs peuvent donc être réalisés efficacement par l'algorithme du pivot de Gauss (en~temps $O(p^2q)$ pour une matrice de dimension $p\times q$).

\end{remarque}
\section{Homologie singulière}

L'homologie simpliciale est facile à calculer, mais elle présente quelques inconvénients majeurs, à commencer par le fait qu'expliciter une structure de complexe simplicial n'est pas toujours chose aisée. La théorie de l'homologie singulière que nous allons maintenant présenter est moins facile à calculer a priori, mais plus pratique et flexible.

\subsection{Définition formelle}

On fixe dans cette partie un espace topologique quelconque $X$. Dans la définition de l'homologie simpliciale, on appelait $n$-chaînes les combinaisons linéaires formelles formées à partir des $n$-simplexes $\sigma_\alpha$ de la décomposition simpliciale. Ici, nous allons considérer les combinaisons linéaires de \emph{tous} les $n$-simplexes; c'est ce qui distingue la définition ci-dessous de la définition \ref{def:chaîne-simpliciale}.

\begin{definition}
Un \emph{$n$-simplexe} est une application continue \hbox{$\Delta_n\to X$}. Une \emph{$n$-chaîne singulière} est un ensemble fini de couples
\[
(\sigma_1, a_1),\ldots, (\sigma_\ell, a_\ell),
\]
où chaque $\sigma_i$ est un $n$-simplexe et $a_i\in\mathbb{K}$. On la note $\sum_{i=1}^\ell a_i\sigma_i$.
Les $n$-chaînes singulières forment pour les lois évidentes un espace vectoriel que l'on notera $C_n(X)$.

Le $n$-ième opérateur de bord singulier est l'application linéaire $\partial_n:C_n(X)\to C_{n-1}(X)$ telle que pour tout $n$-simplexe $\sigma$,
\begin{equation}
\partial_n(\sigma)=\sum_{i=0}^n(-1)^i\sigma|_{F_i}.\label{eq:partialn-sing}
\end{equation}
\end{definition}

Comme plus haut, on appellera \emph{$n$-cycles} les éléments de $\ker \partial_n$ et \emph{$n$-bords} ceux de $\im\, \partial_{n+1}$, et nous avons l'analogue de la définition~\ref{def:homologie-simpliciale}.

\begin{definition}\label{def:homologie-singuliere} Pour tout entier $n\geq0$, le \emph{$n$-ième groupe d'homologie singulière} de $X$ est l'espace vectoriel quotient\vspace*{-3pt}
\[H_n^{\mathrm{sing}}(X)=\{\text{cycles}\}/\{\text{bords}\}=\ker(\partial_n)/\mathrm{im}(\partial_{n+1}).\]
\end{definition}

Remarquez que cette construction s'applique à n'importe quel espace topologique $X$. Elle ne dépend d'aucun autre choix. La~cons\-truction passe par les espaces $C_n(X)$ qui sont (presque) toujours de dimension infinie et il est difficile de se faire une intuition a priori sur ce que calcule cette homologie. Cependant, le résultat suivant montre qu'en présence d'une décomposition simpliciale, les deux homologies coïncident.

\begin{theoreme} Soit $X$ un espace topologique muni d'une structure de complexe simplicial. Alors, pour tout entier $n$, on a un isomorphisme d'espaces vectoriels\vspace*{-3pt}\enlargethispage{1.5\baselineskip}
\[H_n^{\mathrm{sing}}(X)\simeq H_n^{\mathrm{simpl}}(X).\]
\end{theoreme}

Nous ne démontrerons pas cet énoncé ici. Il implique que l'homologie simpliciale ne dépend pas du choix de structure simpliciale. Ce~théorème et les calculs de la partie~\ref{sec:calcul-homologie} donnent des exemples de calcul de l'homologie singulière.
Il montre aussi que l'homologie singulière peut aussi être pensée intuitivement comme le nombre de cavités renfermées par l'espace $X$.
On notera dorénavant toutes les homologies par $H_n(X)$, ou $H_*(X)$ si l'on souhaite considérer tous les $n$ possibles.

\subsection{Action des fonctions continues en homologie et inva\-riance par déformation}

Un intérêt très important de la définition \og singulière\fg de l'homologie est le fait qu'une application continue entre espaces topologiques induit une application linéaire entre groupes d'homologie de manière directe.

Soit $f:X\to Y$ une application continue entre espaces topologiques. À tout $n$-simplexe singulier $\sigma:\Delta_n\to X$, on peut associer le $n$-simplexe singulier $f\circ\sigma:\Delta_n\to Y$, ce qui induit des applications linéaires entre chaînes\vspace*{-3pt}
\[f_*:C_n(X)\to C_n(Y)\]
pour tout entier $n\geq 0$.

Remarquez que $f_*$ est compatible avec les opérateurs bords. En~effet, la formule (\ref{eq:partialn-sing}) donne directement\vspace*{-3pt}
\[f_*\circ\partial_n^X=\partial_n^Y\circ f_*,\]
où $\partial_n^X$ et $\partial_n^Y$ sont les opérateurs bords définis respectivement sur $X$ et $Y$.
On en déduit que $f_*$ envoie cycle sur cycle et bord sur bord:\vspace*{-3pt}
\[f_*(\ker \partial_n^X)\subset \ker \partial_n^Y\quad f_*(\im\, \partial_{n+1}^X)\subset \im\, \partial_{n+1}^Y.\] Ceci implique donc que $f_*$ induit des applications linéaires, encore notées $f_*$,\vspace*{-3pt}\enlargethispage{\baselineskip}
\[f_*:H_*(X)\to H_*(Y).\]

Soit maintenant $g:Y\to Z$ une autre application continue. Pour tout simplexe $\sigma$, l'associativité de la composition donne $(g\circ f) \circ \sigma=g\circ (f \circ \sigma)$ et l'on en déduit $(g\circ f)_*=g_*\circ f_*:C_n(X)\to C_n(Z)$. Par ailleurs, on vérifie facilement que l'identité agit comme l'identité sur les chaînes. Nous obtenons donc:

\begin{proposition}\label{prop:fonctorialite-homologie} Pour toutes applications continues $f:X\to Y$ et $g:Y\to Z$ on a\vspace*{-3pt}\enlargethispage{.5\baselineskip}
\[(g\circ f)_*=g_*\circ f_*:H_*(X)\to H_*(Z).\]
De plus, $(\mathrm{id}_X)_*=\mathrm{id}_{H_*(X)}$.
\end{proposition}

On en déduit immédiatement:

\begin{corollaire}\label{cor:isom-homologie}
Si $f$ est un homéomorphisme alors $f_*$ est un isomorphisme d'espaces vectoriels.
\end{corollaire}

\begin{remarque} Les propriétés ci-dessus s'expriment dans le langage de la théorie des catégories en disant simplement que l'homologie est un \og foncteur de la catégorie des espaces topologiques vers celle des espaces vectoriels\fg.
\end{remarque}

Les applications induites en homologie $f_*$ ont une propriété très importante qui est leur invariance par déformation. Notons $\mathcal C^0(X,Y)$ l'espace des fonctions continues de $X$ dans $Y$, muni de la topologie compacte-ouverte (si $Y$ est un espace métrique, il s'agit de la topologie de la convergence uniforme sur tout compact).

\begin{proposition}
Soient $f_0, f_1:X\to Y$ deux fonctions continues \emph{homotopes}, c'est-à-dire reliées par un chemin continu dans $\mathcal C^0(X,Y)$. Alors,\vspace*{-3pt}
\[(f_0)_*=(f_1)_*\quad :H_*(X)\to H_*(Y).\]
\end{proposition}

Deux espaces obtenus l'un de l'autre par une \og déformation continue\fg auront donc la même homologie. Voici un exemple d'utilisation.

\begin{exemple}\label{ex:Rn-point}
Considérons les applications $p:\R^{n+1}\setminus\{0\}\to \mathbb{S}^n$ et $i:\mathbb{S}^n\to\R^{n+1}\setminus\{0\}$ définies par\vspace*{-3pt}
\[p(x)=\sfrac x{\|x\|}, \quad i(x)=x.\]
Clairement, $p\circ i=\mathrm{id}_{\mathbb S^n}$, donc $p_*\circ i_*=\mathrm{id}_{H_*(\mathbb{S}^n)}$. Par ailleurs, $i\circ p$ peut être déformé sur l'identité de $\R^{n+1}\setminus\{0\}$ via le chemin d'applications continues $f_t(x)=(1-t)x+t\sfrac x{\|x\|}$ qui vérifie $f_0=\mathrm{id}$ et $f_1=i\circ p$. D'où l'identité $i_*\circ p_*=\mathrm{id}_{H_*(\R^{n+1}\setminus\{0\})}$. On conclut que $i_*$ et $p_*$ sont inverses l'une de l'autre et donc pour $k\geq 0$,\vspace*{-3pt}\enlargethispage{\baselineskip}
\[H_k(\R^{n+1}\setminus\{0\})\simeq H_k(\mathbb{S}^n)\simeq
\begin{cases}
\mathbb{K} & \text{si }k=0,n,\\
\{0\} & \text{sinon.}
\end{cases}
\]
\end{exemple}

\subsection{Le théorème d'invariance du domaine}

Nous ne pouvons pas conclure ce texte sans citer cette application très classique de l'homologie.

\begin{theoreme}[Brouwer, 1912]
Soient $n,m$ des entiers naturels tels que $\R^n$ est homéomorphe à $\R^m$. Alors $n=m$.
\end{theoreme}

\begin{proof} Le cas où $m=0$ ou $n=0$ étant évidents, on suppose que $n,m>0$. Soit $f:\R^n\to\R^m$ un homéomorphisme. Quitte à composer $f$ par une translation, on peut supposer que $f(0)=0$ et donc que $f$ se restreint à un homéomorphisme de $\R^n\setminus\{0\}$ vers $\R^m\setminus\{0\}$. Pour des raisons de connexité, si $n=1$, alors $m=1$ aussi. Supposons donc dorénavant que $n>1$. D'après l'exemple \ref{ex:Rn-point}, $H_{n-1}(\R^n\setminus\{0\})$ est non trivial. D'après le corollaire \ref{cor:isom-homologie}, l'homologie $H_{n-1}(\R^m\setminus\{0\})$ doit donc aussi être non triviale. On conclut avec l'exemple \ref{ex:Rn-point} que $n=m$.
\end{proof}

\backmatter
\bibliographystyle{jepalpha+eid}
\bibliography{xups24-02}
\vspace*{-.5\baselineskip}
\end{document}
