@Override public Template chooseNextTemplate() { Template choice = null; boolean another = strategy.advance(); if (!another) { return null; } TemplateChooserMethod method = strategy.getMethod(); InfixReln relation = strategy.getRelation(); logger.log(Level.ALL, "Template choice method:", method, "Template infix relation:", relation); switch (method) { case TOPLEVELTERMFORMS: choice = topLevelTermFormsMethod(relation); break; case EXITHEADNEGATION: choice = exitHeadNegationMethod(relation); break; case EXITTAILCOMB: choice = exitTailIndexOneFreeCombMethod(relation); break; case LOOPVARSFREECOMB: choice = loopVarsFreeCombMethod(relation); break; case LOOPVARSFREECOMBANDLOOPHEADFREECOMB: choice = loopVarsAndHeadFreeCombMethod(relation); break; } return choice; }
@Override public boolean run(ReachedSet pReachedSet) throws CPAException, InterruptedException { boolean result = false; logger.log(Level.INFO, "Start analysis."); result = analysis.run(pReachedSet); if (result) { logger.log(Level.INFO, "Start property checking."); cpa.getPropChecker().satisfiesProperty(pReachedSet.asCollection()); } logger.log(Level.INFO, "Finished analysis"); return result; }