Source: https://www.labri.fr/perso/zemmari/dist/polycop.pdf