Nullstellensatz#

Les zéros d’un polynôme reflètent la structure de l’idéal qu’il engendre — et réciproquement.

David Hilbert

Introduction#

Le Nullstellensatz — littéralement « théorème des zéros » — est l’un des résultats fondateurs de la géométrie algébrique. Énoncé par Hilbert en 1893, il établit une correspondance profonde entre les variétés algébriques (ensembles de zéros communs de polynômes) et les idéaux de l’anneau des polynômes. Cette dualité, analogue à la dualité points/hyperplans en géométrie projective, permet de traduire des problèmes géométriques en questions algébriques, et inversement. Le cadre naturel est celui d’un corps algébriquement clos : sur \(\mathbb{C}\), chaque idéal propre a des zéros, et la structure radicale de l’idéal capture exactement la géométrie de la variété.

Hide code cell source

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import seaborn as sns
from matplotlib.lines import Line2D

sns.set_theme(style="whitegrid", palette="muted", font_scale=1.1)

fig, axes = plt.subplots(2, 1, figsize=(10, 12))

# --- Panneau gauche : galerie de variétés affines dans R^2 ---
ax = axes[0]
ax.set_xlim(-2.2, 2.2)
ax.set_ylim(-2.2, 2.2)
ax.set_aspect('equal')
ax.axhline(0, color='gray', lw=0.5, alpha=0.5)
ax.axvline(0, color='gray', lw=0.5, alpha=0.5)

t = np.linspace(-2.2, 2.2, 800)

# Droite : Y = X - 0.5  <=> Y - X + 0.5 = 0
ax.plot(t, t - 0.5, color='steelblue', lw=2, label='Droite $Y=X-\\frac{1}{2}$')

# Cercle : X^2 + Y^2 = 1
theta = np.linspace(0, 2 * np.pi, 500)
ax.plot(np.cos(theta), np.sin(theta), color='tomato', lw=2, label='Cercle $X^2+Y^2=1$')

# Parabole : Y = X^2
t_par = np.linspace(-1.4, 1.4, 400)
ax.plot(t_par, t_par**2, color='goldenrod', lw=2, label='Parabole $Y=X^2$')

# Courbe de Neil : Y^2 = X^3  <=>  x > 0
t_neil = np.linspace(0, 2.2, 400)
ax.plot(t_neil**(2/3), t_neil, color='mediumseagreen', lw=2, label='Neil $Y^2=X^3$')
ax.plot(t_neil**(2/3), -t_neil, color='mediumseagreen', lw=2)

# Nœud : Y^2 = X^2(X+1)
t_noeu = np.linspace(-1, 2.2, 800)
y2 = t_noeu**2 * (t_noeu + 1)
mask = y2 >= 0
ax.plot(t_noeu[mask], np.sqrt(y2[mask]), color='mediumpurple', lw=2, label='Nœud $Y^2=X^2(X+1)$')
ax.plot(t_noeu[mask], -np.sqrt(y2[mask]), color='mediumpurple', lw=2)

ax.set_title('Galerie de variétés affines dans $\\mathbb{R}^2$', fontsize=12)
ax.legend(loc='upper left', fontsize=8.5)
ax.set_xlabel('$X$')
ax.set_ylabel('$Y$')

# --- Panneau droit : schéma de la correspondance V <-> I ---
ax2 = axes[1]
ax2.set_xlim(0, 10)
ax2.set_ylim(0, 8)
ax2.axis('off')
ax2.set_title('Correspondance $V(-)$ et $I(-)$', fontsize=12)

# Boîte gauche : variétés
ax2.add_patch(mpatches.FancyBboxPatch((0.3, 1.5), 3.8, 5,
    boxstyle='round,pad=0.2', fc='#d0e8f7', ec='steelblue', lw=2))
ax2.text(2.2, 7.1, 'Variétés de $\\mathbb{A}^n_K$', ha='center', fontsize=10,
         color='steelblue', fontweight='bold')
for y, txt in zip([5.8, 4.5, 3.2, 2.0],
                  ['$\\mathbb{A}^n_K$ (tout l\'espace)', 'Hypersurfaces', 'Courbes', 'Points $\\{a\\}$']):
    ax2.text(2.2, y, txt, ha='center', fontsize=9)

