Source: https://hal.inria.fr/inria-00072820/file/RR1999-56.pdf