Source: https://www.rocq.inria.fr/axis/modulad/numero-35/Tutoriel-confais-35/confais-35.pdf