Source: http://www.info.univ-angers.fr/~gh/Tools/gap/these_diop.pdf