Extend all the basic operation on automata to a Collection of Automaton. For example, we already have the intersect(Automaton a1, Automaton a2) function. We could add a new function intersect(Collection<Automaton> automata) performs the intersection between all the automaton in the Collection.