Source: https://hal.inria.fr/docs/00/85/08/77/PDF/AMARTIN_manuscrit.pdf