Source: https://www.irit.fr/~Max.Chevalier/files/TheseFinale.pdf