Source: https://hal.inria.fr/inria-00408716v1/document