Source: https://www.enib.fr/~tisseau/pdf/paper/jt-rapport-3.pdf