internal override Automaton <BDD> getDFA(List <string> variables, BDD alphabet, CharSetSolver solver) { //Automaton<BDD> for formula var varCopy = new List <string>(variables); varCopy.Insert(0, variable); var autPhi = phi.getDFA(varCopy, alphabet, solver); //Remove first bit from each move var newMoves = new List <Move <BDD> >(); foreach (var move in autPhi.GetMoves()) { var newCond = solver.LShiftRight(move.Label); newMoves.Add(new Move <BDD>(move.SourceState, move.TargetState, newCond)); } var dfanew = Automaton <BDD> .Create(autPhi.InitialState, autPhi.GetFinalStates(), newMoves).Determinize(solver); var dfamin = dfanew.Minimize(solver); return(dfamin); }
internal override Automaton<BDD> getDFA(List<string> variables, BDD alphabet, CharSetSolver solver) { //Automaton<BDD> for formula var varCopy = new List<string>(variables); varCopy.Insert(0, variable); var autPhi = phi.getDFA(varCopy, alphabet, solver); //Remove first bit from each move var newMoves = new List<Move<BDD>>(); foreach (var move in autPhi.GetMoves()) { var newCond = solver.LShiftRight(move.Label); newMoves.Add(new Move<BDD>(move.SourceState, move.TargetState, newCond)); } var dfanew = Automaton<BDD>.Create(autPhi.InitialState, autPhi.GetFinalStates(), newMoves).Determinize(solver); var dfamin = dfanew.Minimize(solver); return dfamin; }