Source: https://www.irif.fr/~roziere/m2cf2/ex_prim_rec.pdf