// Product Construction public static Tuple <int, List <string> > FeedbackForProductConstruction <C>(List <DFA <C, string> > automataList, BooleanOperation boolOp, DFA <C, string> attemptDFA) { var correctDFA = AutomataUtilities.RelabelStatesFromNTuplesToStrings <C>(AutomataUtilities.ExecuteSetOperation(automataList, boolOp)); return(FeedbackForArbitraryConstructions <C, string>(correctDFA, attemptDFA)); }
// Powerset Construction public static Tuple <int, List <string> > FeedbackForPowersetConstruction <C>(NFA <C, string> N, DFA <C, string> attemptDFA) { var correctDFA = AutomataUtilities.RelabelStatesFromSetsToStrings <C>(N.NFAtoDFA()); return(FeedbackForArbitraryConstructions <C, string>(correctDFA, attemptDFA)); }