static public Automaton concatenate(Automaton a1,Automaton a2){
  return concatenate(Arrays.asList(a1,a2));
}

static public Automaton concatenate ( Automaton a1 , Automaton a2 ) { return concatenate ( Arrays . asList ( a1 , a2 ) ) ; }
returns an automaton that accepts the concatenation of the languages of the given automata . < p > complexity : linear in total number of states .
