Source: http://www.siloged.fr/cours/td/synt_infaco/synthese_infaco_corr.pdf