# Boîte droite : idéaux
ax2.add_patch(mpatches.FancyBboxPatch((5.9, 1.5), 3.8, 5,
    boxstyle='round,pad=0.2', fc='#fde8d0', ec='tomato', lw=2))
ax2.text(7.8, 7.1, 'Idéaux de $K[X_1,\\ldots,X_n]$', ha='center', fontsize=10,
         color='tomato', fontweight='bold')
for y, txt in zip([5.8, 4.5, 3.2, 2.0],
                  ['$(0)$ (idéal nul)', 'Idéaux premiers', 'Idéaux premiers', 'Idéaux maximaux']):
    ax2.text(7.8, y, txt, ha='center', fontsize=9)

# Flèches V(-) et I(-)
ax2.annotate('', xy=(5.7, 5.5), xytext=(4.3, 5.5),
             arrowprops=dict(arrowstyle='->', color='tomato', lw=2))
ax2.text(5.0, 5.75, '$I(-)$', ha='center', fontsize=10, color='tomato')

ax2.annotate('', xy=(4.3, 4.0), xytext=(5.7, 4.0),
             arrowprops=dict(arrowstyle='->', color='steelblue', lw=2))
ax2.text(5.0, 4.25, '$V(-)$', ha='center', fontsize=10, color='steelblue')

ax2.text(5.0, 2.8, 'Nullstellensatz :', ha='center', fontsize=9, fontstyle='italic')
ax2.text(5.0, 2.3, '$I(V(I)) = \\sqrt{I}$', ha='center', fontsize=11, color='darkgreen',
         fontweight='bold')

plt.show()
_images/5db197fcaff5e8db2ea5282ca6547931b29f6a546a3a922a21277f23955902e1.png

Variétés affines#

Définition 54 (Espace affine et variété affine)

Soit \(K\) un corps et \(n \geq 1\). L”espace affine \(\mathbb{A}^n_K = K^n\) est l’ensemble des \(n\)-uplets \((a_1, \ldots, a_n)\) à coefficients dans \(K\), vu comme espace géométrique (sans structure vectorielle privilégiée).

Pour \(S \subset K[X_1, \ldots, X_n]\), la variété affine définie par \(S\) est

\[V(S) = \bigl\{ x \in K^n : f(x) = 0 \;\forall f \in S \bigr\}.\]

Comme \(V(S) = V\bigl((S)\bigr)\)\((S)\) désigne l’idéal engendré par \(S\), on peut toujours supposer \(S\) est un idéal.

Remarque 28

Par le théorème de la base de Hilbert, \(K[X_1, \ldots, X_n]\) est un anneau nœthérien : tout idéal est de type fini. Ainsi toute variété affine est définie par un nombre fini de polynômes \(f_1, \ldots, f_r\), et l’on note \(V(f_1, \ldots, f_r)\).

Exemple 39

Voici des exemples fondamentaux de variétés affines dans \(\mathbb{A}^2_K\) :

  • Point : \(V(X - a, Y - b) = \{(a, b)\}\) pour \((a, b) \in K^2\).

  • Droite : \(V(aX + bY + c)\) pour \((a, b) \neq (0, 0)\).

  • Cercle : \(V(X^2 + Y^2 - 1)\).

  • Courbe de Neil (cuspide) : \(V(Y^2 - X^3)\). En \((0,0)\), la courbe a une pointe : le paramétrage \(t \mapsto (t^2, t^3)\) est bijectif mais pas un isomorphisme de variétés.

  • Nœud : \(V(Y^2 - X^2(X+1))\). En \((0,0)\), la courbe se croise elle-même.

Définition 55 (Idéal d’une variété)

Pour une partie \(V \subset K^n\) (pas nécessairement une variété), l”idéal de vanissement de \(V\) est

\[I(V) = \bigl\{ f \in K[X_1, \ldots, X_n] : f(a) = 0 \;\forall a \in V \bigr\}.\]

C’est bien un idéal de \(K[X_1, \ldots, X_n]\), et il est radical : si \(f^m \in I(V)\) pour un certain \(m \geq 1\), alors \(f \in I(V)\).

Définition 56 (Idéal radical)

