public Automaton op(Automaton a) {
Automaton a1 = a.clone();
Map<State, State> map = new HashMap<State, State>();
Set<State> a1s = a1.getStates();
for (State s : a1s) {
State p = new State();
map.put(s, p);
if (s.isAccept()) {
p.setAccept(true);
s.setAccept(false);
}
}
for (State s : a1s) {
State p = map.get(s);
for (Transition t : s.getTransitions()) {
p.addTransition(new Transition(t.getMin(), t.getMax(), map.get(t.getDest())));
}
}
a1.setDeterministic(false);
for (State s : a1s) {
for (Transition t : map.get(s).getTransitions()) {