Source: https://math.unice.fr/~emiliton/OM2Resumecours.pdf