Source: https://webusers.imj-prg.fr/~dario.cordero/Docs/3M210/18_19/chap_2_et_3.pdf