Le radical d’un idéal \(I \subset A\) est

\[\sqrt{I} = \bigl\{ f \in A : \exists m \geq 1, \; f^m \in I \bigr\}.\]

Un idéal \(I\) est dit radical si \(I = \sqrt{I}\), c’est-à-dire si \(A/I\) est réduit (sans éléments nilpotents non nuls).

Proposition 20 (Propriétés élémentaires de \(V(-)\) et \(I(-)\))

Les applications \(V : \{\text{idéaux}\} \to \{\text{parties de } K^n\}\) et \(I : \{\text{parties de } K^n\} \to \{\text{idéaux radicaux}\}\) sont anti-monotones :

\[J_1 \subset J_2 \implies V(J_1) \supset V(J_2), \qquad V_1 \subset V_2 \implies I(V_1) \supset I(V_2).\]

De plus, pour tout idéal \(J\) et toute variété \(V\) :

\[V\bigl(I(V)\bigr) \supset V, \qquad I\bigl(V(J)\bigr) \supset J.\]

Enfin, \(I\bigl(V(J)\bigr) \supset \sqrt{J}\) (car si \(f^m\) s’annule sur \(V(J)\), alors \(f\) aussi).

Proof. L’anti-monotonie découle directement des définitions. Si \(a \in V\), alors tout \(f \in I(V)\) vérifie \(f(a) = 0\), donc \(a \in V(I(V))\), d’où \(V(I(V)) \supset V\). De même, si \(f \in J\), alors \(f\) s’annule sur \(V(J)\), donc \(f \in I(V(J))\).

Pour la dernière assertion : si \(f^m \in J\) et \(a \in V(J)\), alors \(f(a)^m = f^m(a) = 0\), donc \(f(a) = 0\) (dans un corps). Ainsi \(f \in I(V(J))\), et \(\sqrt{J} \subset I(V(J))\).

Correspondance idéaux et variétés#

La question centrale est : quand a-t-on l’égalité \(I(V(J)) = J\) ? La réponse naïve est fausse en général — il faut au moins que \(J\) soit radical et que le corps soit algébriquement clos. Le Nullstellensatz de Hilbert donne la condition précise.

Remarque 29

Sur \(\mathbb{R}\), la correspondance échoue même pour des idéaux radicaux. Par exemple \(J = (X^2 + 1) \subset \mathbb{R}[X]\) est radical (car \(X^2+1\) est irréductible, donc \((X^2+1)\) est premier), mais \(V(J) = \emptyset\), donc \(I(V(J)) = \mathbb{R}[X] \neq J\). L’hypothèse « algébriquement clos » est indispensable.

Définition 57 (Corps algébriquement clos)

Un corps \(K\) est algébriquement clos si tout polynôme non constant de \(K[X]\) admet au moins une racine dans \(K\). Exemples : \(\mathbb{C}\) (théorème de d’Alembert-Gauss), la clôture algébrique \(\overline{\mathbb{Q}}\), et plus généralement \(\overline{K}\) pour tout corps \(K\). Le corps \(\mathbb{R}\) n’est pas algébriquement clos.

Nullstellensatz faible#

Théorème 37 (Nullstellensatz faible (Hilbert, 1893))

Soit \(K\) un corps algébriquement clos et \(I \subsetneq K[X_1, \ldots, X_n]\) un idéal propre. Alors

\[V(I) \neq \emptyset.\]

Autrement dit, tout système polynomial \(\{f_1 = 0, \ldots, f_r = 0\}\) sans solution dans \(K^n\) engendre l’idéal entier \(K[X_1, \ldots, X_n]\) (i.e. \(1 \in (f_1, \ldots, f_r)\)).

Proof. La preuve classique utilise le lemme de normalisation de Noether et la montée des idéaux maximaux.

Étape 1 — Réduction à un idéal maximal. Puisque \(I\) est propre, il est contenu dans un idéal maximal \(\mathfrak{m}\) de \(K[X_1, \ldots, X_n]\) (par le lemme de Zorn). Il suffit de montrer que \(V(\mathfrak{m}) \neq \emptyset\).

