Source: http://eavr.u-strasbg.fr/~laroche/student/FIP/AutomFIP1.pdf