FSM Minimization
Look at each pair of states (s1, s2) in the FSM
If s1 produces different outputs from s2 , mark them non-equivalent
For each state pair (s1, s2) not yet marked, for each input i , find state pair (T(s1, i), T(s2, i))
If (T(s1, i), T(s2, i)) are marked non-equivalent for any i, mark (s1, s2) non-equivalent
Iterate until no more marking is possible
Unmarked state pairs are equivalent, simplify FSM accordingly