Étape 2 — Le quotient est algébrique sur \(K\). Le corps \(L = K[X_1, \ldots, X_n]/\mathfrak{m}\) est une extension de corps de \(K\). Le lemme de normalisation de Noether affirme qu’il existe \(y_1, \ldots, y_d \in L\) algébriquement indépendants sur \(K\) tels que \(L\) est entier sur \(K[y_1, \ldots, y_d]\). Si \(d \geq 1\), alors \(K[y_1] \cong K[X]\) et \(L\) est entier sur \(K[X]\), mais \(K[X]\) n’est pas un corps — contradiction avec le fait que \(L\) est un corps et que tout élément entier sur un anneau de Dedekind vérifie certaines propriétés. Donc \(d = 0\) et \(L\) est algébrique sur \(K\).

Étape 3 — \(K\) algébriquement clos implique \(L = K\). Puisque \(K\) est algébriquement clos, toute extension algébrique de \(K\) est triviale : \(L = K\).

Étape 4 — Construction du point. La surjection \(\pi : K[X_1, \ldots, X_n] \twoheadrightarrow L = K\) envoie \(X_i\) sur \(a_i = \pi(X_i) \in K\). Pour tout \(f \in \mathfrak{m}\), on a \(\pi(f) = f(a_1, \ldots, a_n) = 0\). Donc \((a_1, \ldots, a_n) \in V(\mathfrak{m}) \subset V(I)\).

Nullstellensatz fort#

Théorème 38 (Nullstellensatz fort (Hilbert, 1893))

Soit \(K\) un corps algébriquement clos et \(I \subset K[X_1, \ldots, X_n]\) un idéal. Alors

\[I\bigl(V(I)\bigr) = \sqrt{I}.\]

La preuve du Nullstellensatz fort se ramène au cas faible grâce à une astuce élégante due à Rabinowitsch (1929).

Proof. L’inclusion \(\sqrt{I} \subset I(V(I))\) est déjà établie (Proposition 08-01). Il reste à montrer que si \(f \in I(V(I))\), alors \(f^m \in I\) pour un certain \(m \geq 1\).

Astuce de Rabinowitsch. Soit \(f \in I(V(I))\), c’est-à-dire \(f\) s’annule en tout point de \(V(I)\). Introduire une nouvelle variable \(T\) et considérer l’idéal

\[J = I \cdot K[X_1, \ldots, X_n, T] + (1 - T \cdot f) \subset K[X_1, \ldots, X_n, T].\]

Un point \((a, t) \in K^{n+1}\) est dans \(V(J)\) si et seulement si \(a \in V(I)\) et \(1 - t \cdot f(a) = 0\), i.e. \(f(a) \neq 0\) et \(t = 1/f(a)\). Mais \(f\) s’annule sur \(V(I)\), donc \(V(J) = \emptyset\).

Application du Nullstellensatz faible. Comme \(V(J) = \emptyset\) et \(K\) est algébriquement clos, \(J = K[X_1, \ldots, X_n, T]\), donc \(1 \in J\). Il existe \(g_i \in K[X_1, \ldots, X_n, T]\) et \(f_i \in I\) tels que

\[1 = \sum_i g_i \cdot f_i + h \cdot (1 - T f)\]

dans \(K[X_1, \ldots, X_n, T]\), pour un certain \(h \in K[X_1, \ldots, X_n, T]\).

Substitution \(T \leftarrow 1/f\). En substituant \(T = 1/f\) dans l’égalité ci-dessus (dans le corps des fractions \(K(X_1, \ldots, X_n)\)), le terme \(1 - Tf\) disparaît :

\[1 = \sum_i g_i(X_1, \ldots, X_n, 1/f) \cdot f_i.\]

En multipliant par \(f^m\) pour \(m\) suffisamment grand (le degré maximal en \(T\) des \(g_i\)) :

\[f^m = \sum_i h_i \cdot f_i \in I,\]

\(h_i = f^m \cdot g_i(X_1, \ldots, X_n, 1/f) \in K[X_1, \ldots, X_n]\). Donc \(f \in \sqrt{I}\).

Corollaire 12 (Bijection entre idéaux radicaux et variétés)

Soit \(K\) algébriquement clos. Les applications \(V(-)\) et \(I(-)\) établissent une bijection anti-ordonnée entre :

