Source: https://www.math.sciences.univ-nantes.fr/~rochet/enseignement/cours_agreg.pdf