Source: http://www.i3s.unice.fr/~deantoni/teaching_resources/SI4/FSM/cours/1_Introduction.pdf