\[\left\{ \text{idéaux radicaux de } K[X_1, \ldots, X_n] \right\} \longleftrightarrow \left\{ \text{variétés affines de } \mathbb{A}^n_K \right\}.\]

Plus précisément : \(V\) et \(I\) sont inverses l’une de l’autre, et l’on a \(V(I_1) \subset V(I_2) \iff I_1 \supset I_2\).

Proof. Par le Nullstellensatz fort, \(I(V(J)) = \sqrt{J}\). Si \(J\) est radical, \(\sqrt{J} = J\), donc \(I(V(J)) = J\). Réciproquement, \(V(I(V)) = V\) pour toute variété \(V\) (exercice standard utilisant l’anti-monotonie et \(V(I(V)) \supset V\)). L’anti-monotonie des deux applications assure que la bijection renverse les inclusions.

Hide code cell source

fig, axes = plt.subplots(2, 1, figsize=(10, 12))

# --- Panneau gauche : illustration I = (X^2, XY), sqrt(I) = (X), V(I) = axe Y ---
ax = axes[0]
ax.set_xlim(-2.5, 2.5)
ax.set_ylim(-2.5, 2.5)
ax.set_aspect('equal')
ax.axhline(0, color='gray', lw=0.5, alpha=0.4)
ax.axvline(0, color='gray', lw=0.5, alpha=0.4)

# V(I) = V(X^2, XY) = {X=0} = axe Y
ax.axvline(0, color='steelblue', lw=4, alpha=0.7, label='$V(I) = V(\\sqrt{I}) = \\{X=0\\}$ (axe $Y$)')

# Annoter
ax.text(0.15, 2.1, '$V(I) = V(X) = $ axe $Y$', fontsize=9, color='steelblue')
ax.text(-2.3, -2.2,
    r'$I = (X^2, XY)$' '\n' '$\\sqrt{I} = (X)$' '\n' '$I \\subsetneq \\sqrt{I} = I(V(I))$',
    fontsize=9.5,
    bbox=dict(fc='#fff3e0', ec='tomato', boxstyle='round,pad=0.4'))

# Diagramme d'emboîtement des idéaux (flèches textuelles)
for y, txt, col in [
    (1.5, '$K[X,Y]$ (idéal entier)', 'gray'),
    (0.7, '$\\sqrt{I} = (X)$ (idéal radical)', 'steelblue'),
    (-0.1, '$I = (X^2, XY)$ (non radical)', 'tomato'),
    (-0.9, '$(0)$ (idéal nul)', 'gray'),
]:
    ax.text(-2.3, y, txt, fontsize=8.5, color=col,
            bbox=dict(fc='white', ec=col, boxstyle='round,pad=0.2', alpha=0.8))

ax.set_title(r'Nullstellensatz fort : $I = (X^2, XY)$' '\n' '$I(V(I)) = \\sqrt{I} = (X)$', fontsize=11)
ax.legend(loc='lower right', fontsize=8.5)
ax.set_xlabel('$X$')
ax.set_ylabel('$Y$')

# --- Panneau droit : intersection X^2+Y^2=1 et Y=X^2 ---
ax2 = axes[1]
ax2.set_xlim(-1.8, 1.8)
ax2.set_ylim(-0.5, 2.2)
ax2.set_aspect('equal')
ax2.axhline(0, color='gray', lw=0.5, alpha=0.4)
ax2.axvline(0, color='gray', lw=0.5, alpha=0.4)

# Cercle
theta = np.linspace(0, 2 * np.pi, 500)
ax2.plot(np.cos(theta), np.sin(theta), color='tomato', lw=2, label='$X^2+Y^2=1$')

# Parabole
t_p = np.linspace(-1.4, 1.4, 400)
ax2.plot(t_p, t_p**2, color='steelblue', lw=2, label='$Y=X^2$')

# Points d'intersection réels : X^4 + X^2 - 1 = 0, X^2 = (-1 + sqrt(5))/2
X2_pos = (-1 + np.sqrt(5)) / 2
X_pos = np.sqrt(X2_pos)
Y_pos = X2_pos

