public static <S1, I, T1, SP, TP, S2, T2> Mapping<S1, S2> copy(AutomatonCopyMethod method,
                                                                   UniversalAutomaton<S1, ? super I, T1, ? extends SP, ? extends TP> in,
                                                                   Collection<? extends I> inputs,
                                                                   MutableAutomaton<S2, I, T2, ? super SP, ? super TP> out) {
        return copy(method, in, inputs, out, s -> true, (s, i, t) -> true);
    }
public static < S1 , I , T1 , SP , TP , S2 , T2 > Mapping < S1 , S2 > copy ( AutomatonCopyMethod method , UniversalAutomaton < S1 , ? super I , T1 , ? extends SP , ? extends TP > in , Collection < ? extends I > inputs , MutableAutomaton < S2 , I , T2 , ? super SP , ? super TP > out ) { return copy ( method , in , inputs , out , s -> true , ( s , i , t ) -> true ) ; }
Copies a {@link UniversalAutomaton} with compatible input alphabets and properties. States and transitions will
not be filtered.

@param <S1>
input automaton state type
@param <I>
input symbol type
@param <T1>
input automaton transition type
@param <SP>
state property type
@param <TP>
transition property type
@param <S2>
output automaton state type
@param <T2>
output automaton transition type
@param method
the copy method to use
@param in
the input automaton
@param inputs
the inputs to consider
@param out
the output automaton

@return a mapping from old to new states.