/// <summary>
 /// Minimizes the dfa by reverse -> ToDFA -> reverse -> toDFA.
 /// </summary>
 /// <param name="dfa">The dfa.</param>
 /// <returns></returns>
 public static Automata <string> MinimizeDfa(Automata <string> dfa)
 {
     dfa.ReverseAutomata();
     dfa = ConvertToDFA(dfa);
     dfa.ReverseAutomata();
     return(ConvertToDFA(dfa));
 }