pts_reels = [(-X_pos, Y_pos), (X_pos, Y_pos)]
for (px, py) in pts_reels:
    ax2.scatter([px], [py], s=120, color='darkgreen', zorder=6)
    ax2.annotate(f'$({px:.3f},\\, {py:.3f})$',
                 xy=(px, py), xytext=(px + 0.1, py + 0.15),
                 fontsize=8, color='darkgreen',
                 arrowprops=dict(arrowstyle='->', color='darkgreen', lw=1))

ax2.text(-1.7, 1.95,
    r'Intersections réelles' '\n' '$X^2 = \\frac{-1+\\sqrt{5}}{2}$' '\n' r'(2 pts réels, 2 pts complexes)',
    fontsize=8.5,
    bbox=dict(fc='#e8f7e0', ec='darkgreen', boxstyle='round,pad=0.4'))

ax2.set_title('Intersection de $X^2+Y^2=1$ et $Y=X^2$ sur $\\mathbb{R}$' '\n' '(4 intersections dans $\\mathbb{C}$)', fontsize=11)
ax2.legend(loc='upper right', fontsize=9)
ax2.set_xlabel('$X$')
ax2.set_ylabel('$Y$')

plt.show()
_images/7e82c71d709884951b7691df2cd02b5b465e26b90e51ef24ce3b3a5fa5a2cd9c.png

Traduction géométrique#

Le Nullstellensatz établit un dictionnaire précis entre propriétés algébriques des idéaux et propriétés géométriques des variétés.

Définition 58 (Variété irréductible)

Une variété affine \(V \subset \mathbb{A}^n_K\) est irréductible si elle ne peut pas s’écrire comme réunion \(V = V_1 \cup V_2\) de deux variétés propres (\(V_1, V_2 \subsetneq V\)). Toute variété se décompose de façon unique en réunion finie de composantes irréductibles (décomposition primaire).

Théorème 39 (Dictionnaire algèbre-géométrie)

Soit \(K\) algébriquement clos. Sous la bijection du Corollaire 08-01 :

Algèbre (idéaux radicaux de \(K[\mathbf{X}]\))

Géométrie (variétés de \(\mathbb{A}^n_K\))

Idéal radical \(I\)

Variété fermée \(V(I)\)

Idéal premier \(\mathfrak{p}\)

Variété irréductible

Idéal maximal \(\mathfrak{m}\)

Point \(\{a\} \in \mathbb{A}^n_K\)

Inclusion \(I \subset J\)

Inclusion \(V(J) \subset V(I)\)

Somme \(I + J\)

Intersection \(V(I) \cap V(J)\)

Intersection \(I \cap J\)

Réunion \(V(I) \cup V(J)\)

Radical \(\sqrt{I}\)

Même variété que \(I\)

Proof. Les idéaux premiers correspondent aux variétés irréductibles car \(I(\mathfrak{p})\) est premier si et seulement si \(K[\mathbf{X}]/\mathfrak{p}\) est intègre, ce qui correspond à l’irréductibilité de \(V(\mathfrak{p})\). Pour les idéaux maximaux : si \(\mathfrak{m}\) est maximal, \(K[\mathbf{X}]/\mathfrak{m}\) est un corps algébrique sur \(K\), donc égal à \(K\) (car \(K\) est algébriquement clos), et l’évaluation montre que \(\mathfrak{m} = (X_1 - a_1, \ldots, X_n - a_n)\) pour un unique \((a_1, \ldots, a_n) \in K^n\).

Proposition 21 (Idéaux maximaux et points)

Soit \(K\) algébriquement clos. Les idéaux maximaux de \(K[X_1, \ldots, X_n]\) sont exactement les idéaux de la forme

\[\mathfrak{m}_a = (X_1 - a_1, \ldots, X_n - a_n), \quad a = (a_1, \ldots, a_n) \in K^n.\]

En particulier \(K[X_1, \ldots, X_n]/\mathfrak{m}_a \cong K\) via l’évaluation en \(a\).

