code: @Nullable
      @Override
      public MealyMachine<?, I, ?, O> findCounterExample(MealyMachine<?, I, ?, O> automaton,
                                                         Collection<? extends I> inputs, String property)
              throws ModelCheckingException {
          final File fsm = findCounterExampleFSM(automaton, inputs, property);
  
          try {
              final CompactMealy<I, O> result = fsm != null ? fsm2Mealy(fsm, automaton, inputs) : null;
  
              // check if we must keep the FSM
              if (!isKeepFiles() && fsm != null && !fsm.delete()) {
                  throw new ModelCheckingException("Could not delete file: " + fsm.getAbsolutePath());
              }
  
              return result == null ? null : new MealyMachine<Integer, I, CompactMealyTransition<O>, O>() {
  
                  private final Integer deadlock = result.getStates().stream().filter(
                          s -> result.getInputAlphabet().stream().allMatch(
                                  i -> result.getSuccessor(s, i) == null)).findFirst().orElseThrow(
                          () -> new ModelCheckingException("No deadlock found"));
  
                  @Override
                  public Word<O> computeOutput(Iterable<? extends I> input) {
                      final Integer state = getState(input);
  
                      return state != null && state.equals(deadlock) ? MealyMachine.super.computeOutput(input) : null;
                  }
  
                  @Nullable
                  @Override
                  public Integer getInitialState() {
                      return result.getInitialState();
                  }
  
                  @Nonnull
                  @Override
                  public Integer getSuccessor(CompactMealyTransition<O> transition) {
                      return result.getSuccessor(transition);
                  }
  
                  @Nullable
                  @Override
                  public CompactMealyTransition<O> getTransition(Integer state, @Nullable I input) {
                      return result.getTransition(state, input);
                  }
  
                  @Nullable
                  @Override
                  public O getTransitionOutput(CompactMealyTransition<O> transition) {
                      return result.getTransitionOutput(transition);
                  }
  
                  @Nonnull
                  @Override
                  public Collection<Integer> getStates() {
                      return result.getStates();
                  }
              };
          } catch (IOException | FSMParseException e) {
              throw new ModelCheckingException(e);
          }
      }
docs: Converts the FSM file to a {@link MealyMachine}.
  
  @see AbstractLTSmin#findCounterExample(Object, Collection, Object)