internal override Automaton <BDD> getAutomaton(SimpleList <string> variables, CharSetSolver solver) { //Automaton<BvSet> for formula var varCopy = variables.Append(X); var autPhi = phi.getAutomaton(varCopy, solver); var newMoves = new List <Move <BDD> >(); var k = variables.Count + ((int)solver.Encoding); foreach (var move in autPhi.GetMoves()) { var newCond = solver.OmitBit(move.Label, k); newMoves.Add(new Move <BDD>(move.SourceState, move.TargetState, newCond)); } var res = Automaton <BDD> .Create(solver, autPhi.InitialState, autPhi.GetFinalStates(), newMoves); if (MINIMIZE) { res = res.Determinize(solver).Minimize(solver); } return(res); }