code: public static void initCompleteDeterministic(PaigeTarjan pt,
                                                   SimpleDeterministicAutomaton.FullIntAbstraction absAutomaton,
                                                   IntFunction<?> initialClassification,
                                                   boolean pruneUnreachable) {
  
          if (pruneUnreachable) {
              initCompleteDeterministicPrune(pt, absAutomaton, initialClassification);
          } else {
              initCompleteDeterministicNoPrune(pt, absAutomaton, initialClassification);
          }
      }
docs: Initializes the partition refinement data structure from a given abstracted deterministic automaton, partitioning
  states according to the given classification function.
  <p>
  The return value of the {@code initialClassification} function can be any valid {@code Object} reference (even
  {@code null}). States are initially placed in the same partition class if their return values from applying
  {@code initialClassification} have the same hash code (determined according to {@link Objects#hashCode(Object)})
  and are equal (determined according to {@link Objects#equals(Object, Object)}.
  
  @param pt
  the partition refinement data structure
  @param absAutomaton
  the abstraction of the input automaton
  @param initialClassification
  the function determining the initial classification
  @param pruneUnreachable
  whether or not to prune unreachable states during initialization