Proof. L’idéal \(\mathfrak{m}_a = \ker(\mathrm{ev}_a)\)\(\mathrm{ev}_a : K[\mathbf{X}] \to K\) est l’évaluation en \(a\). Comme \(\mathrm{ev}_a\) est surjectif, \(K[\mathbf{X}]/\mathfrak{m}_a \cong K\) est un corps, donc \(\mathfrak{m}_a\) est maximal. Réciproquement, le Nullstellensatz faible assure que tout idéal maximal a un zéro \(a \in K^n\), donc qu’il contient \(\mathfrak{m}_a\), et par maximalité il est égal à \(\mathfrak{m}_a\).

Exemples et applications#

Exemple 40 (Résolution d’un système polynomial)

Cherchons les points d’intersection de \(C_1 : X^2 + Y^2 = 1\) et \(C_2 : Y = X^2\) dans \(\mathbb{A}^2_\mathbb{C}\).

L’idéal \(I = (X^2 + Y^2 - 1, \; Y - X^2) \subset \mathbb{C}[X, Y]\).

Par substitution : remplacer \(Y = X^2\) dans la première équation donne \(X^4 + X^2 - 1 = 0\).

Ce polynôme en \(X^2\) a pour discriminant \(\Delta = 1 + 4 = 5\), donc \(X^2 = \frac{-1 \pm \sqrt{5}}{2}\).

  • \(X^2 = \frac{-1 + \sqrt{5}}{2} \approx 0{,}618\) donne deux racines réelles \(X = \pm \sqrt{\frac{-1+\sqrt{5}}{2}}\).

  • \(X^2 = \frac{-1 - \sqrt{5}}{2} < 0\) donne deux racines complexes pures \(X = \pm i\sqrt{\frac{1+\sqrt{5}}{2}}\).

Ainsi \(V(I)\) contient exactement 4 points dans \(\mathbb{A}^2_\mathbb{C}\) (2 réels, 2 complexes), conformément à la borne de Bézout : \(\deg(X^2+Y^2-1) \times \deg(Y-X^2) = 2 \times 2 = 4\).

Exemple 41 (Problème d’appartenance à un idéal)

Question : le polynôme \(f = XY^2 + X\) appartient-il à \(I = (X^2 + Y^2 - 1)\) dans \(\mathbb{C}[X,Y]\) ?

Par le Nullstellensatz, \(f \in I\) si et seulement si \(f\) s’annule sur \(V(I)\). Or \(V(I) = \{X^2+Y^2=1\}\), et sur cette variété \(f = X(Y^2 + 1) = X(1 - X^2 + 1) = X(2 - X^2)\). Cette expression n’est pas identiquement nulle sur le cercle (par exemple en \((1, 0)\) : \(f(1,0) = 1 \cdot 1 = 1 \neq 0\)). Donc \(f \notin I\).

Plus généralement, le problème d’appartenance (\(f \in I\) ?) se résout via des bases de Gröbner (algorithme de Buchberger), qui permettent de calculer un reste nul si et seulement si \(f \in I\).

Proposition 22 (Borne de Bézout)

Soit \(K\) algébriquement clos et \(f_1, \ldots, f_n \in K[X_1, \ldots, X_n]\) des polynômes de degrés \(d_1, \ldots, d_n\). Si le système \(f_1 = \cdots = f_n = 0\) a un nombre fini de solutions dans \(\mathbb{A}^n_K\), alors ce nombre est au plus

\[d_1 \cdot d_2 \cdots d_n.\]

Cette borne est atteinte (comptée avec multiplicité) lorsque les variétés \(V(f_i)\) sont en position générale.

Remarque 30

La borne de Bézout est une conséquence du Nullstellensatz et de la théorie de l’intersection en géométrie algébrique. Dans l’exemple précédent, deux courbes de degrés 2 se coupent en au plus \(2 \times 2 = 4\) points, et l’on trouve bien 4 points dans \(\mathbb{C}^2\).

Exemple 42 (Idéaux non radicaux et géométrie)

Considérons \(I = (X^2, XY) \subset K[X, Y]\) avec \(K\) algébriquement clos.

  • \(V(I) = \{(x,y) : x^2 = 0 \text{ et } xy = 0\} = \{x = 0\}\) (l’axe \(Y\)).

  • \(I(V(I)) = I(\{X=0\}) = (X)\) (les polynômes s’annulant sur l’axe \(Y\)).

  • \(\sqrt{I} = (X)\) (car \(X \in \sqrt{I}\) puisque \(X^2 \in I\), et \(\sqrt{(X)} = (X)\)).

