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