private ConfigurableProgramAnalysis getCPA(
     ReachedSetFactory reachedSetFactory, Configuration singleConfig1)
     throws InvalidConfigurationException, CPAException {
   CPABuilder builder1 =
       new CPABuilder(singleConfig1, logger, shutdownNotifier, reachedSetFactory);
   ConfigurableProgramAnalysis cpa1 =
       builder1.buildCPAs(cfa, specification, new AggregatedReachedSets());
   if (cpa1 instanceof StatisticsProvider) {
     ((StatisticsProvider) cpa1).collectStatistics(stats.getSubStatistics());
   }
   return cpa1;
 }
  private Algorithm getAlgorithm(
      ShutdownNotifier singleShutdownNotifier,
      Configuration singleConfig,
      LogManager singleLogger,
      ConfigurableProgramAnalysis cpa)
      throws InvalidConfigurationException, CPAException {
    singleLogger.log(Level.FINE, "Creating algorithms");
    Algorithm algorithm =
        CPAAlgorithm.create(cpa, singleLogger, singleConfig, singleShutdownNotifier);

    CEGARAlgorithm cegarAlgorithm = new CEGARAlgorithm(algorithm, cpa, singleConfig, singleLogger);
    cegarAlgorithm.collectStatistics(stats.getSubStatistics());

    return cegarAlgorithm;
  }