Ainsi \(I \subsetneq \sqrt{I} = I(V(I))\), ce qui illustre le Nullstellensatz fort : l’information géométrique de \(V(I)\) capture \(\sqrt{I}\), et non \(I\) lui-même. L’idéal \(I = (X^2, XY)\) est « plus fin » que sa variété — il contient de l’information sur les multiplicités (la droite \(X=0\) est tangente au schéma défini par \(I\) avec une certaine multiplicité).

Théorème 40 (Lemme de normalisation de Noether (énoncé))

Soit \(K\) un corps et \(A = K[X_1, \ldots, X_n]/I\) une \(K\)-algèbre de type fini. Il existe \(y_1, \ldots, y_d \in A\) algébriquement indépendants sur \(K\) (avec \(d = \dim A\) la dimension de Krull) tels que \(A\) est entière sur la sous-algèbre polynomiale \(K[y_1, \ldots, y_d]\).

Ce lemme joue un rôle clé dans la preuve du Nullstellensatz faible (étape 2 de la preuve du Théorème 08-01) : il garantit que le corps résiduel d’un idéal maximal est une extension algébrique de \(K\), donc égal à \(K\) si \(K\) est algébriquement clos.

Corollaire 13 (Principe des zéros)

Soit \(K\) algébriquement clos et \(f_1, \ldots, f_r, g \in K[X_1, \ldots, X_n]\). Alors les deux assertions suivantes sont équivalentes :

  1. Tout point de \(V(f_1, \ldots, f_r)\) est un zéro de \(g\).

  2. Il existe \(m \geq 1\) et \(h_1, \ldots, h_r \in K[X_1, \ldots, X_n]\) tels que \(g^m = \sum_{i=1}^r h_i f_i\).

Ce « principe des zéros » est la formulation opérationnelle la plus utilisée du Nullstellensatz fort.

Proof. L’assertion (1) signifie \(g \in I(V(I))\) avec \(I = (f_1, \ldots, f_r)\). Par le Nullstellensatz fort, \(I(V(I)) = \sqrt{I}\). Or \(g \in \sqrt{I}\) si et seulement si \(g^m \in I = (f_1, \ldots, f_r)\) pour un certain \(m\), ce qui est exactement l’assertion (2).

Résumé#

Concept

Propriété clé

Variété affine \(V(S)\)

Ensemble de zéros communs de \(S \subset K[X_1,\ldots,X_n]\) dans \(\mathbb{A}^n_K\)

Idéal de vanissement \(I(V)\)

Polynômes s’annulant sur \(V\) ; toujours radical

Idéal radical \(\sqrt{I}\)

\(\{f : f^m \in I\}\) ; \(A/I\) réduit \(\iff\) \(I = \sqrt{I}\)

Anti-monotonie

\(I \subset J \implies V(J) \subset V(I)\) ; \(V_1 \subset V_2 \implies I(V_2) \subset I(V_1)\)

Corps algébriquement clos

Tout polynôme non constant a une racine ; exemples : \(\mathbb{C}\), \(\overline{\mathbb{Q}}\)

Nullstellensatz faible

\(K\) alg. clos, \(I\) propre \(\implies V(I) \neq \emptyset\)

Nullstellensatz fort

\(K\) alg. clos \(\implies I(V(I)) = \sqrt{I}\)

Astuce de Rabinowitsch

Ramène le cas fort au cas faible via la variable auxiliaire \(T\) et \((1 - Tf)\)

Bijection idéaux / variétés

Idéaux radicaux \(\leftrightarrow\) variétés fermées (anti-ordonnée)

Idéaux premiers

Correspondent aux variétés irréductibles

Idéaux maximaux

Correspondent aux points ; \(\mathfrak{m}_a = (X_1-a_1,\ldots,X_n-a_n)\)

Borne de Bézout

\(n\) hypersurfaces de degrés \(d_1,\ldots,d_n\) ont au plus \(d_1\cdots d_n\) points communs

Problème d’appartenance

\(f \in I \iff f \equiv 0 \pmod{I}\) ; calculable via bases de Gröbner