|  | 
| template<class SymbolType , class StateType > | 
| static automaton::EpsilonNFA< SymbolType, ext::pair< StateType, unsigned > > | unification (const automaton::EpsilonNFA< SymbolType, StateType > &first, const automaton::EpsilonNFA< SymbolType, StateType > &second) | 
|  | 
| template<class SymbolType , class StateType > | 
| static automaton::NFA< SymbolType, ext::pair< StateType, unsigned > > | unification (const automaton::NFA< SymbolType, StateType > &first, const automaton::NFA< SymbolType, StateType > &second) | 
|  | 
| template<class SymbolType , class StateType > | 
| static automaton::NFA< SymbolType, ext::pair< StateType, unsigned > > | unification (const automaton::DFA< SymbolType, StateType > &first, const automaton::DFA< SymbolType, StateType > &second) | 
|  | 
Union of two finite automata. For finite automata A1, A2, we create a finite automaton A such that L(A) = L(A1) \cup L(A2). This method does not use epsilon transitions in finite automata (unless the original automata are epsilon automata).