/usr/bin/java -ea -Xmx8000000000 -Xss4m -jar ./plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata ./data -tc ../../../trunk/examples/toolchains/AutomizerC.xml -s ../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default.epf -i ../../../trunk/examples/svcomp/recursive/recHanoi01.c -------------------------------------------------------------------------------- This is Ultimate 0.1.25-46f3038-m [2020-07-08 12:01:48,486 INFO L177 SettingsManager]: Resetting all preferences to default values... [2020-07-08 12:01:48,489 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2020-07-08 12:01:48,508 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2020-07-08 12:01:48,508 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2020-07-08 12:01:48,510 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2020-07-08 12:01:48,513 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2020-07-08 12:01:48,523 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2020-07-08 12:01:48,527 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2020-07-08 12:01:48,530 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2020-07-08 12:01:48,532 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2020-07-08 12:01:48,534 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2020-07-08 12:01:48,534 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2020-07-08 12:01:48,536 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2020-07-08 12:01:48,538 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2020-07-08 12:01:48,539 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2020-07-08 12:01:48,541 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2020-07-08 12:01:48,542 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2020-07-08 12:01:48,543 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2020-07-08 12:01:48,548 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2020-07-08 12:01:48,553 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2020-07-08 12:01:48,556 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2020-07-08 12:01:48,558 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2020-07-08 12:01:48,558 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2020-07-08 12:01:48,561 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2020-07-08 12:01:48,562 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2020-07-08 12:01:48,562 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2020-07-08 12:01:48,564 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2020-07-08 12:01:48,565 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2020-07-08 12:01:48,566 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2020-07-08 12:01:48,566 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2020-07-08 12:01:48,567 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2020-07-08 12:01:48,568 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2020-07-08 12:01:48,569 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2020-07-08 12:01:48,570 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2020-07-08 12:01:48,570 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2020-07-08 12:01:48,571 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2020-07-08 12:01:48,571 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2020-07-08 12:01:48,571 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2020-07-08 12:01:48,572 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2020-07-08 12:01:48,573 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2020-07-08 12:01:48,574 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default.epf [2020-07-08 12:01:48,609 INFO L113 SettingsManager]: Loading preferences was successful [2020-07-08 12:01:48,609 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2020-07-08 12:01:48,612 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2020-07-08 12:01:48,612 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2020-07-08 12:01:48,612 INFO L138 SettingsManager]: * Use SBE=true [2020-07-08 12:01:48,612 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2020-07-08 12:01:48,613 INFO L138 SettingsManager]: * sizeof long=4 [2020-07-08 12:01:48,613 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2020-07-08 12:01:48,613 INFO L138 SettingsManager]: * sizeof POINTER=4 [2020-07-08 12:01:48,613 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2020-07-08 12:01:48,613 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2020-07-08 12:01:48,614 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2020-07-08 12:01:48,614 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2020-07-08 12:01:48,614 INFO L138 SettingsManager]: * sizeof long double=12 [2020-07-08 12:01:48,619 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2020-07-08 12:01:48,619 INFO L138 SettingsManager]: * Use constant arrays=true [2020-07-08 12:01:48,620 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2020-07-08 12:01:48,620 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2020-07-08 12:01:48,620 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2020-07-08 12:01:48,620 INFO L138 SettingsManager]: * To the following directory=./dump/ [2020-07-08 12:01:48,620 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2020-07-08 12:01:48,621 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2020-07-08 12:01:48,621 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2020-07-08 12:01:48,625 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2020-07-08 12:01:48,626 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2020-07-08 12:01:48,626 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2020-07-08 12:01:48,626 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2020-07-08 12:01:48,626 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2020-07-08 12:01:48,626 INFO L138 SettingsManager]: * Trace refinement exception blacklist=NONE [2020-07-08 12:01:48,627 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2020-07-08 12:01:48,905 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2020-07-08 12:01:48,926 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2020-07-08 12:01:48,929 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2020-07-08 12:01:48,931 INFO L271 PluginConnector]: Initializing CDTParser... [2020-07-08 12:01:48,931 INFO L275 PluginConnector]: CDTParser initialized [2020-07-08 12:01:48,932 INFO L429 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/recursive/recHanoi01.c [2020-07-08 12:01:49,009 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/4904966f7/4ba2a7c5c4b54e1abfd1d4a3dc6e5e04/FLAG8c7117f78 [2020-07-08 12:01:49,449 INFO L306 CDTParser]: Found 1 translation units. [2020-07-08 12:01:49,450 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/recursive/recHanoi01.c [2020-07-08 12:01:49,457 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/4904966f7/4ba2a7c5c4b54e1abfd1d4a3dc6e5e04/FLAG8c7117f78 [2020-07-08 12:01:49,826 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/4904966f7/4ba2a7c5c4b54e1abfd1d4a3dc6e5e04 [2020-07-08 12:01:49,834 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2020-07-08 12:01:49,836 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2020-07-08 12:01:49,837 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2020-07-08 12:01:49,838 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2020-07-08 12:01:49,841 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2020-07-08 12:01:49,843 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 08.07 12:01:49" (1/1) ... [2020-07-08 12:01:49,846 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@d9bea75 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.07 12:01:49, skipping insertion in model container [2020-07-08 12:01:49,847 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 08.07 12:01:49" (1/1) ... [2020-07-08 12:01:49,854 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2020-07-08 12:01:49,874 INFO L178 MainTranslator]: Built tables and reachable declarations [2020-07-08 12:01:50,052 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-08 12:01:50,057 INFO L203 MainTranslator]: Completed pre-run [2020-07-08 12:01:50,078 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-08 12:01:50,093 INFO L208 MainTranslator]: Completed translation [2020-07-08 12:01:50,094 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.07 12:01:50 WrapperNode [2020-07-08 12:01:50,094 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2020-07-08 12:01:50,095 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2020-07-08 12:01:50,095 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2020-07-08 12:01:50,095 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2020-07-08 12:01:50,109 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.07 12:01:50" (1/1) ... [2020-07-08 12:01:50,109 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.07 12:01:50" (1/1) ... [2020-07-08 12:01:50,115 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.07 12:01:50" (1/1) ... [2020-07-08 12:01:50,116 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.07 12:01:50" (1/1) ... [2020-07-08 12:01:50,121 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.07 12:01:50" (1/1) ... [2020-07-08 12:01:50,124 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.07 12:01:50" (1/1) ... [2020-07-08 12:01:50,125 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.07 12:01:50" (1/1) ... [2020-07-08 12:01:50,127 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2020-07-08 12:01:50,127 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2020-07-08 12:01:50,127 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2020-07-08 12:01:50,127 INFO L275 PluginConnector]: RCFGBuilder initialized [2020-07-08 12:01:50,128 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.07 12:01:50" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2020-07-08 12:01:50,266 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2020-07-08 12:01:50,266 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2020-07-08 12:01:50,267 INFO L138 BoogieDeclarations]: Found implementation of procedure hanoi [2020-07-08 12:01:50,267 INFO L138 BoogieDeclarations]: Found implementation of procedure applyHanoi [2020-07-08 12:01:50,267 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2020-07-08 12:01:50,267 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_error [2020-07-08 12:01:50,268 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2020-07-08 12:01:50,268 INFO L130 BoogieDeclarations]: Found specification of procedure hanoi [2020-07-08 12:01:50,268 INFO L130 BoogieDeclarations]: Found specification of procedure applyHanoi [2020-07-08 12:01:50,268 INFO L130 BoogieDeclarations]: Found specification of procedure main [2020-07-08 12:01:50,268 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2020-07-08 12:01:50,269 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2020-07-08 12:01:50,602 INFO L290 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2020-07-08 12:01:50,603 INFO L295 CfgBuilder]: Removed 0 assume(true) statements. [2020-07-08 12:01:50,608 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 08.07 12:01:50 BoogieIcfgContainer [2020-07-08 12:01:50,608 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2020-07-08 12:01:50,610 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2020-07-08 12:01:50,610 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2020-07-08 12:01:50,615 INFO L275 PluginConnector]: TraceAbstraction initialized [2020-07-08 12:01:50,615 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 08.07 12:01:49" (1/3) ... [2020-07-08 12:01:50,616 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@389ee0e7 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 08.07 12:01:50, skipping insertion in model container [2020-07-08 12:01:50,616 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.07 12:01:50" (2/3) ... [2020-07-08 12:01:50,617 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@389ee0e7 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 08.07 12:01:50, skipping insertion in model container [2020-07-08 12:01:50,617 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 08.07 12:01:50" (3/3) ... [2020-07-08 12:01:50,620 INFO L109 eAbstractionObserver]: Analyzing ICFG recHanoi01.c [2020-07-08 12:01:50,633 INFO L157 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2020-07-08 12:01:50,641 INFO L169 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2020-07-08 12:01:50,657 INFO L251 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2020-07-08 12:01:50,683 INFO L375 AbstractCegarLoop]: Interprodecural is true [2020-07-08 12:01:50,683 INFO L376 AbstractCegarLoop]: Hoare is true [2020-07-08 12:01:50,683 INFO L377 AbstractCegarLoop]: Compute interpolants for FPandBP [2020-07-08 12:01:50,683 INFO L378 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2020-07-08 12:01:50,684 INFO L379 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2020-07-08 12:01:50,684 INFO L380 AbstractCegarLoop]: Difference is false [2020-07-08 12:01:50,684 INFO L381 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2020-07-08 12:01:50,685 INFO L385 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2020-07-08 12:01:50,710 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states. [2020-07-08 12:01:50,725 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 21 [2020-07-08 12:01:50,725 INFO L414 BasicCegarLoop]: Found error trace [2020-07-08 12:01:50,729 INFO L422 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-08 12:01:50,730 INFO L427 AbstractCegarLoop]: === Iteration 1 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-08 12:01:50,735 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-08 12:01:50,735 INFO L82 PathProgramCache]: Analyzing trace with hash -629617454, now seen corresponding path program 1 times [2020-07-08 12:01:50,743 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-08 12:01:50,744 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1934319714] [2020-07-08 12:01:50,744 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-08 12:01:50,841 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:50,952 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:50,966 INFO L280 TraceCheckUtils]: 0: Hoare triple {46#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {32#true} is VALID [2020-07-08 12:01:50,966 INFO L280 TraceCheckUtils]: 1: Hoare triple {32#true} assume true; {32#true} is VALID [2020-07-08 12:01:50,967 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {32#true} {32#true} #44#return; {32#true} is VALID [2020-07-08 12:01:50,978 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:51,037 INFO L280 TraceCheckUtils]: 0: Hoare triple {46#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {47#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:51,038 INFO L280 TraceCheckUtils]: 1: Hoare triple {47#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {48#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:51,040 INFO L280 TraceCheckUtils]: 2: Hoare triple {48#(= 0 |applyHanoi_#in~n|)} assume true; {48#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:51,042 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {48#(= 0 |applyHanoi_#in~n|)} {37#(<= 1 main_~n~0)} #48#return; {33#false} is VALID [2020-07-08 12:01:51,045 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:51,054 INFO L280 TraceCheckUtils]: 0: Hoare triple {32#true} ~n := #in~n; {32#true} is VALID [2020-07-08 12:01:51,055 INFO L280 TraceCheckUtils]: 1: Hoare triple {32#true} assume 1 == ~n;#res := 1; {32#true} is VALID [2020-07-08 12:01:51,055 INFO L280 TraceCheckUtils]: 2: Hoare triple {32#true} assume true; {32#true} is VALID [2020-07-08 12:01:51,056 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {32#true} {33#false} #50#return; {33#false} is VALID [2020-07-08 12:01:51,057 INFO L263 TraceCheckUtils]: 0: Hoare triple {32#true} call ULTIMATE.init(); {46#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:51,058 INFO L280 TraceCheckUtils]: 1: Hoare triple {46#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {32#true} is VALID [2020-07-08 12:01:51,058 INFO L280 TraceCheckUtils]: 2: Hoare triple {32#true} assume true; {32#true} is VALID [2020-07-08 12:01:51,059 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {32#true} {32#true} #44#return; {32#true} is VALID [2020-07-08 12:01:51,059 INFO L263 TraceCheckUtils]: 4: Hoare triple {32#true} call #t~ret4 := main(); {32#true} is VALID [2020-07-08 12:01:51,060 INFO L280 TraceCheckUtils]: 5: Hoare triple {32#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {32#true} is VALID [2020-07-08 12:01:51,061 INFO L280 TraceCheckUtils]: 6: Hoare triple {32#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {37#(<= 1 main_~n~0)} is VALID [2020-07-08 12:01:51,064 INFO L263 TraceCheckUtils]: 7: Hoare triple {37#(<= 1 main_~n~0)} call applyHanoi(~n~0, 1, 3, 2); {46#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:51,065 INFO L280 TraceCheckUtils]: 8: Hoare triple {46#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {47#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:51,066 INFO L280 TraceCheckUtils]: 9: Hoare triple {47#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {48#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:51,067 INFO L280 TraceCheckUtils]: 10: Hoare triple {48#(= 0 |applyHanoi_#in~n|)} assume true; {48#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:51,069 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {48#(= 0 |applyHanoi_#in~n|)} {37#(<= 1 main_~n~0)} #48#return; {33#false} is VALID [2020-07-08 12:01:51,070 INFO L263 TraceCheckUtils]: 12: Hoare triple {33#false} call #t~ret3 := hanoi(~n~0); {32#true} is VALID [2020-07-08 12:01:51,070 INFO L280 TraceCheckUtils]: 13: Hoare triple {32#true} ~n := #in~n; {32#true} is VALID [2020-07-08 12:01:51,071 INFO L280 TraceCheckUtils]: 14: Hoare triple {32#true} assume 1 == ~n;#res := 1; {32#true} is VALID [2020-07-08 12:01:51,071 INFO L280 TraceCheckUtils]: 15: Hoare triple {32#true} assume true; {32#true} is VALID [2020-07-08 12:01:51,072 INFO L275 TraceCheckUtils]: 16: Hoare quadruple {32#true} {33#false} #50#return; {33#false} is VALID [2020-07-08 12:01:51,073 INFO L280 TraceCheckUtils]: 17: Hoare triple {33#false} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {33#false} is VALID [2020-07-08 12:01:51,073 INFO L280 TraceCheckUtils]: 18: Hoare triple {33#false} assume !(~result~0 == ~counter~0); {33#false} is VALID [2020-07-08 12:01:51,073 INFO L280 TraceCheckUtils]: 19: Hoare triple {33#false} assume !false; {33#false} is VALID [2020-07-08 12:01:51,077 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-08 12:01:51,078 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1934319714] [2020-07-08 12:01:51,079 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-08 12:01:51,080 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2020-07-08 12:01:51,081 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1400823708] [2020-07-08 12:01:51,088 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 20 [2020-07-08 12:01:51,092 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-08 12:01:51,096 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2020-07-08 12:01:51,153 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-08 12:01:51,153 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2020-07-08 12:01:51,153 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-08 12:01:51,164 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2020-07-08 12:01:51,165 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2020-07-08 12:01:51,167 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 6 states. [2020-07-08 12:01:51,620 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:01:51,621 INFO L93 Difference]: Finished difference Result 48 states and 58 transitions. [2020-07-08 12:01:51,621 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2020-07-08 12:01:51,621 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 20 [2020-07-08 12:01:51,622 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-08 12:01:51,623 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2020-07-08 12:01:51,634 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 58 transitions. [2020-07-08 12:01:51,635 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2020-07-08 12:01:51,641 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 58 transitions. [2020-07-08 12:01:51,642 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 58 transitions. [2020-07-08 12:01:51,728 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 58 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-08 12:01:51,742 INFO L225 Difference]: With dead ends: 48 [2020-07-08 12:01:51,742 INFO L226 Difference]: Without dead ends: 27 [2020-07-08 12:01:51,746 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 6 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=19, Invalid=37, Unknown=0, NotChecked=0, Total=56 [2020-07-08 12:01:51,763 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 27 states. [2020-07-08 12:01:51,796 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 27 to 27. [2020-07-08 12:01:51,796 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-08 12:01:51,797 INFO L82 GeneralOperation]: Start isEquivalent. First operand 27 states. Second operand 27 states. [2020-07-08 12:01:51,797 INFO L74 IsIncluded]: Start isIncluded. First operand 27 states. Second operand 27 states. [2020-07-08 12:01:51,797 INFO L87 Difference]: Start difference. First operand 27 states. Second operand 27 states. [2020-07-08 12:01:51,804 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:01:51,804 INFO L93 Difference]: Finished difference Result 27 states and 32 transitions. [2020-07-08 12:01:51,804 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 32 transitions. [2020-07-08 12:01:51,805 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-08 12:01:51,806 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-08 12:01:51,806 INFO L74 IsIncluded]: Start isIncluded. First operand 27 states. Second operand 27 states. [2020-07-08 12:01:51,806 INFO L87 Difference]: Start difference. First operand 27 states. Second operand 27 states. [2020-07-08 12:01:51,811 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:01:51,811 INFO L93 Difference]: Finished difference Result 27 states and 32 transitions. [2020-07-08 12:01:51,812 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 32 transitions. [2020-07-08 12:01:51,813 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-08 12:01:51,813 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-08 12:01:51,813 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-08 12:01:51,813 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-08 12:01:51,814 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 27 states. [2020-07-08 12:01:51,818 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 27 states to 27 states and 32 transitions. [2020-07-08 12:01:51,820 INFO L78 Accepts]: Start accepts. Automaton has 27 states and 32 transitions. Word has length 20 [2020-07-08 12:01:51,820 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-08 12:01:51,820 INFO L479 AbstractCegarLoop]: Abstraction has 27 states and 32 transitions. [2020-07-08 12:01:51,820 INFO L480 AbstractCegarLoop]: Interpolant automaton has 6 states. [2020-07-08 12:01:51,821 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 32 transitions. [2020-07-08 12:01:51,822 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 31 [2020-07-08 12:01:51,822 INFO L414 BasicCegarLoop]: Found error trace [2020-07-08 12:01:51,823 INFO L422 BasicCegarLoop]: trace histogram [3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-08 12:01:51,823 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2020-07-08 12:01:51,823 INFO L427 AbstractCegarLoop]: === Iteration 2 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-08 12:01:51,824 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-08 12:01:51,824 INFO L82 PathProgramCache]: Analyzing trace with hash 223523063, now seen corresponding path program 1 times [2020-07-08 12:01:51,824 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-08 12:01:51,825 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1347426876] [2020-07-08 12:01:51,825 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-08 12:01:51,885 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:52,016 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:52,020 INFO L280 TraceCheckUtils]: 0: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {209#true} is VALID [2020-07-08 12:01:52,021 INFO L280 TraceCheckUtils]: 1: Hoare triple {209#true} assume true; {209#true} is VALID [2020-07-08 12:01:52,021 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {209#true} {209#true} #44#return; {209#true} is VALID [2020-07-08 12:01:52,033 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:52,147 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:52,159 INFO L280 TraceCheckUtils]: 0: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,160 INFO L280 TraceCheckUtils]: 1: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,161 INFO L280 TraceCheckUtils]: 2: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume true; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,163 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {236#(= ~counter~0 |old(~counter~0)|)} {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:52,169 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:52,186 INFO L280 TraceCheckUtils]: 0: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,187 INFO L280 TraceCheckUtils]: 1: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,187 INFO L280 TraceCheckUtils]: 2: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume true; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,189 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {236#(= ~counter~0 |old(~counter~0)|)} {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {246#(and (or (< 0 ~counter~0) (<= (+ |old(~counter~0)| 1) ~counter~0)) (or (<= ~counter~0 1) (<= ~counter~0 (+ |old(~counter~0)| 1))))} is VALID [2020-07-08 12:01:52,190 INFO L280 TraceCheckUtils]: 0: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,192 INFO L280 TraceCheckUtils]: 1: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:52,195 INFO L263 TraceCheckUtils]: 2: Hoare triple {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,197 INFO L280 TraceCheckUtils]: 3: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,198 INFO L280 TraceCheckUtils]: 4: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,199 INFO L280 TraceCheckUtils]: 5: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume true; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,201 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {236#(= ~counter~0 |old(~counter~0)|)} {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:52,203 INFO L263 TraceCheckUtils]: 7: Hoare triple {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,204 INFO L280 TraceCheckUtils]: 8: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,205 INFO L280 TraceCheckUtils]: 9: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,206 INFO L280 TraceCheckUtils]: 10: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume true; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,208 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {236#(= ~counter~0 |old(~counter~0)|)} {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {246#(and (or (< 0 ~counter~0) (<= (+ |old(~counter~0)| 1) ~counter~0)) (or (<= ~counter~0 1) (<= ~counter~0 (+ |old(~counter~0)| 1))))} is VALID [2020-07-08 12:01:52,209 INFO L280 TraceCheckUtils]: 12: Hoare triple {246#(and (or (< 0 ~counter~0) (<= (+ |old(~counter~0)| 1) ~counter~0)) (or (<= ~counter~0 1) (<= ~counter~0 (+ |old(~counter~0)| 1))))} assume true; {246#(and (or (< 0 ~counter~0) (<= (+ |old(~counter~0)| 1) ~counter~0)) (or (<= ~counter~0 1) (<= ~counter~0 (+ |old(~counter~0)| 1))))} is VALID [2020-07-08 12:01:52,212 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {246#(and (or (< 0 ~counter~0) (<= (+ |old(~counter~0)| 1) ~counter~0)) (or (<= ~counter~0 1) (<= ~counter~0 (+ |old(~counter~0)| 1))))} {214#(and (<= 0 ~counter~0) (<= ~counter~0 0))} #48#return; {229#(= ~counter~0 1)} is VALID [2020-07-08 12:01:52,216 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:52,248 INFO L280 TraceCheckUtils]: 0: Hoare triple {209#true} ~n := #in~n; {209#true} is VALID [2020-07-08 12:01:52,249 INFO L280 TraceCheckUtils]: 1: Hoare triple {209#true} assume 1 == ~n;#res := 1; {247#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:01:52,251 INFO L280 TraceCheckUtils]: 2: Hoare triple {247#(= 1 |hanoi_#res|)} assume true; {247#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:01:52,252 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {247#(= 1 |hanoi_#res|)} {229#(= ~counter~0 1)} #50#return; {234#(= ~counter~0 |main_#t~ret3|)} is VALID [2020-07-08 12:01:52,253 INFO L263 TraceCheckUtils]: 0: Hoare triple {209#true} call ULTIMATE.init(); {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,254 INFO L280 TraceCheckUtils]: 1: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {209#true} is VALID [2020-07-08 12:01:52,254 INFO L280 TraceCheckUtils]: 2: Hoare triple {209#true} assume true; {209#true} is VALID [2020-07-08 12:01:52,254 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {209#true} {209#true} #44#return; {209#true} is VALID [2020-07-08 12:01:52,255 INFO L263 TraceCheckUtils]: 4: Hoare triple {209#true} call #t~ret4 := main(); {209#true} is VALID [2020-07-08 12:01:52,255 INFO L280 TraceCheckUtils]: 5: Hoare triple {209#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {209#true} is VALID [2020-07-08 12:01:52,256 INFO L280 TraceCheckUtils]: 6: Hoare triple {209#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {214#(and (<= 0 ~counter~0) (<= ~counter~0 0))} is VALID [2020-07-08 12:01:52,257 INFO L263 TraceCheckUtils]: 7: Hoare triple {214#(and (<= 0 ~counter~0) (<= ~counter~0 0))} call applyHanoi(~n~0, 1, 3, 2); {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,258 INFO L280 TraceCheckUtils]: 8: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,259 INFO L280 TraceCheckUtils]: 9: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:52,261 INFO L263 TraceCheckUtils]: 10: Hoare triple {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,262 INFO L280 TraceCheckUtils]: 11: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,264 INFO L280 TraceCheckUtils]: 12: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,264 INFO L280 TraceCheckUtils]: 13: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume true; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,267 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {236#(= ~counter~0 |old(~counter~0)|)} {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:52,269 INFO L263 TraceCheckUtils]: 15: Hoare triple {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,270 INFO L280 TraceCheckUtils]: 16: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,270 INFO L280 TraceCheckUtils]: 17: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,271 INFO L280 TraceCheckUtils]: 18: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume true; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,273 INFO L275 TraceCheckUtils]: 19: Hoare quadruple {236#(= ~counter~0 |old(~counter~0)|)} {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {246#(and (or (< 0 ~counter~0) (<= (+ |old(~counter~0)| 1) ~counter~0)) (or (<= ~counter~0 1) (<= ~counter~0 (+ |old(~counter~0)| 1))))} is VALID [2020-07-08 12:01:52,275 INFO L280 TraceCheckUtils]: 20: Hoare triple {246#(and (or (< 0 ~counter~0) (<= (+ |old(~counter~0)| 1) ~counter~0)) (or (<= ~counter~0 1) (<= ~counter~0 (+ |old(~counter~0)| 1))))} assume true; {246#(and (or (< 0 ~counter~0) (<= (+ |old(~counter~0)| 1) ~counter~0)) (or (<= ~counter~0 1) (<= ~counter~0 (+ |old(~counter~0)| 1))))} is VALID [2020-07-08 12:01:52,277 INFO L275 TraceCheckUtils]: 21: Hoare quadruple {246#(and (or (< 0 ~counter~0) (<= (+ |old(~counter~0)| 1) ~counter~0)) (or (<= ~counter~0 1) (<= ~counter~0 (+ |old(~counter~0)| 1))))} {214#(and (<= 0 ~counter~0) (<= ~counter~0 0))} #48#return; {229#(= ~counter~0 1)} is VALID [2020-07-08 12:01:52,277 INFO L263 TraceCheckUtils]: 22: Hoare triple {229#(= ~counter~0 1)} call #t~ret3 := hanoi(~n~0); {209#true} is VALID [2020-07-08 12:01:52,278 INFO L280 TraceCheckUtils]: 23: Hoare triple {209#true} ~n := #in~n; {209#true} is VALID [2020-07-08 12:01:52,279 INFO L280 TraceCheckUtils]: 24: Hoare triple {209#true} assume 1 == ~n;#res := 1; {247#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:01:52,280 INFO L280 TraceCheckUtils]: 25: Hoare triple {247#(= 1 |hanoi_#res|)} assume true; {247#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:01:52,281 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {247#(= 1 |hanoi_#res|)} {229#(= ~counter~0 1)} #50#return; {234#(= ~counter~0 |main_#t~ret3|)} is VALID [2020-07-08 12:01:52,282 INFO L280 TraceCheckUtils]: 27: Hoare triple {234#(= ~counter~0 |main_#t~ret3|)} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {235#(= ~counter~0 main_~result~0)} is VALID [2020-07-08 12:01:52,283 INFO L280 TraceCheckUtils]: 28: Hoare triple {235#(= ~counter~0 main_~result~0)} assume !(~result~0 == ~counter~0); {210#false} is VALID [2020-07-08 12:01:52,283 INFO L280 TraceCheckUtils]: 29: Hoare triple {210#false} assume !false; {210#false} is VALID [2020-07-08 12:01:52,286 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 4 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2020-07-08 12:01:52,287 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1347426876] [2020-07-08 12:01:52,287 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [113817447] [2020-07-08 12:01:52,287 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-08 12:01:52,345 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:52,348 INFO L264 TraceCheckSpWp]: Trace formula consists of 116 conjuncts, 23 conjunts are in the unsatisfiable core [2020-07-08 12:01:52,362 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:52,370 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-08 12:01:52,618 INFO L263 TraceCheckUtils]: 0: Hoare triple {209#true} call ULTIMATE.init(); {209#true} is VALID [2020-07-08 12:01:52,619 INFO L280 TraceCheckUtils]: 1: Hoare triple {209#true} ~counter~0 := 0; {209#true} is VALID [2020-07-08 12:01:52,619 INFO L280 TraceCheckUtils]: 2: Hoare triple {209#true} assume true; {209#true} is VALID [2020-07-08 12:01:52,620 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {209#true} {209#true} #44#return; {209#true} is VALID [2020-07-08 12:01:52,620 INFO L263 TraceCheckUtils]: 4: Hoare triple {209#true} call #t~ret4 := main(); {209#true} is VALID [2020-07-08 12:01:52,621 INFO L280 TraceCheckUtils]: 5: Hoare triple {209#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {209#true} is VALID [2020-07-08 12:01:52,622 INFO L280 TraceCheckUtils]: 6: Hoare triple {209#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {214#(and (<= 0 ~counter~0) (<= ~counter~0 0))} is VALID [2020-07-08 12:01:52,624 INFO L263 TraceCheckUtils]: 7: Hoare triple {214#(and (<= 0 ~counter~0) (<= ~counter~0 0))} call applyHanoi(~n~0, 1, 3, 2); {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,626 INFO L280 TraceCheckUtils]: 8: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,627 INFO L280 TraceCheckUtils]: 9: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:52,629 INFO L263 TraceCheckUtils]: 10: Hoare triple {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,630 INFO L280 TraceCheckUtils]: 11: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,631 INFO L280 TraceCheckUtils]: 12: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,632 INFO L280 TraceCheckUtils]: 13: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume true; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,634 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {236#(= ~counter~0 |old(~counter~0)|)} {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:52,637 INFO L263 TraceCheckUtils]: 15: Hoare triple {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,638 INFO L280 TraceCheckUtils]: 16: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,639 INFO L280 TraceCheckUtils]: 17: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,640 INFO L280 TraceCheckUtils]: 18: Hoare triple {236#(= ~counter~0 |old(~counter~0)|)} assume true; {236#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:52,643 INFO L275 TraceCheckUtils]: 19: Hoare quadruple {236#(= ~counter~0 |old(~counter~0)|)} {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:52,655 INFO L280 TraceCheckUtils]: 20: Hoare triple {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:52,660 INFO L275 TraceCheckUtils]: 21: Hoare quadruple {237#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {214#(and (<= 0 ~counter~0) (<= ~counter~0 0))} #48#return; {229#(= ~counter~0 1)} is VALID [2020-07-08 12:01:52,661 INFO L263 TraceCheckUtils]: 22: Hoare triple {229#(= ~counter~0 1)} call #t~ret3 := hanoi(~n~0); {229#(= ~counter~0 1)} is VALID [2020-07-08 12:01:52,662 INFO L280 TraceCheckUtils]: 23: Hoare triple {229#(= ~counter~0 1)} ~n := #in~n; {229#(= ~counter~0 1)} is VALID [2020-07-08 12:01:52,662 INFO L280 TraceCheckUtils]: 24: Hoare triple {229#(= ~counter~0 1)} assume 1 == ~n;#res := 1; {323#(and (= 1 |hanoi_#res|) (= ~counter~0 1))} is VALID [2020-07-08 12:01:52,663 INFO L280 TraceCheckUtils]: 25: Hoare triple {323#(and (= 1 |hanoi_#res|) (= ~counter~0 1))} assume true; {323#(and (= 1 |hanoi_#res|) (= ~counter~0 1))} is VALID [2020-07-08 12:01:52,665 INFO L275 TraceCheckUtils]: 26: Hoare quadruple {323#(and (= 1 |hanoi_#res|) (= ~counter~0 1))} {229#(= ~counter~0 1)} #50#return; {330#(and (= 1 |main_#t~ret3|) (= ~counter~0 1))} is VALID [2020-07-08 12:01:52,666 INFO L280 TraceCheckUtils]: 27: Hoare triple {330#(and (= 1 |main_#t~ret3|) (= ~counter~0 1))} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {334#(and (= 1 main_~result~0) (= ~counter~0 1))} is VALID [2020-07-08 12:01:52,667 INFO L280 TraceCheckUtils]: 28: Hoare triple {334#(and (= 1 main_~result~0) (= ~counter~0 1))} assume !(~result~0 == ~counter~0); {210#false} is VALID [2020-07-08 12:01:52,668 INFO L280 TraceCheckUtils]: 29: Hoare triple {210#false} assume !false; {210#false} is VALID [2020-07-08 12:01:52,671 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 4 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2020-07-08 12:01:52,672 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-08 12:01:52,672 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 9] total 13 [2020-07-08 12:01:52,673 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1503036914] [2020-07-08 12:01:52,676 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 30 [2020-07-08 12:01:52,677 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-08 12:01:52,677 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states. [2020-07-08 12:01:52,737 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 38 edges. 38 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-08 12:01:52,737 INFO L459 AbstractCegarLoop]: Interpolant automaton has 13 states [2020-07-08 12:01:52,738 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-08 12:01:52,738 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2020-07-08 12:01:52,738 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=34, Invalid=122, Unknown=0, NotChecked=0, Total=156 [2020-07-08 12:01:52,739 INFO L87 Difference]: Start difference. First operand 27 states and 32 transitions. Second operand 13 states. [2020-07-08 12:01:54,042 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:01:54,042 INFO L93 Difference]: Finished difference Result 61 states and 78 transitions. [2020-07-08 12:01:54,042 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2020-07-08 12:01:54,043 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 30 [2020-07-08 12:01:54,043 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-08 12:01:54,043 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2020-07-08 12:01:54,049 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 78 transitions. [2020-07-08 12:01:54,050 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2020-07-08 12:01:54,056 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 78 transitions. [2020-07-08 12:01:54,056 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states and 78 transitions. [2020-07-08 12:01:54,178 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 78 edges. 78 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-08 12:01:54,184 INFO L225 Difference]: With dead ends: 61 [2020-07-08 12:01:54,184 INFO L226 Difference]: Without dead ends: 55 [2020-07-08 12:01:54,186 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 58 GetRequests, 37 SyntacticMatches, 3 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 49 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=77, Invalid=303, Unknown=0, NotChecked=0, Total=380 [2020-07-08 12:01:54,186 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2020-07-08 12:01:54,230 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 49. [2020-07-08 12:01:54,230 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-08 12:01:54,231 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 49 states. [2020-07-08 12:01:54,231 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 49 states. [2020-07-08 12:01:54,231 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 49 states. [2020-07-08 12:01:54,238 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:01:54,238 INFO L93 Difference]: Finished difference Result 55 states and 72 transitions. [2020-07-08 12:01:54,239 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 72 transitions. [2020-07-08 12:01:54,240 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-08 12:01:54,241 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-08 12:01:54,241 INFO L74 IsIncluded]: Start isIncluded. First operand 49 states. Second operand 55 states. [2020-07-08 12:01:54,241 INFO L87 Difference]: Start difference. First operand 49 states. Second operand 55 states. [2020-07-08 12:01:54,248 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:01:54,249 INFO L93 Difference]: Finished difference Result 55 states and 72 transitions. [2020-07-08 12:01:54,249 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 72 transitions. [2020-07-08 12:01:54,250 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-08 12:01:54,250 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-08 12:01:54,251 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-08 12:01:54,251 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-08 12:01:54,251 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 49 states. [2020-07-08 12:01:54,256 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 49 states to 49 states and 66 transitions. [2020-07-08 12:01:54,257 INFO L78 Accepts]: Start accepts. Automaton has 49 states and 66 transitions. Word has length 30 [2020-07-08 12:01:54,257 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-08 12:01:54,257 INFO L479 AbstractCegarLoop]: Abstraction has 49 states and 66 transitions. [2020-07-08 12:01:54,257 INFO L480 AbstractCegarLoop]: Interpolant automaton has 13 states. [2020-07-08 12:01:54,257 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 66 transitions. [2020-07-08 12:01:54,259 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 41 [2020-07-08 12:01:54,259 INFO L414 BasicCegarLoop]: Found error trace [2020-07-08 12:01:54,260 INFO L422 BasicCegarLoop]: trace histogram [5, 5, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-08 12:01:54,473 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 2 z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable1 [2020-07-08 12:01:54,474 INFO L427 AbstractCegarLoop]: === Iteration 3 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-08 12:01:54,474 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-08 12:01:54,474 INFO L82 PathProgramCache]: Analyzing trace with hash 640231516, now seen corresponding path program 2 times [2020-07-08 12:01:54,475 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-08 12:01:54,475 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1773146765] [2020-07-08 12:01:54,476 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-08 12:01:54,506 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:54,536 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:54,540 INFO L280 TraceCheckUtils]: 0: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {614#true} is VALID [2020-07-08 12:01:54,540 INFO L280 TraceCheckUtils]: 1: Hoare triple {614#true} assume true; {614#true} is VALID [2020-07-08 12:01:54,540 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {614#true} {614#true} #44#return; {614#true} is VALID [2020-07-08 12:01:54,551 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:54,574 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:54,607 INFO L280 TraceCheckUtils]: 0: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {667#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,608 INFO L280 TraceCheckUtils]: 1: Hoare triple {667#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {668#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,608 INFO L280 TraceCheckUtils]: 2: Hoare triple {668#(= 0 |applyHanoi_#in~n|)} assume true; {668#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,610 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {668#(= 0 |applyHanoi_#in~n|)} {614#true} #38#return; {652#(<= applyHanoi_~n 1)} is VALID [2020-07-08 12:01:54,618 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:54,669 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:54,680 INFO L280 TraceCheckUtils]: 0: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {667#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,681 INFO L280 TraceCheckUtils]: 1: Hoare triple {667#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {668#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,682 INFO L280 TraceCheckUtils]: 2: Hoare triple {668#(= 0 |applyHanoi_#in~n|)} assume true; {668#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,683 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {668#(= 0 |applyHanoi_#in~n|)} {667#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {673#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} is VALID [2020-07-08 12:01:54,686 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:54,692 INFO L280 TraceCheckUtils]: 0: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {614#true} is VALID [2020-07-08 12:01:54,692 INFO L280 TraceCheckUtils]: 1: Hoare triple {614#true} assume 0 == ~n; {614#true} is VALID [2020-07-08 12:01:54,693 INFO L280 TraceCheckUtils]: 2: Hoare triple {614#true} assume true; {614#true} is VALID [2020-07-08 12:01:54,694 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {614#true} {673#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} #40#return; {678#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,695 INFO L280 TraceCheckUtils]: 0: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {667#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,696 INFO L280 TraceCheckUtils]: 1: Hoare triple {667#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {667#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,697 INFO L263 TraceCheckUtils]: 2: Hoare triple {667#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {647#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:54,698 INFO L280 TraceCheckUtils]: 3: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {667#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,699 INFO L280 TraceCheckUtils]: 4: Hoare triple {667#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {668#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,700 INFO L280 TraceCheckUtils]: 5: Hoare triple {668#(= 0 |applyHanoi_#in~n|)} assume true; {668#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,701 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {668#(= 0 |applyHanoi_#in~n|)} {667#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {673#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} is VALID [2020-07-08 12:01:54,703 INFO L263 TraceCheckUtils]: 7: Hoare triple {673#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {647#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:54,703 INFO L280 TraceCheckUtils]: 8: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {614#true} is VALID [2020-07-08 12:01:54,703 INFO L280 TraceCheckUtils]: 9: Hoare triple {614#true} assume 0 == ~n; {614#true} is VALID [2020-07-08 12:01:54,704 INFO L280 TraceCheckUtils]: 10: Hoare triple {614#true} assume true; {614#true} is VALID [2020-07-08 12:01:54,705 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {614#true} {673#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} #40#return; {678#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,706 INFO L280 TraceCheckUtils]: 12: Hoare triple {678#(<= 1 |applyHanoi_#in~n|)} assume true; {678#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,707 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {678#(<= 1 |applyHanoi_#in~n|)} {652#(<= applyHanoi_~n 1)} #40#return; {615#false} is VALID [2020-07-08 12:01:54,708 INFO L280 TraceCheckUtils]: 0: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {614#true} is VALID [2020-07-08 12:01:54,708 INFO L280 TraceCheckUtils]: 1: Hoare triple {614#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {614#true} is VALID [2020-07-08 12:01:54,710 INFO L263 TraceCheckUtils]: 2: Hoare triple {614#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {647#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:54,711 INFO L280 TraceCheckUtils]: 3: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {667#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,712 INFO L280 TraceCheckUtils]: 4: Hoare triple {667#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {668#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,712 INFO L280 TraceCheckUtils]: 5: Hoare triple {668#(= 0 |applyHanoi_#in~n|)} assume true; {668#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,714 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {668#(= 0 |applyHanoi_#in~n|)} {614#true} #38#return; {652#(<= applyHanoi_~n 1)} is VALID [2020-07-08 12:01:54,715 INFO L263 TraceCheckUtils]: 7: Hoare triple {652#(<= applyHanoi_~n 1)} call applyHanoi(~n - 1, ~via, ~to, ~from); {647#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:54,716 INFO L280 TraceCheckUtils]: 8: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {667#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,716 INFO L280 TraceCheckUtils]: 9: Hoare triple {667#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {667#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,718 INFO L263 TraceCheckUtils]: 10: Hoare triple {667#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {647#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:54,719 INFO L280 TraceCheckUtils]: 11: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {667#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,720 INFO L280 TraceCheckUtils]: 12: Hoare triple {667#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {668#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,720 INFO L280 TraceCheckUtils]: 13: Hoare triple {668#(= 0 |applyHanoi_#in~n|)} assume true; {668#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,722 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {668#(= 0 |applyHanoi_#in~n|)} {667#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {673#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} is VALID [2020-07-08 12:01:54,723 INFO L263 TraceCheckUtils]: 15: Hoare triple {673#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {647#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:54,724 INFO L280 TraceCheckUtils]: 16: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {614#true} is VALID [2020-07-08 12:01:54,724 INFO L280 TraceCheckUtils]: 17: Hoare triple {614#true} assume 0 == ~n; {614#true} is VALID [2020-07-08 12:01:54,724 INFO L280 TraceCheckUtils]: 18: Hoare triple {614#true} assume true; {614#true} is VALID [2020-07-08 12:01:54,726 INFO L275 TraceCheckUtils]: 19: Hoare quadruple {614#true} {673#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} #40#return; {678#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,726 INFO L280 TraceCheckUtils]: 20: Hoare triple {678#(<= 1 |applyHanoi_#in~n|)} assume true; {678#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,728 INFO L275 TraceCheckUtils]: 21: Hoare quadruple {678#(<= 1 |applyHanoi_#in~n|)} {652#(<= applyHanoi_~n 1)} #40#return; {615#false} is VALID [2020-07-08 12:01:54,729 INFO L280 TraceCheckUtils]: 22: Hoare triple {615#false} assume true; {615#false} is VALID [2020-07-08 12:01:54,729 INFO L275 TraceCheckUtils]: 23: Hoare quadruple {615#false} {614#true} #48#return; {615#false} is VALID [2020-07-08 12:01:54,731 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:54,735 INFO L280 TraceCheckUtils]: 0: Hoare triple {614#true} ~n := #in~n; {614#true} is VALID [2020-07-08 12:01:54,736 INFO L280 TraceCheckUtils]: 1: Hoare triple {614#true} assume 1 == ~n;#res := 1; {614#true} is VALID [2020-07-08 12:01:54,736 INFO L280 TraceCheckUtils]: 2: Hoare triple {614#true} assume true; {614#true} is VALID [2020-07-08 12:01:54,736 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {614#true} {615#false} #50#return; {615#false} is VALID [2020-07-08 12:01:54,737 INFO L263 TraceCheckUtils]: 0: Hoare triple {614#true} call ULTIMATE.init(); {647#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:54,738 INFO L280 TraceCheckUtils]: 1: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {614#true} is VALID [2020-07-08 12:01:54,738 INFO L280 TraceCheckUtils]: 2: Hoare triple {614#true} assume true; {614#true} is VALID [2020-07-08 12:01:54,738 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {614#true} {614#true} #44#return; {614#true} is VALID [2020-07-08 12:01:54,739 INFO L263 TraceCheckUtils]: 4: Hoare triple {614#true} call #t~ret4 := main(); {614#true} is VALID [2020-07-08 12:01:54,739 INFO L280 TraceCheckUtils]: 5: Hoare triple {614#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {614#true} is VALID [2020-07-08 12:01:54,739 INFO L280 TraceCheckUtils]: 6: Hoare triple {614#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {614#true} is VALID [2020-07-08 12:01:54,741 INFO L263 TraceCheckUtils]: 7: Hoare triple {614#true} call applyHanoi(~n~0, 1, 3, 2); {647#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:54,742 INFO L280 TraceCheckUtils]: 8: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {614#true} is VALID [2020-07-08 12:01:54,742 INFO L280 TraceCheckUtils]: 9: Hoare triple {614#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {614#true} is VALID [2020-07-08 12:01:54,744 INFO L263 TraceCheckUtils]: 10: Hoare triple {614#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {647#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:54,745 INFO L280 TraceCheckUtils]: 11: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {667#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,745 INFO L280 TraceCheckUtils]: 12: Hoare triple {667#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {668#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,746 INFO L280 TraceCheckUtils]: 13: Hoare triple {668#(= 0 |applyHanoi_#in~n|)} assume true; {668#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,747 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {668#(= 0 |applyHanoi_#in~n|)} {614#true} #38#return; {652#(<= applyHanoi_~n 1)} is VALID [2020-07-08 12:01:54,749 INFO L263 TraceCheckUtils]: 15: Hoare triple {652#(<= applyHanoi_~n 1)} call applyHanoi(~n - 1, ~via, ~to, ~from); {647#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:54,750 INFO L280 TraceCheckUtils]: 16: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {667#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,750 INFO L280 TraceCheckUtils]: 17: Hoare triple {667#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {667#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,752 INFO L263 TraceCheckUtils]: 18: Hoare triple {667#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {647#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:54,752 INFO L280 TraceCheckUtils]: 19: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {667#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,753 INFO L280 TraceCheckUtils]: 20: Hoare triple {667#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {668#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,754 INFO L280 TraceCheckUtils]: 21: Hoare triple {668#(= 0 |applyHanoi_#in~n|)} assume true; {668#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,756 INFO L275 TraceCheckUtils]: 22: Hoare quadruple {668#(= 0 |applyHanoi_#in~n|)} {667#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {673#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} is VALID [2020-07-08 12:01:54,757 INFO L263 TraceCheckUtils]: 23: Hoare triple {673#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {647#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:54,757 INFO L280 TraceCheckUtils]: 24: Hoare triple {647#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {614#true} is VALID [2020-07-08 12:01:54,758 INFO L280 TraceCheckUtils]: 25: Hoare triple {614#true} assume 0 == ~n; {614#true} is VALID [2020-07-08 12:01:54,758 INFO L280 TraceCheckUtils]: 26: Hoare triple {614#true} assume true; {614#true} is VALID [2020-07-08 12:01:54,759 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {614#true} {673#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} #40#return; {678#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,760 INFO L280 TraceCheckUtils]: 28: Hoare triple {678#(<= 1 |applyHanoi_#in~n|)} assume true; {678#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:54,762 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {678#(<= 1 |applyHanoi_#in~n|)} {652#(<= applyHanoi_~n 1)} #40#return; {615#false} is VALID [2020-07-08 12:01:54,762 INFO L280 TraceCheckUtils]: 30: Hoare triple {615#false} assume true; {615#false} is VALID [2020-07-08 12:01:54,762 INFO L275 TraceCheckUtils]: 31: Hoare quadruple {615#false} {614#true} #48#return; {615#false} is VALID [2020-07-08 12:01:54,762 INFO L263 TraceCheckUtils]: 32: Hoare triple {615#false} call #t~ret3 := hanoi(~n~0); {614#true} is VALID [2020-07-08 12:01:54,763 INFO L280 TraceCheckUtils]: 33: Hoare triple {614#true} ~n := #in~n; {614#true} is VALID [2020-07-08 12:01:54,763 INFO L280 TraceCheckUtils]: 34: Hoare triple {614#true} assume 1 == ~n;#res := 1; {614#true} is VALID [2020-07-08 12:01:54,763 INFO L280 TraceCheckUtils]: 35: Hoare triple {614#true} assume true; {614#true} is VALID [2020-07-08 12:01:54,764 INFO L275 TraceCheckUtils]: 36: Hoare quadruple {614#true} {615#false} #50#return; {615#false} is VALID [2020-07-08 12:01:54,764 INFO L280 TraceCheckUtils]: 37: Hoare triple {615#false} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {615#false} is VALID [2020-07-08 12:01:54,764 INFO L280 TraceCheckUtils]: 38: Hoare triple {615#false} assume !(~result~0 == ~counter~0); {615#false} is VALID [2020-07-08 12:01:54,764 INFO L280 TraceCheckUtils]: 39: Hoare triple {615#false} assume !false; {615#false} is VALID [2020-07-08 12:01:54,767 INFO L134 CoverageAnalysis]: Checked inductivity of 42 backedges. 14 proven. 12 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2020-07-08 12:01:54,767 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1773146765] [2020-07-08 12:01:54,768 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1792867360] [2020-07-08 12:01:54,768 INFO L92 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-08 12:01:54,826 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2020-07-08 12:01:54,827 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2020-07-08 12:01:54,829 INFO L264 TraceCheckSpWp]: Trace formula consists of 165 conjuncts, 10 conjunts are in the unsatisfiable core [2020-07-08 12:01:54,846 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:54,850 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-08 12:01:55,050 INFO L263 TraceCheckUtils]: 0: Hoare triple {614#true} call ULTIMATE.init(); {614#true} is VALID [2020-07-08 12:01:55,051 INFO L280 TraceCheckUtils]: 1: Hoare triple {614#true} ~counter~0 := 0; {614#true} is VALID [2020-07-08 12:01:55,051 INFO L280 TraceCheckUtils]: 2: Hoare triple {614#true} assume true; {614#true} is VALID [2020-07-08 12:01:55,051 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {614#true} {614#true} #44#return; {614#true} is VALID [2020-07-08 12:01:55,052 INFO L263 TraceCheckUtils]: 4: Hoare triple {614#true} call #t~ret4 := main(); {614#true} is VALID [2020-07-08 12:01:55,052 INFO L280 TraceCheckUtils]: 5: Hoare triple {614#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {614#true} is VALID [2020-07-08 12:01:55,052 INFO L280 TraceCheckUtils]: 6: Hoare triple {614#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {614#true} is VALID [2020-07-08 12:01:55,052 INFO L263 TraceCheckUtils]: 7: Hoare triple {614#true} call applyHanoi(~n~0, 1, 3, 2); {614#true} is VALID [2020-07-08 12:01:55,053 INFO L280 TraceCheckUtils]: 8: Hoare triple {614#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {706#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:55,054 INFO L280 TraceCheckUtils]: 9: Hoare triple {706#(<= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {706#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:55,054 INFO L263 TraceCheckUtils]: 10: Hoare triple {706#(<= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {614#true} is VALID [2020-07-08 12:01:55,055 INFO L280 TraceCheckUtils]: 11: Hoare triple {614#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {614#true} is VALID [2020-07-08 12:01:55,055 INFO L280 TraceCheckUtils]: 12: Hoare triple {614#true} assume 0 == ~n; {614#true} is VALID [2020-07-08 12:01:55,055 INFO L280 TraceCheckUtils]: 13: Hoare triple {614#true} assume true; {614#true} is VALID [2020-07-08 12:01:55,058 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {614#true} {706#(<= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {706#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:55,059 INFO L263 TraceCheckUtils]: 15: Hoare triple {706#(<= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~via, ~to, ~from); {614#true} is VALID [2020-07-08 12:01:55,059 INFO L280 TraceCheckUtils]: 16: Hoare triple {614#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {706#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:55,060 INFO L280 TraceCheckUtils]: 17: Hoare triple {706#(<= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {706#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:55,060 INFO L263 TraceCheckUtils]: 18: Hoare triple {706#(<= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {614#true} is VALID [2020-07-08 12:01:55,061 INFO L280 TraceCheckUtils]: 19: Hoare triple {614#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {706#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:55,062 INFO L280 TraceCheckUtils]: 20: Hoare triple {706#(<= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {743#(<= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:55,062 INFO L280 TraceCheckUtils]: 21: Hoare triple {743#(<= 0 |applyHanoi_#in~n|)} assume true; {743#(<= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:55,064 INFO L275 TraceCheckUtils]: 22: Hoare quadruple {743#(<= 0 |applyHanoi_#in~n|)} {706#(<= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {678#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:55,064 INFO L263 TraceCheckUtils]: 23: Hoare triple {678#(<= 1 |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~via, ~to, ~from); {614#true} is VALID [2020-07-08 12:01:55,064 INFO L280 TraceCheckUtils]: 24: Hoare triple {614#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {614#true} is VALID [2020-07-08 12:01:55,064 INFO L280 TraceCheckUtils]: 25: Hoare triple {614#true} assume 0 == ~n; {614#true} is VALID [2020-07-08 12:01:55,065 INFO L280 TraceCheckUtils]: 26: Hoare triple {614#true} assume true; {614#true} is VALID [2020-07-08 12:01:55,066 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {614#true} {678#(<= 1 |applyHanoi_#in~n|)} #40#return; {678#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:55,066 INFO L280 TraceCheckUtils]: 28: Hoare triple {678#(<= 1 |applyHanoi_#in~n|)} assume true; {678#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:55,068 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {678#(<= 1 |applyHanoi_#in~n|)} {706#(<= applyHanoi_~n |applyHanoi_#in~n|)} #40#return; {771#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:55,068 INFO L280 TraceCheckUtils]: 30: Hoare triple {771#(<= 2 |applyHanoi_#in~n|)} assume true; {771#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:55,070 INFO L275 TraceCheckUtils]: 31: Hoare quadruple {771#(<= 2 |applyHanoi_#in~n|)} {614#true} #48#return; {778#(<= 2 main_~n~0)} is VALID [2020-07-08 12:01:55,070 INFO L263 TraceCheckUtils]: 32: Hoare triple {778#(<= 2 main_~n~0)} call #t~ret3 := hanoi(~n~0); {614#true} is VALID [2020-07-08 12:01:55,071 INFO L280 TraceCheckUtils]: 33: Hoare triple {614#true} ~n := #in~n; {785#(<= |hanoi_#in~n| hanoi_~n)} is VALID [2020-07-08 12:01:55,072 INFO L280 TraceCheckUtils]: 34: Hoare triple {785#(<= |hanoi_#in~n| hanoi_~n)} assume 1 == ~n;#res := 1; {789#(<= |hanoi_#in~n| 1)} is VALID [2020-07-08 12:01:55,073 INFO L280 TraceCheckUtils]: 35: Hoare triple {789#(<= |hanoi_#in~n| 1)} assume true; {789#(<= |hanoi_#in~n| 1)} is VALID [2020-07-08 12:01:55,075 INFO L275 TraceCheckUtils]: 36: Hoare quadruple {789#(<= |hanoi_#in~n| 1)} {778#(<= 2 main_~n~0)} #50#return; {615#false} is VALID [2020-07-08 12:01:55,075 INFO L280 TraceCheckUtils]: 37: Hoare triple {615#false} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {615#false} is VALID [2020-07-08 12:01:55,076 INFO L280 TraceCheckUtils]: 38: Hoare triple {615#false} assume !(~result~0 == ~counter~0); {615#false} is VALID [2020-07-08 12:01:55,076 INFO L280 TraceCheckUtils]: 39: Hoare triple {615#false} assume !false; {615#false} is VALID [2020-07-08 12:01:55,081 INFO L134 CoverageAnalysis]: Checked inductivity of 42 backedges. 18 proven. 7 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2020-07-08 12:01:55,085 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-08 12:01:55,085 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 9] total 14 [2020-07-08 12:01:55,085 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [53341303] [2020-07-08 12:01:55,086 INFO L78 Accepts]: Start accepts. Automaton has 14 states. Word has length 40 [2020-07-08 12:01:55,090 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-08 12:01:55,091 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states. [2020-07-08 12:01:55,163 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-08 12:01:55,163 INFO L459 AbstractCegarLoop]: Interpolant automaton has 14 states [2020-07-08 12:01:55,164 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-08 12:01:55,164 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2020-07-08 12:01:55,164 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=34, Invalid=148, Unknown=0, NotChecked=0, Total=182 [2020-07-08 12:01:55,165 INFO L87 Difference]: Start difference. First operand 49 states and 66 transitions. Second operand 14 states. [2020-07-08 12:01:56,538 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:01:56,538 INFO L93 Difference]: Finished difference Result 86 states and 123 transitions. [2020-07-08 12:01:56,539 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2020-07-08 12:01:56,539 INFO L78 Accepts]: Start accepts. Automaton has 14 states. Word has length 40 [2020-07-08 12:01:56,539 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-08 12:01:56,539 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 14 states. [2020-07-08 12:01:56,553 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 83 transitions. [2020-07-08 12:01:56,553 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 14 states. [2020-07-08 12:01:56,558 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 83 transitions. [2020-07-08 12:01:56,558 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 17 states and 83 transitions. [2020-07-08 12:01:56,706 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 83 edges. 83 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-08 12:01:56,711 INFO L225 Difference]: With dead ends: 86 [2020-07-08 12:01:56,715 INFO L226 Difference]: Without dead ends: 64 [2020-07-08 12:01:56,717 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 75 GetRequests, 52 SyntacticMatches, 0 SemanticMatches, 23 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 87 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=113, Invalid=487, Unknown=0, NotChecked=0, Total=600 [2020-07-08 12:01:56,718 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 64 states. [2020-07-08 12:01:56,775 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 64 to 48. [2020-07-08 12:01:56,775 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-08 12:01:56,775 INFO L82 GeneralOperation]: Start isEquivalent. First operand 64 states. Second operand 48 states. [2020-07-08 12:01:56,775 INFO L74 IsIncluded]: Start isIncluded. First operand 64 states. Second operand 48 states. [2020-07-08 12:01:56,775 INFO L87 Difference]: Start difference. First operand 64 states. Second operand 48 states. [2020-07-08 12:01:56,781 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:01:56,781 INFO L93 Difference]: Finished difference Result 64 states and 79 transitions. [2020-07-08 12:01:56,782 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 79 transitions. [2020-07-08 12:01:56,783 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-08 12:01:56,783 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-08 12:01:56,783 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 64 states. [2020-07-08 12:01:56,783 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 64 states. [2020-07-08 12:01:56,788 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:01:56,789 INFO L93 Difference]: Finished difference Result 64 states and 79 transitions. [2020-07-08 12:01:56,789 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 79 transitions. [2020-07-08 12:01:56,790 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-08 12:01:56,790 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-08 12:01:56,790 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-08 12:01:56,790 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-08 12:01:56,791 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 48 states. [2020-07-08 12:01:56,794 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 58 transitions. [2020-07-08 12:01:56,794 INFO L78 Accepts]: Start accepts. Automaton has 48 states and 58 transitions. Word has length 40 [2020-07-08 12:01:56,794 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-08 12:01:56,794 INFO L479 AbstractCegarLoop]: Abstraction has 48 states and 58 transitions. [2020-07-08 12:01:56,795 INFO L480 AbstractCegarLoop]: Interpolant automaton has 14 states. [2020-07-08 12:01:56,795 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 58 transitions. [2020-07-08 12:01:56,796 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2020-07-08 12:01:56,796 INFO L414 BasicCegarLoop]: Found error trace [2020-07-08 12:01:56,796 INFO L422 BasicCegarLoop]: trace histogram [3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-08 12:01:57,010 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2,3 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-08 12:01:57,011 INFO L427 AbstractCegarLoop]: === Iteration 4 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-08 12:01:57,012 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-08 12:01:57,012 INFO L82 PathProgramCache]: Analyzing trace with hash 1772916587, now seen corresponding path program 1 times [2020-07-08 12:01:57,013 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-08 12:01:57,013 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [245329174] [2020-07-08 12:01:57,014 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-08 12:01:57,034 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:57,068 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:57,071 INFO L280 TraceCheckUtils]: 0: Hoare triple {1171#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {1141#true} is VALID [2020-07-08 12:01:57,071 INFO L280 TraceCheckUtils]: 1: Hoare triple {1141#true} assume true; {1141#true} is VALID [2020-07-08 12:01:57,071 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {1141#true} {1141#true} #44#return; {1141#true} is VALID [2020-07-08 12:01:57,076 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:57,121 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:57,154 INFO L280 TraceCheckUtils]: 0: Hoare triple {1171#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:57,155 INFO L280 TraceCheckUtils]: 1: Hoare triple {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {1183#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:57,155 INFO L280 TraceCheckUtils]: 2: Hoare triple {1183#(= 0 |applyHanoi_#in~n|)} assume true; {1183#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:57,157 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1183#(= 0 |applyHanoi_#in~n|)} {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {1177#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} is VALID [2020-07-08 12:01:57,159 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:57,166 INFO L280 TraceCheckUtils]: 0: Hoare triple {1171#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1141#true} is VALID [2020-07-08 12:01:57,166 INFO L280 TraceCheckUtils]: 1: Hoare triple {1141#true} assume 0 == ~n; {1141#true} is VALID [2020-07-08 12:01:57,167 INFO L280 TraceCheckUtils]: 2: Hoare triple {1141#true} assume true; {1141#true} is VALID [2020-07-08 12:01:57,169 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1141#true} {1177#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} #40#return; {1182#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:01:57,170 INFO L280 TraceCheckUtils]: 0: Hoare triple {1171#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:57,171 INFO L280 TraceCheckUtils]: 1: Hoare triple {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:57,173 INFO L263 TraceCheckUtils]: 2: Hoare triple {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {1171#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:57,175 INFO L280 TraceCheckUtils]: 3: Hoare triple {1171#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:57,176 INFO L280 TraceCheckUtils]: 4: Hoare triple {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {1183#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:57,177 INFO L280 TraceCheckUtils]: 5: Hoare triple {1183#(= 0 |applyHanoi_#in~n|)} assume true; {1183#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:57,179 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {1183#(= 0 |applyHanoi_#in~n|)} {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {1177#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} is VALID [2020-07-08 12:01:57,180 INFO L263 TraceCheckUtils]: 7: Hoare triple {1177#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} call applyHanoi(~n - 1, ~via, ~to, ~from); {1171#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:57,181 INFO L280 TraceCheckUtils]: 8: Hoare triple {1171#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1141#true} is VALID [2020-07-08 12:01:57,181 INFO L280 TraceCheckUtils]: 9: Hoare triple {1141#true} assume 0 == ~n; {1141#true} is VALID [2020-07-08 12:01:57,181 INFO L280 TraceCheckUtils]: 10: Hoare triple {1141#true} assume true; {1141#true} is VALID [2020-07-08 12:01:57,182 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {1141#true} {1177#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} #40#return; {1182#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:01:57,183 INFO L280 TraceCheckUtils]: 12: Hoare triple {1182#(<= |applyHanoi_#in~n| 1)} assume true; {1182#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:01:57,185 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {1182#(<= |applyHanoi_#in~n| 1)} {1141#true} #48#return; {1160#(<= main_~n~0 1)} is VALID [2020-07-08 12:01:57,189 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:57,223 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:57,242 INFO L280 TraceCheckUtils]: 0: Hoare triple {1141#true} ~n := #in~n; {1184#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,243 INFO L280 TraceCheckUtils]: 1: Hoare triple {1184#(= hanoi_~n |hanoi_#in~n|)} assume 1 == ~n;#res := 1; {1190#(= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,243 INFO L280 TraceCheckUtils]: 2: Hoare triple {1190#(= 1 |hanoi_#in~n|)} assume true; {1190#(= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,245 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1190#(= 1 |hanoi_#in~n|)} {1184#(= hanoi_~n |hanoi_#in~n|)} #42#return; {1189#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,245 INFO L280 TraceCheckUtils]: 0: Hoare triple {1141#true} ~n := #in~n; {1184#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,246 INFO L280 TraceCheckUtils]: 1: Hoare triple {1184#(= hanoi_~n |hanoi_#in~n|)} assume !(1 == ~n); {1184#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,246 INFO L263 TraceCheckUtils]: 2: Hoare triple {1184#(= hanoi_~n |hanoi_#in~n|)} call #t~ret0 := hanoi(~n - 1); {1141#true} is VALID [2020-07-08 12:01:57,247 INFO L280 TraceCheckUtils]: 3: Hoare triple {1141#true} ~n := #in~n; {1184#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,248 INFO L280 TraceCheckUtils]: 4: Hoare triple {1184#(= hanoi_~n |hanoi_#in~n|)} assume 1 == ~n;#res := 1; {1190#(= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,249 INFO L280 TraceCheckUtils]: 5: Hoare triple {1190#(= 1 |hanoi_#in~n|)} assume true; {1190#(= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,250 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {1190#(= 1 |hanoi_#in~n|)} {1184#(= hanoi_~n |hanoi_#in~n|)} #42#return; {1189#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,251 INFO L280 TraceCheckUtils]: 7: Hoare triple {1189#(<= 2 |hanoi_#in~n|)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {1189#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,251 INFO L280 TraceCheckUtils]: 8: Hoare triple {1189#(<= 2 |hanoi_#in~n|)} assume true; {1189#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,253 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {1189#(<= 2 |hanoi_#in~n|)} {1160#(<= main_~n~0 1)} #50#return; {1142#false} is VALID [2020-07-08 12:01:57,254 INFO L263 TraceCheckUtils]: 0: Hoare triple {1141#true} call ULTIMATE.init(); {1171#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:57,254 INFO L280 TraceCheckUtils]: 1: Hoare triple {1171#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {1141#true} is VALID [2020-07-08 12:01:57,255 INFO L280 TraceCheckUtils]: 2: Hoare triple {1141#true} assume true; {1141#true} is VALID [2020-07-08 12:01:57,255 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1141#true} {1141#true} #44#return; {1141#true} is VALID [2020-07-08 12:01:57,255 INFO L263 TraceCheckUtils]: 4: Hoare triple {1141#true} call #t~ret4 := main(); {1141#true} is VALID [2020-07-08 12:01:57,255 INFO L280 TraceCheckUtils]: 5: Hoare triple {1141#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {1141#true} is VALID [2020-07-08 12:01:57,256 INFO L280 TraceCheckUtils]: 6: Hoare triple {1141#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {1141#true} is VALID [2020-07-08 12:01:57,257 INFO L263 TraceCheckUtils]: 7: Hoare triple {1141#true} call applyHanoi(~n~0, 1, 3, 2); {1171#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:57,258 INFO L280 TraceCheckUtils]: 8: Hoare triple {1171#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:57,259 INFO L280 TraceCheckUtils]: 9: Hoare triple {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:57,260 INFO L263 TraceCheckUtils]: 10: Hoare triple {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {1171#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:57,261 INFO L280 TraceCheckUtils]: 11: Hoare triple {1171#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:57,262 INFO L280 TraceCheckUtils]: 12: Hoare triple {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {1183#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:57,263 INFO L280 TraceCheckUtils]: 13: Hoare triple {1183#(= 0 |applyHanoi_#in~n|)} assume true; {1183#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:01:57,265 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {1183#(= 0 |applyHanoi_#in~n|)} {1172#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {1177#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} is VALID [2020-07-08 12:01:57,266 INFO L263 TraceCheckUtils]: 15: Hoare triple {1177#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} call applyHanoi(~n - 1, ~via, ~to, ~from); {1171#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:57,267 INFO L280 TraceCheckUtils]: 16: Hoare triple {1171#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1141#true} is VALID [2020-07-08 12:01:57,267 INFO L280 TraceCheckUtils]: 17: Hoare triple {1141#true} assume 0 == ~n; {1141#true} is VALID [2020-07-08 12:01:57,267 INFO L280 TraceCheckUtils]: 18: Hoare triple {1141#true} assume true; {1141#true} is VALID [2020-07-08 12:01:57,269 INFO L275 TraceCheckUtils]: 19: Hoare quadruple {1141#true} {1177#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} #40#return; {1182#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:01:57,270 INFO L280 TraceCheckUtils]: 20: Hoare triple {1182#(<= |applyHanoi_#in~n| 1)} assume true; {1182#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:01:57,271 INFO L275 TraceCheckUtils]: 21: Hoare quadruple {1182#(<= |applyHanoi_#in~n| 1)} {1141#true} #48#return; {1160#(<= main_~n~0 1)} is VALID [2020-07-08 12:01:57,272 INFO L263 TraceCheckUtils]: 22: Hoare triple {1160#(<= main_~n~0 1)} call #t~ret3 := hanoi(~n~0); {1141#true} is VALID [2020-07-08 12:01:57,272 INFO L280 TraceCheckUtils]: 23: Hoare triple {1141#true} ~n := #in~n; {1184#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,273 INFO L280 TraceCheckUtils]: 24: Hoare triple {1184#(= hanoi_~n |hanoi_#in~n|)} assume !(1 == ~n); {1184#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,273 INFO L263 TraceCheckUtils]: 25: Hoare triple {1184#(= hanoi_~n |hanoi_#in~n|)} call #t~ret0 := hanoi(~n - 1); {1141#true} is VALID [2020-07-08 12:01:57,274 INFO L280 TraceCheckUtils]: 26: Hoare triple {1141#true} ~n := #in~n; {1184#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,275 INFO L280 TraceCheckUtils]: 27: Hoare triple {1184#(= hanoi_~n |hanoi_#in~n|)} assume 1 == ~n;#res := 1; {1190#(= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,275 INFO L280 TraceCheckUtils]: 28: Hoare triple {1190#(= 1 |hanoi_#in~n|)} assume true; {1190#(= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,277 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {1190#(= 1 |hanoi_#in~n|)} {1184#(= hanoi_~n |hanoi_#in~n|)} #42#return; {1189#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,277 INFO L280 TraceCheckUtils]: 30: Hoare triple {1189#(<= 2 |hanoi_#in~n|)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {1189#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,278 INFO L280 TraceCheckUtils]: 31: Hoare triple {1189#(<= 2 |hanoi_#in~n|)} assume true; {1189#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,279 INFO L275 TraceCheckUtils]: 32: Hoare quadruple {1189#(<= 2 |hanoi_#in~n|)} {1160#(<= main_~n~0 1)} #50#return; {1142#false} is VALID [2020-07-08 12:01:57,279 INFO L280 TraceCheckUtils]: 33: Hoare triple {1142#false} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {1142#false} is VALID [2020-07-08 12:01:57,279 INFO L280 TraceCheckUtils]: 34: Hoare triple {1142#false} assume !(~result~0 == ~counter~0); {1142#false} is VALID [2020-07-08 12:01:57,280 INFO L280 TraceCheckUtils]: 35: Hoare triple {1142#false} assume !false; {1142#false} is VALID [2020-07-08 12:01:57,281 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 2 proven. 8 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2020-07-08 12:01:57,282 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [245329174] [2020-07-08 12:01:57,282 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [848002650] [2020-07-08 12:01:57,282 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-08 12:01:57,340 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:57,342 INFO L264 TraceCheckSpWp]: Trace formula consists of 130 conjuncts, 10 conjunts are in the unsatisfiable core [2020-07-08 12:01:57,356 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:57,358 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-08 12:01:57,552 INFO L263 TraceCheckUtils]: 0: Hoare triple {1141#true} call ULTIMATE.init(); {1141#true} is VALID [2020-07-08 12:01:57,553 INFO L280 TraceCheckUtils]: 1: Hoare triple {1141#true} ~counter~0 := 0; {1141#true} is VALID [2020-07-08 12:01:57,553 INFO L280 TraceCheckUtils]: 2: Hoare triple {1141#true} assume true; {1141#true} is VALID [2020-07-08 12:01:57,553 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1141#true} {1141#true} #44#return; {1141#true} is VALID [2020-07-08 12:01:57,553 INFO L263 TraceCheckUtils]: 4: Hoare triple {1141#true} call #t~ret4 := main(); {1141#true} is VALID [2020-07-08 12:01:57,554 INFO L280 TraceCheckUtils]: 5: Hoare triple {1141#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {1141#true} is VALID [2020-07-08 12:01:57,554 INFO L280 TraceCheckUtils]: 6: Hoare triple {1141#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {1141#true} is VALID [2020-07-08 12:01:57,554 INFO L263 TraceCheckUtils]: 7: Hoare triple {1141#true} call applyHanoi(~n~0, 1, 3, 2); {1141#true} is VALID [2020-07-08 12:01:57,558 INFO L280 TraceCheckUtils]: 8: Hoare triple {1141#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1218#(<= |applyHanoi_#in~n| applyHanoi_~n)} is VALID [2020-07-08 12:01:57,559 INFO L280 TraceCheckUtils]: 9: Hoare triple {1218#(<= |applyHanoi_#in~n| applyHanoi_~n)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {1218#(<= |applyHanoi_#in~n| applyHanoi_~n)} is VALID [2020-07-08 12:01:57,559 INFO L263 TraceCheckUtils]: 10: Hoare triple {1218#(<= |applyHanoi_#in~n| applyHanoi_~n)} call applyHanoi(~n - 1, ~from, ~via, ~to); {1141#true} is VALID [2020-07-08 12:01:57,559 INFO L280 TraceCheckUtils]: 11: Hoare triple {1141#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1218#(<= |applyHanoi_#in~n| applyHanoi_~n)} is VALID [2020-07-08 12:01:57,560 INFO L280 TraceCheckUtils]: 12: Hoare triple {1218#(<= |applyHanoi_#in~n| applyHanoi_~n)} assume 0 == ~n; {1231#(<= |applyHanoi_#in~n| 0)} is VALID [2020-07-08 12:01:57,560 INFO L280 TraceCheckUtils]: 13: Hoare triple {1231#(<= |applyHanoi_#in~n| 0)} assume true; {1231#(<= |applyHanoi_#in~n| 0)} is VALID [2020-07-08 12:01:57,561 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {1231#(<= |applyHanoi_#in~n| 0)} {1218#(<= |applyHanoi_#in~n| applyHanoi_~n)} #38#return; {1182#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:01:57,562 INFO L263 TraceCheckUtils]: 15: Hoare triple {1182#(<= |applyHanoi_#in~n| 1)} call applyHanoi(~n - 1, ~via, ~to, ~from); {1141#true} is VALID [2020-07-08 12:01:57,562 INFO L280 TraceCheckUtils]: 16: Hoare triple {1141#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1141#true} is VALID [2020-07-08 12:01:57,562 INFO L280 TraceCheckUtils]: 17: Hoare triple {1141#true} assume 0 == ~n; {1141#true} is VALID [2020-07-08 12:01:57,562 INFO L280 TraceCheckUtils]: 18: Hoare triple {1141#true} assume true; {1141#true} is VALID [2020-07-08 12:01:57,563 INFO L275 TraceCheckUtils]: 19: Hoare quadruple {1141#true} {1182#(<= |applyHanoi_#in~n| 1)} #40#return; {1182#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:01:57,563 INFO L280 TraceCheckUtils]: 20: Hoare triple {1182#(<= |applyHanoi_#in~n| 1)} assume true; {1182#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:01:57,564 INFO L275 TraceCheckUtils]: 21: Hoare quadruple {1182#(<= |applyHanoi_#in~n| 1)} {1141#true} #48#return; {1160#(<= main_~n~0 1)} is VALID [2020-07-08 12:01:57,564 INFO L263 TraceCheckUtils]: 22: Hoare triple {1160#(<= main_~n~0 1)} call #t~ret3 := hanoi(~n~0); {1141#true} is VALID [2020-07-08 12:01:57,565 INFO L280 TraceCheckUtils]: 23: Hoare triple {1141#true} ~n := #in~n; {1265#(<= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,565 INFO L280 TraceCheckUtils]: 24: Hoare triple {1265#(<= hanoi_~n |hanoi_#in~n|)} assume !(1 == ~n); {1265#(<= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,565 INFO L263 TraceCheckUtils]: 25: Hoare triple {1265#(<= hanoi_~n |hanoi_#in~n|)} call #t~ret0 := hanoi(~n - 1); {1141#true} is VALID [2020-07-08 12:01:57,566 INFO L280 TraceCheckUtils]: 26: Hoare triple {1141#true} ~n := #in~n; {1265#(<= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,567 INFO L280 TraceCheckUtils]: 27: Hoare triple {1265#(<= hanoi_~n |hanoi_#in~n|)} assume 1 == ~n;#res := 1; {1278#(<= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,567 INFO L280 TraceCheckUtils]: 28: Hoare triple {1278#(<= 1 |hanoi_#in~n|)} assume true; {1278#(<= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,568 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {1278#(<= 1 |hanoi_#in~n|)} {1265#(<= hanoi_~n |hanoi_#in~n|)} #42#return; {1189#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,569 INFO L280 TraceCheckUtils]: 30: Hoare triple {1189#(<= 2 |hanoi_#in~n|)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {1189#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,569 INFO L280 TraceCheckUtils]: 31: Hoare triple {1189#(<= 2 |hanoi_#in~n|)} assume true; {1189#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:01:57,571 INFO L275 TraceCheckUtils]: 32: Hoare quadruple {1189#(<= 2 |hanoi_#in~n|)} {1160#(<= main_~n~0 1)} #50#return; {1142#false} is VALID [2020-07-08 12:01:57,571 INFO L280 TraceCheckUtils]: 33: Hoare triple {1142#false} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {1142#false} is VALID [2020-07-08 12:01:57,572 INFO L280 TraceCheckUtils]: 34: Hoare triple {1142#false} assume !(~result~0 == ~counter~0); {1142#false} is VALID [2020-07-08 12:01:57,572 INFO L280 TraceCheckUtils]: 35: Hoare triple {1142#false} assume !false; {1142#false} is VALID [2020-07-08 12:01:57,574 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 4 proven. 6 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2020-07-08 12:01:57,574 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-08 12:01:57,574 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 9] total 15 [2020-07-08 12:01:57,575 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [318717827] [2020-07-08 12:01:57,575 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 36 [2020-07-08 12:01:57,576 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-08 12:01:57,577 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 15 states. [2020-07-08 12:01:57,642 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-08 12:01:57,642 INFO L459 AbstractCegarLoop]: Interpolant automaton has 15 states [2020-07-08 12:01:57,642 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-08 12:01:57,643 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2020-07-08 12:01:57,643 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=37, Invalid=173, Unknown=0, NotChecked=0, Total=210 [2020-07-08 12:01:57,643 INFO L87 Difference]: Start difference. First operand 48 states and 58 transitions. Second operand 15 states. [2020-07-08 12:01:58,487 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:01:58,488 INFO L93 Difference]: Finished difference Result 53 states and 63 transitions. [2020-07-08 12:01:58,488 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2020-07-08 12:01:58,488 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 36 [2020-07-08 12:01:58,488 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-08 12:01:58,489 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2020-07-08 12:01:58,491 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 46 transitions. [2020-07-08 12:01:58,491 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2020-07-08 12:01:58,493 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 46 transitions. [2020-07-08 12:01:58,494 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states and 46 transitions. [2020-07-08 12:01:58,556 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-08 12:01:58,560 INFO L225 Difference]: With dead ends: 53 [2020-07-08 12:01:58,560 INFO L226 Difference]: Without dead ends: 41 [2020-07-08 12:01:58,561 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 62 GetRequests, 42 SyntacticMatches, 0 SemanticMatches, 20 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=90, Invalid=372, Unknown=0, NotChecked=0, Total=462 [2020-07-08 12:01:58,562 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 41 states. [2020-07-08 12:01:58,600 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 41 to 39. [2020-07-08 12:01:58,600 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-08 12:01:58,600 INFO L82 GeneralOperation]: Start isEquivalent. First operand 41 states. Second operand 39 states. [2020-07-08 12:01:58,600 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 39 states. [2020-07-08 12:01:58,601 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 39 states. [2020-07-08 12:01:58,603 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:01:58,604 INFO L93 Difference]: Finished difference Result 41 states and 49 transitions. [2020-07-08 12:01:58,604 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 49 transitions. [2020-07-08 12:01:58,605 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-08 12:01:58,605 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-08 12:01:58,605 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 41 states. [2020-07-08 12:01:58,605 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 41 states. [2020-07-08 12:01:58,608 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:01:58,608 INFO L93 Difference]: Finished difference Result 41 states and 49 transitions. [2020-07-08 12:01:58,608 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 49 transitions. [2020-07-08 12:01:58,609 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-08 12:01:58,609 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-08 12:01:58,609 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-08 12:01:58,609 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-08 12:01:58,609 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2020-07-08 12:01:58,612 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 47 transitions. [2020-07-08 12:01:58,612 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 47 transitions. Word has length 36 [2020-07-08 12:01:58,612 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-08 12:01:58,612 INFO L479 AbstractCegarLoop]: Abstraction has 39 states and 47 transitions. [2020-07-08 12:01:58,613 INFO L480 AbstractCegarLoop]: Interpolant automaton has 15 states. [2020-07-08 12:01:58,613 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 47 transitions. [2020-07-08 12:01:58,614 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 57 [2020-07-08 12:01:58,614 INFO L414 BasicCegarLoop]: Found error trace [2020-07-08 12:01:58,614 INFO L422 BasicCegarLoop]: trace histogram [7, 7, 4, 3, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-08 12:01:58,828 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3,4 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-08 12:01:58,829 INFO L427 AbstractCegarLoop]: === Iteration 5 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-08 12:01:58,830 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-08 12:01:58,830 INFO L82 PathProgramCache]: Analyzing trace with hash -979408629, now seen corresponding path program 2 times [2020-07-08 12:01:58,831 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-08 12:01:58,831 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1920713587] [2020-07-08 12:01:58,831 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-08 12:01:58,898 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:59,000 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:59,003 INFO L280 TraceCheckUtils]: 0: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {1526#true} is VALID [2020-07-08 12:01:59,003 INFO L280 TraceCheckUtils]: 1: Hoare triple {1526#true} assume true; {1526#true} is VALID [2020-07-08 12:01:59,004 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {1526#true} {1526#true} #44#return; {1526#true} is VALID [2020-07-08 12:01:59,016 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:59,148 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:59,176 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:59,183 INFO L280 TraceCheckUtils]: 0: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,184 INFO L280 TraceCheckUtils]: 1: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,185 INFO L280 TraceCheckUtils]: 2: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,187 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,190 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:59,202 INFO L280 TraceCheckUtils]: 0: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,203 INFO L280 TraceCheckUtils]: 1: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,203 INFO L280 TraceCheckUtils]: 2: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,205 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,206 INFO L280 TraceCheckUtils]: 0: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,207 INFO L280 TraceCheckUtils]: 1: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,208 INFO L263 TraceCheckUtils]: 2: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,209 INFO L280 TraceCheckUtils]: 3: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,209 INFO L280 TraceCheckUtils]: 4: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,210 INFO L280 TraceCheckUtils]: 5: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,212 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,214 INFO L263 TraceCheckUtils]: 7: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,214 INFO L280 TraceCheckUtils]: 8: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,215 INFO L280 TraceCheckUtils]: 9: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,216 INFO L280 TraceCheckUtils]: 10: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,218 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,218 INFO L280 TraceCheckUtils]: 12: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,221 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {1595#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} is VALID [2020-07-08 12:01:59,226 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:59,251 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:59,258 INFO L280 TraceCheckUtils]: 0: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,259 INFO L280 TraceCheckUtils]: 1: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,259 INFO L280 TraceCheckUtils]: 2: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,261 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,265 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:59,272 INFO L280 TraceCheckUtils]: 0: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,273 INFO L280 TraceCheckUtils]: 1: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,273 INFO L280 TraceCheckUtils]: 2: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,275 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,276 INFO L280 TraceCheckUtils]: 0: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,277 INFO L280 TraceCheckUtils]: 1: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,278 INFO L263 TraceCheckUtils]: 2: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,279 INFO L280 TraceCheckUtils]: 3: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,279 INFO L280 TraceCheckUtils]: 4: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,280 INFO L280 TraceCheckUtils]: 5: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,282 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,283 INFO L263 TraceCheckUtils]: 7: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,284 INFO L280 TraceCheckUtils]: 8: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,284 INFO L280 TraceCheckUtils]: 9: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,285 INFO L280 TraceCheckUtils]: 10: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,287 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,288 INFO L280 TraceCheckUtils]: 12: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,290 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {1595#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} #40#return; {1610#(and (or (<= (+ |old(~counter~0)| 3) ~counter~0) (< 2 ~counter~0)) (or (<= ~counter~0 3) (<= ~counter~0 (+ |old(~counter~0)| 3))))} is VALID [2020-07-08 12:01:59,291 INFO L280 TraceCheckUtils]: 0: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,292 INFO L280 TraceCheckUtils]: 1: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,293 INFO L263 TraceCheckUtils]: 2: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,294 INFO L280 TraceCheckUtils]: 3: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,295 INFO L280 TraceCheckUtils]: 4: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,296 INFO L263 TraceCheckUtils]: 5: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,296 INFO L280 TraceCheckUtils]: 6: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,297 INFO L280 TraceCheckUtils]: 7: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,298 INFO L280 TraceCheckUtils]: 8: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,299 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,301 INFO L263 TraceCheckUtils]: 10: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,301 INFO L280 TraceCheckUtils]: 11: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,302 INFO L280 TraceCheckUtils]: 12: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,303 INFO L280 TraceCheckUtils]: 13: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,318 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,323 INFO L280 TraceCheckUtils]: 15: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,326 INFO L275 TraceCheckUtils]: 16: Hoare quadruple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {1595#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} is VALID [2020-07-08 12:01:59,327 INFO L263 TraceCheckUtils]: 17: Hoare triple {1595#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} call applyHanoi(~n - 1, ~via, ~to, ~from); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,327 INFO L280 TraceCheckUtils]: 18: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,328 INFO L280 TraceCheckUtils]: 19: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,329 INFO L263 TraceCheckUtils]: 20: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,330 INFO L280 TraceCheckUtils]: 21: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,330 INFO L280 TraceCheckUtils]: 22: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,330 INFO L280 TraceCheckUtils]: 23: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,331 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,335 INFO L263 TraceCheckUtils]: 25: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,336 INFO L280 TraceCheckUtils]: 26: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,336 INFO L280 TraceCheckUtils]: 27: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,336 INFO L280 TraceCheckUtils]: 28: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,337 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,338 INFO L280 TraceCheckUtils]: 30: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,339 INFO L275 TraceCheckUtils]: 31: Hoare quadruple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {1595#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} #40#return; {1610#(and (or (<= (+ |old(~counter~0)| 3) ~counter~0) (< 2 ~counter~0)) (or (<= ~counter~0 3) (<= ~counter~0 (+ |old(~counter~0)| 3))))} is VALID [2020-07-08 12:01:59,340 INFO L280 TraceCheckUtils]: 32: Hoare triple {1610#(and (or (<= (+ |old(~counter~0)| 3) ~counter~0) (< 2 ~counter~0)) (or (<= ~counter~0 3) (<= ~counter~0 (+ |old(~counter~0)| 3))))} assume true; {1610#(and (or (<= (+ |old(~counter~0)| 3) ~counter~0) (< 2 ~counter~0)) (or (<= ~counter~0 3) (<= ~counter~0 (+ |old(~counter~0)| 3))))} is VALID [2020-07-08 12:01:59,344 INFO L275 TraceCheckUtils]: 33: Hoare quadruple {1610#(and (or (<= (+ |old(~counter~0)| 3) ~counter~0) (< 2 ~counter~0)) (or (<= ~counter~0 3) (<= ~counter~0 (+ |old(~counter~0)| 3))))} {1531#(and (<= 0 ~counter~0) (<= ~counter~0 0))} #48#return; {1566#(= ~counter~0 3)} is VALID [2020-07-08 12:01:59,350 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:59,420 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:59,442 INFO L280 TraceCheckUtils]: 0: Hoare triple {1526#true} ~n := #in~n; {1526#true} is VALID [2020-07-08 12:01:59,443 INFO L280 TraceCheckUtils]: 1: Hoare triple {1526#true} assume 1 == ~n;#res := 1; {1633#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:01:59,443 INFO L280 TraceCheckUtils]: 2: Hoare triple {1633#(= 1 |hanoi_#res|)} assume true; {1633#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:01:59,444 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1633#(= 1 |hanoi_#res|)} {1526#true} #42#return; {1631#(= 1 |hanoi_#t~ret0|)} is VALID [2020-07-08 12:01:59,445 INFO L280 TraceCheckUtils]: 0: Hoare triple {1526#true} ~n := #in~n; {1526#true} is VALID [2020-07-08 12:01:59,445 INFO L280 TraceCheckUtils]: 1: Hoare triple {1526#true} assume !(1 == ~n); {1526#true} is VALID [2020-07-08 12:01:59,445 INFO L263 TraceCheckUtils]: 2: Hoare triple {1526#true} call #t~ret0 := hanoi(~n - 1); {1526#true} is VALID [2020-07-08 12:01:59,445 INFO L280 TraceCheckUtils]: 3: Hoare triple {1526#true} ~n := #in~n; {1526#true} is VALID [2020-07-08 12:01:59,446 INFO L280 TraceCheckUtils]: 4: Hoare triple {1526#true} assume 1 == ~n;#res := 1; {1633#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:01:59,446 INFO L280 TraceCheckUtils]: 5: Hoare triple {1633#(= 1 |hanoi_#res|)} assume true; {1633#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:01:59,447 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {1633#(= 1 |hanoi_#res|)} {1526#true} #42#return; {1631#(= 1 |hanoi_#t~ret0|)} is VALID [2020-07-08 12:01:59,448 INFO L280 TraceCheckUtils]: 7: Hoare triple {1631#(= 1 |hanoi_#t~ret0|)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {1632#(and (<= |hanoi_#res| 3) (< 2 |hanoi_#res|))} is VALID [2020-07-08 12:01:59,449 INFO L280 TraceCheckUtils]: 8: Hoare triple {1632#(and (<= |hanoi_#res| 3) (< 2 |hanoi_#res|))} assume true; {1632#(and (<= |hanoi_#res| 3) (< 2 |hanoi_#res|))} is VALID [2020-07-08 12:01:59,450 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {1632#(and (<= |hanoi_#res| 3) (< 2 |hanoi_#res|))} {1566#(= ~counter~0 3)} #50#return; {1577#(= ~counter~0 |main_#t~ret3|)} is VALID [2020-07-08 12:01:59,451 INFO L263 TraceCheckUtils]: 0: Hoare triple {1526#true} call ULTIMATE.init(); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,451 INFO L280 TraceCheckUtils]: 1: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {1526#true} is VALID [2020-07-08 12:01:59,451 INFO L280 TraceCheckUtils]: 2: Hoare triple {1526#true} assume true; {1526#true} is VALID [2020-07-08 12:01:59,451 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1526#true} {1526#true} #44#return; {1526#true} is VALID [2020-07-08 12:01:59,452 INFO L263 TraceCheckUtils]: 4: Hoare triple {1526#true} call #t~ret4 := main(); {1526#true} is VALID [2020-07-08 12:01:59,452 INFO L280 TraceCheckUtils]: 5: Hoare triple {1526#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {1526#true} is VALID [2020-07-08 12:01:59,452 INFO L280 TraceCheckUtils]: 6: Hoare triple {1526#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {1531#(and (<= 0 ~counter~0) (<= ~counter~0 0))} is VALID [2020-07-08 12:01:59,453 INFO L263 TraceCheckUtils]: 7: Hoare triple {1531#(and (<= 0 ~counter~0) (<= ~counter~0 0))} call applyHanoi(~n~0, 1, 3, 2); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,454 INFO L280 TraceCheckUtils]: 8: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,455 INFO L280 TraceCheckUtils]: 9: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,456 INFO L263 TraceCheckUtils]: 10: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,456 INFO L280 TraceCheckUtils]: 11: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,457 INFO L280 TraceCheckUtils]: 12: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,458 INFO L263 TraceCheckUtils]: 13: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,459 INFO L280 TraceCheckUtils]: 14: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,459 INFO L280 TraceCheckUtils]: 15: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,460 INFO L280 TraceCheckUtils]: 16: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,461 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,463 INFO L263 TraceCheckUtils]: 18: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,464 INFO L280 TraceCheckUtils]: 19: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,464 INFO L280 TraceCheckUtils]: 20: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,465 INFO L280 TraceCheckUtils]: 21: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,466 INFO L275 TraceCheckUtils]: 22: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,467 INFO L280 TraceCheckUtils]: 23: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,469 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {1595#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} is VALID [2020-07-08 12:01:59,470 INFO L263 TraceCheckUtils]: 25: Hoare triple {1595#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} call applyHanoi(~n - 1, ~via, ~to, ~from); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,471 INFO L280 TraceCheckUtils]: 26: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,472 INFO L280 TraceCheckUtils]: 27: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,473 INFO L263 TraceCheckUtils]: 28: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,474 INFO L280 TraceCheckUtils]: 29: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,474 INFO L280 TraceCheckUtils]: 30: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,475 INFO L280 TraceCheckUtils]: 31: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,476 INFO L275 TraceCheckUtils]: 32: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,477 INFO L263 TraceCheckUtils]: 33: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,478 INFO L280 TraceCheckUtils]: 34: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,478 INFO L280 TraceCheckUtils]: 35: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,479 INFO L280 TraceCheckUtils]: 36: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:01:59,480 INFO L275 TraceCheckUtils]: 37: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,481 INFO L280 TraceCheckUtils]: 38: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:01:59,483 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {1595#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} #40#return; {1610#(and (or (<= (+ |old(~counter~0)| 3) ~counter~0) (< 2 ~counter~0)) (or (<= ~counter~0 3) (<= ~counter~0 (+ |old(~counter~0)| 3))))} is VALID [2020-07-08 12:01:59,484 INFO L280 TraceCheckUtils]: 40: Hoare triple {1610#(and (or (<= (+ |old(~counter~0)| 3) ~counter~0) (< 2 ~counter~0)) (or (<= ~counter~0 3) (<= ~counter~0 (+ |old(~counter~0)| 3))))} assume true; {1610#(and (or (<= (+ |old(~counter~0)| 3) ~counter~0) (< 2 ~counter~0)) (or (<= ~counter~0 3) (<= ~counter~0 (+ |old(~counter~0)| 3))))} is VALID [2020-07-08 12:01:59,486 INFO L275 TraceCheckUtils]: 41: Hoare quadruple {1610#(and (or (<= (+ |old(~counter~0)| 3) ~counter~0) (< 2 ~counter~0)) (or (<= ~counter~0 3) (<= ~counter~0 (+ |old(~counter~0)| 3))))} {1531#(and (<= 0 ~counter~0) (<= ~counter~0 0))} #48#return; {1566#(= ~counter~0 3)} is VALID [2020-07-08 12:01:59,487 INFO L263 TraceCheckUtils]: 42: Hoare triple {1566#(= ~counter~0 3)} call #t~ret3 := hanoi(~n~0); {1526#true} is VALID [2020-07-08 12:01:59,487 INFO L280 TraceCheckUtils]: 43: Hoare triple {1526#true} ~n := #in~n; {1526#true} is VALID [2020-07-08 12:01:59,487 INFO L280 TraceCheckUtils]: 44: Hoare triple {1526#true} assume !(1 == ~n); {1526#true} is VALID [2020-07-08 12:01:59,487 INFO L263 TraceCheckUtils]: 45: Hoare triple {1526#true} call #t~ret0 := hanoi(~n - 1); {1526#true} is VALID [2020-07-08 12:01:59,487 INFO L280 TraceCheckUtils]: 46: Hoare triple {1526#true} ~n := #in~n; {1526#true} is VALID [2020-07-08 12:01:59,488 INFO L280 TraceCheckUtils]: 47: Hoare triple {1526#true} assume 1 == ~n;#res := 1; {1633#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:01:59,489 INFO L280 TraceCheckUtils]: 48: Hoare triple {1633#(= 1 |hanoi_#res|)} assume true; {1633#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:01:59,490 INFO L275 TraceCheckUtils]: 49: Hoare quadruple {1633#(= 1 |hanoi_#res|)} {1526#true} #42#return; {1631#(= 1 |hanoi_#t~ret0|)} is VALID [2020-07-08 12:01:59,491 INFO L280 TraceCheckUtils]: 50: Hoare triple {1631#(= 1 |hanoi_#t~ret0|)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {1632#(and (<= |hanoi_#res| 3) (< 2 |hanoi_#res|))} is VALID [2020-07-08 12:01:59,492 INFO L280 TraceCheckUtils]: 51: Hoare triple {1632#(and (<= |hanoi_#res| 3) (< 2 |hanoi_#res|))} assume true; {1632#(and (<= |hanoi_#res| 3) (< 2 |hanoi_#res|))} is VALID [2020-07-08 12:01:59,493 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {1632#(and (<= |hanoi_#res| 3) (< 2 |hanoi_#res|))} {1566#(= ~counter~0 3)} #50#return; {1577#(= ~counter~0 |main_#t~ret3|)} is VALID [2020-07-08 12:01:59,494 INFO L280 TraceCheckUtils]: 53: Hoare triple {1577#(= ~counter~0 |main_#t~ret3|)} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {1578#(= ~counter~0 main_~result~0)} is VALID [2020-07-08 12:01:59,494 INFO L280 TraceCheckUtils]: 54: Hoare triple {1578#(= ~counter~0 main_~result~0)} assume !(~result~0 == ~counter~0); {1527#false} is VALID [2020-07-08 12:01:59,494 INFO L280 TraceCheckUtils]: 55: Hoare triple {1527#false} assume !false; {1527#false} is VALID [2020-07-08 12:01:59,499 INFO L134 CoverageAnalysis]: Checked inductivity of 94 backedges. 0 proven. 32 refuted. 0 times theorem prover too weak. 62 trivial. 0 not checked. [2020-07-08 12:01:59,499 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1920713587] [2020-07-08 12:01:59,500 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [162799671] [2020-07-08 12:01:59,500 INFO L92 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-08 12:01:59,570 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2020-07-08 12:01:59,571 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2020-07-08 12:01:59,573 INFO L264 TraceCheckSpWp]: Trace formula consists of 228 conjuncts, 47 conjunts are in the unsatisfiable core [2020-07-08 12:01:59,594 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:01:59,598 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-08 12:02:00,126 INFO L263 TraceCheckUtils]: 0: Hoare triple {1526#true} call ULTIMATE.init(); {1526#true} is VALID [2020-07-08 12:02:00,126 INFO L280 TraceCheckUtils]: 1: Hoare triple {1526#true} ~counter~0 := 0; {1526#true} is VALID [2020-07-08 12:02:00,127 INFO L280 TraceCheckUtils]: 2: Hoare triple {1526#true} assume true; {1526#true} is VALID [2020-07-08 12:02:00,127 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {1526#true} {1526#true} #44#return; {1526#true} is VALID [2020-07-08 12:02:00,127 INFO L263 TraceCheckUtils]: 4: Hoare triple {1526#true} call #t~ret4 := main(); {1526#true} is VALID [2020-07-08 12:02:00,127 INFO L280 TraceCheckUtils]: 5: Hoare triple {1526#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {1526#true} is VALID [2020-07-08 12:02:00,128 INFO L280 TraceCheckUtils]: 6: Hoare triple {1526#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {1531#(and (<= 0 ~counter~0) (<= ~counter~0 0))} is VALID [2020-07-08 12:02:00,129 INFO L263 TraceCheckUtils]: 7: Hoare triple {1531#(and (<= 0 ~counter~0) (<= ~counter~0 0))} call applyHanoi(~n~0, 1, 3, 2); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,130 INFO L280 TraceCheckUtils]: 8: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,131 INFO L280 TraceCheckUtils]: 9: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:00,132 INFO L263 TraceCheckUtils]: 10: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,133 INFO L280 TraceCheckUtils]: 11: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,134 INFO L280 TraceCheckUtils]: 12: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:00,135 INFO L263 TraceCheckUtils]: 13: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,136 INFO L280 TraceCheckUtils]: 14: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,137 INFO L280 TraceCheckUtils]: 15: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,137 INFO L280 TraceCheckUtils]: 16: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,139 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:00,141 INFO L263 TraceCheckUtils]: 18: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,141 INFO L280 TraceCheckUtils]: 19: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,142 INFO L280 TraceCheckUtils]: 20: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,143 INFO L280 TraceCheckUtils]: 21: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,144 INFO L275 TraceCheckUtils]: 22: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:00,145 INFO L280 TraceCheckUtils]: 23: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:00,147 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {1595#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} is VALID [2020-07-08 12:02:00,149 INFO L263 TraceCheckUtils]: 25: Hoare triple {1595#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} call applyHanoi(~n - 1, ~via, ~to, ~from); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,149 INFO L280 TraceCheckUtils]: 26: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,150 INFO L280 TraceCheckUtils]: 27: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:00,152 INFO L263 TraceCheckUtils]: 28: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,152 INFO L280 TraceCheckUtils]: 29: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,153 INFO L280 TraceCheckUtils]: 30: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,153 INFO L280 TraceCheckUtils]: 31: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,155 INFO L275 TraceCheckUtils]: 32: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:00,157 INFO L263 TraceCheckUtils]: 33: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,157 INFO L280 TraceCheckUtils]: 34: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,158 INFO L280 TraceCheckUtils]: 35: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,158 INFO L280 TraceCheckUtils]: 36: Hoare triple {1579#(= ~counter~0 |old(~counter~0)|)} assume true; {1579#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:00,160 INFO L275 TraceCheckUtils]: 37: Hoare quadruple {1579#(= ~counter~0 |old(~counter~0)|)} {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:00,161 INFO L280 TraceCheckUtils]: 38: Hoare triple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:00,163 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {1580#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {1595#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} #40#return; {1754#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:00,163 INFO L280 TraceCheckUtils]: 40: Hoare triple {1754#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} assume true; {1754#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:00,165 INFO L275 TraceCheckUtils]: 41: Hoare quadruple {1754#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} {1531#(and (<= 0 ~counter~0) (<= ~counter~0 0))} #48#return; {1566#(= ~counter~0 3)} is VALID [2020-07-08 12:02:00,166 INFO L263 TraceCheckUtils]: 42: Hoare triple {1566#(= ~counter~0 3)} call #t~ret3 := hanoi(~n~0); {1566#(= ~counter~0 3)} is VALID [2020-07-08 12:02:00,166 INFO L280 TraceCheckUtils]: 43: Hoare triple {1566#(= ~counter~0 3)} ~n := #in~n; {1566#(= ~counter~0 3)} is VALID [2020-07-08 12:02:00,167 INFO L280 TraceCheckUtils]: 44: Hoare triple {1566#(= ~counter~0 3)} assume !(1 == ~n); {1566#(= ~counter~0 3)} is VALID [2020-07-08 12:02:00,168 INFO L263 TraceCheckUtils]: 45: Hoare triple {1566#(= ~counter~0 3)} call #t~ret0 := hanoi(~n - 1); {1566#(= ~counter~0 3)} is VALID [2020-07-08 12:02:00,169 INFO L280 TraceCheckUtils]: 46: Hoare triple {1566#(= ~counter~0 3)} ~n := #in~n; {1566#(= ~counter~0 3)} is VALID [2020-07-08 12:02:00,169 INFO L280 TraceCheckUtils]: 47: Hoare triple {1566#(= ~counter~0 3)} assume 1 == ~n;#res := 1; {1779#(and (= ~counter~0 3) (= 1 |hanoi_#res|))} is VALID [2020-07-08 12:02:00,170 INFO L280 TraceCheckUtils]: 48: Hoare triple {1779#(and (= ~counter~0 3) (= 1 |hanoi_#res|))} assume true; {1779#(and (= ~counter~0 3) (= 1 |hanoi_#res|))} is VALID [2020-07-08 12:02:00,171 INFO L275 TraceCheckUtils]: 49: Hoare quadruple {1779#(and (= ~counter~0 3) (= 1 |hanoi_#res|))} {1566#(= ~counter~0 3)} #42#return; {1786#(and (= ~counter~0 3) (= 1 |hanoi_#t~ret0|))} is VALID [2020-07-08 12:02:00,172 INFO L280 TraceCheckUtils]: 50: Hoare triple {1786#(and (= ~counter~0 3) (= 1 |hanoi_#t~ret0|))} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {1790#(and (= ~counter~0 3) (= 3 |hanoi_#res|))} is VALID [2020-07-08 12:02:00,173 INFO L280 TraceCheckUtils]: 51: Hoare triple {1790#(and (= ~counter~0 3) (= 3 |hanoi_#res|))} assume true; {1790#(and (= ~counter~0 3) (= 3 |hanoi_#res|))} is VALID [2020-07-08 12:02:00,174 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {1790#(and (= ~counter~0 3) (= 3 |hanoi_#res|))} {1566#(= ~counter~0 3)} #50#return; {1797#(and (= 3 |main_#t~ret3|) (= ~counter~0 3))} is VALID [2020-07-08 12:02:00,175 INFO L280 TraceCheckUtils]: 53: Hoare triple {1797#(and (= 3 |main_#t~ret3|) (= ~counter~0 3))} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {1801#(and (= ~counter~0 3) (= 3 main_~result~0))} is VALID [2020-07-08 12:02:00,176 INFO L280 TraceCheckUtils]: 54: Hoare triple {1801#(and (= ~counter~0 3) (= 3 main_~result~0))} assume !(~result~0 == ~counter~0); {1527#false} is VALID [2020-07-08 12:02:00,176 INFO L280 TraceCheckUtils]: 55: Hoare triple {1527#false} assume !false; {1527#false} is VALID [2020-07-08 12:02:00,183 INFO L134 CoverageAnalysis]: Checked inductivity of 94 backedges. 0 proven. 32 refuted. 0 times theorem prover too weak. 62 trivial. 0 not checked. [2020-07-08 12:02:00,184 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-08 12:02:00,184 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 13] total 19 [2020-07-08 12:02:00,184 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [38312257] [2020-07-08 12:02:00,186 INFO L78 Accepts]: Start accepts. Automaton has 19 states. Word has length 56 [2020-07-08 12:02:00,188 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-08 12:02:00,188 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 19 states. [2020-07-08 12:02:00,260 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-08 12:02:00,260 INFO L459 AbstractCegarLoop]: Interpolant automaton has 19 states [2020-07-08 12:02:00,260 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-08 12:02:00,261 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2020-07-08 12:02:00,261 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=52, Invalid=290, Unknown=0, NotChecked=0, Total=342 [2020-07-08 12:02:00,261 INFO L87 Difference]: Start difference. First operand 39 states and 47 transitions. Second operand 19 states. [2020-07-08 12:02:02,003 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:02:02,003 INFO L93 Difference]: Finished difference Result 65 states and 81 transitions. [2020-07-08 12:02:02,004 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 18 states. [2020-07-08 12:02:02,004 INFO L78 Accepts]: Start accepts. Automaton has 19 states. Word has length 56 [2020-07-08 12:02:02,004 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-08 12:02:02,004 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 19 states. [2020-07-08 12:02:02,007 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 73 transitions. [2020-07-08 12:02:02,008 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 19 states. [2020-07-08 12:02:02,010 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 73 transitions. [2020-07-08 12:02:02,011 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 18 states and 73 transitions. [2020-07-08 12:02:02,122 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 73 edges. 73 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-08 12:02:02,126 INFO L225 Difference]: With dead ends: 65 [2020-07-08 12:02:02,126 INFO L226 Difference]: Without dead ends: 61 [2020-07-08 12:02:02,127 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 106 GetRequests, 73 SyntacticMatches, 5 SemanticMatches, 28 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 132 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=121, Invalid=749, Unknown=0, NotChecked=0, Total=870 [2020-07-08 12:02:02,127 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 61 states. [2020-07-08 12:02:02,175 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 61 to 54. [2020-07-08 12:02:02,175 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-08 12:02:02,175 INFO L82 GeneralOperation]: Start isEquivalent. First operand 61 states. Second operand 54 states. [2020-07-08 12:02:02,175 INFO L74 IsIncluded]: Start isIncluded. First operand 61 states. Second operand 54 states. [2020-07-08 12:02:02,175 INFO L87 Difference]: Start difference. First operand 61 states. Second operand 54 states. [2020-07-08 12:02:02,179 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:02:02,180 INFO L93 Difference]: Finished difference Result 61 states and 77 transitions. [2020-07-08 12:02:02,180 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 77 transitions. [2020-07-08 12:02:02,181 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-08 12:02:02,181 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-08 12:02:02,181 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 61 states. [2020-07-08 12:02:02,181 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 61 states. [2020-07-08 12:02:02,185 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:02:02,185 INFO L93 Difference]: Finished difference Result 61 states and 77 transitions. [2020-07-08 12:02:02,185 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 77 transitions. [2020-07-08 12:02:02,186 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-08 12:02:02,186 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-08 12:02:02,186 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-08 12:02:02,186 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-08 12:02:02,187 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 54 states. [2020-07-08 12:02:02,190 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 54 states to 54 states and 70 transitions. [2020-07-08 12:02:02,190 INFO L78 Accepts]: Start accepts. Automaton has 54 states and 70 transitions. Word has length 56 [2020-07-08 12:02:02,190 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-08 12:02:02,190 INFO L479 AbstractCegarLoop]: Abstraction has 54 states and 70 transitions. [2020-07-08 12:02:02,190 INFO L480 AbstractCegarLoop]: Interpolant automaton has 19 states. [2020-07-08 12:02:02,191 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 70 transitions. [2020-07-08 12:02:02,192 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 77 [2020-07-08 12:02:02,192 INFO L414 BasicCegarLoop]: Found error trace [2020-07-08 12:02:02,192 INFO L422 BasicCegarLoop]: trace histogram [11, 11, 6, 5, 5, 5, 5, 5, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-08 12:02:02,405 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4,5 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-08 12:02:02,406 INFO L427 AbstractCegarLoop]: === Iteration 6 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-08 12:02:02,407 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-08 12:02:02,407 INFO L82 PathProgramCache]: Analyzing trace with hash -83361749, now seen corresponding path program 3 times [2020-07-08 12:02:02,408 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-08 12:02:02,408 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [565491955] [2020-07-08 12:02:02,408 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-08 12:02:02,432 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:02,457 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:02,460 INFO L280 TraceCheckUtils]: 0: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {2112#true} is VALID [2020-07-08 12:02:02,461 INFO L280 TraceCheckUtils]: 1: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,461 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {2112#true} {2112#true} #44#return; {2112#true} is VALID [2020-07-08 12:02:02,471 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:02,496 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:02,539 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:02,556 INFO L280 TraceCheckUtils]: 0: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,557 INFO L280 TraceCheckUtils]: 1: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,558 INFO L280 TraceCheckUtils]: 2: Hoare triple {2242#(= 0 |applyHanoi_#in~n|)} assume true; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,559 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2242#(= 0 |applyHanoi_#in~n|)} {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2236#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} is VALID [2020-07-08 12:02:02,561 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:02,567 INFO L280 TraceCheckUtils]: 0: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,568 INFO L280 TraceCheckUtils]: 1: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,568 INFO L280 TraceCheckUtils]: 2: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,569 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2112#true} {2236#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} #40#return; {2241#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:02,570 INFO L280 TraceCheckUtils]: 0: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,571 INFO L280 TraceCheckUtils]: 1: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,572 INFO L263 TraceCheckUtils]: 2: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,573 INFO L280 TraceCheckUtils]: 3: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,573 INFO L280 TraceCheckUtils]: 4: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,574 INFO L280 TraceCheckUtils]: 5: Hoare triple {2242#(= 0 |applyHanoi_#in~n|)} assume true; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,575 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {2242#(= 0 |applyHanoi_#in~n|)} {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2236#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} is VALID [2020-07-08 12:02:02,576 INFO L263 TraceCheckUtils]: 7: Hoare triple {2236#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} call applyHanoi(~n - 1, ~via, ~to, ~from); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,577 INFO L280 TraceCheckUtils]: 8: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,577 INFO L280 TraceCheckUtils]: 9: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,577 INFO L280 TraceCheckUtils]: 10: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,578 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {2112#true} {2236#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} #40#return; {2241#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:02,579 INFO L280 TraceCheckUtils]: 12: Hoare triple {2241#(<= |applyHanoi_#in~n| 1)} assume true; {2241#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:02,580 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {2241#(<= |applyHanoi_#in~n| 1)} {2112#true} #38#return; {2196#(<= applyHanoi_~n 2)} is VALID [2020-07-08 12:02:02,588 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:02,639 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:02,695 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:02,708 INFO L280 TraceCheckUtils]: 0: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,709 INFO L280 TraceCheckUtils]: 1: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,710 INFO L280 TraceCheckUtils]: 2: Hoare triple {2242#(= 0 |applyHanoi_#in~n|)} assume true; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,711 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2242#(= 0 |applyHanoi_#in~n|)} {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2277#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} is VALID [2020-07-08 12:02:02,713 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:02,717 INFO L280 TraceCheckUtils]: 0: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,718 INFO L280 TraceCheckUtils]: 1: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,718 INFO L280 TraceCheckUtils]: 2: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,721 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2112#true} {2277#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} #40#return; {2282#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,722 INFO L280 TraceCheckUtils]: 0: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,723 INFO L280 TraceCheckUtils]: 1: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,725 INFO L263 TraceCheckUtils]: 2: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,726 INFO L280 TraceCheckUtils]: 3: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,727 INFO L280 TraceCheckUtils]: 4: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,727 INFO L280 TraceCheckUtils]: 5: Hoare triple {2242#(= 0 |applyHanoi_#in~n|)} assume true; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,729 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {2242#(= 0 |applyHanoi_#in~n|)} {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2277#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} is VALID [2020-07-08 12:02:02,731 INFO L263 TraceCheckUtils]: 7: Hoare triple {2277#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,731 INFO L280 TraceCheckUtils]: 8: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,731 INFO L280 TraceCheckUtils]: 9: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,732 INFO L280 TraceCheckUtils]: 10: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,733 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {2112#true} {2277#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} #40#return; {2282#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,734 INFO L280 TraceCheckUtils]: 12: Hoare triple {2282#(<= 1 |applyHanoi_#in~n|)} assume true; {2282#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,736 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {2282#(<= 1 |applyHanoi_#in~n|)} {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2257#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} is VALID [2020-07-08 12:02:02,740 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:02,746 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:02,749 INFO L280 TraceCheckUtils]: 0: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,749 INFO L280 TraceCheckUtils]: 1: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,750 INFO L280 TraceCheckUtils]: 2: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,750 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2112#true} {2112#true} #38#return; {2112#true} is VALID [2020-07-08 12:02:02,751 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:02,754 INFO L280 TraceCheckUtils]: 0: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,754 INFO L280 TraceCheckUtils]: 1: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,755 INFO L280 TraceCheckUtils]: 2: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,755 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2112#true} {2112#true} #40#return; {2112#true} is VALID [2020-07-08 12:02:02,755 INFO L280 TraceCheckUtils]: 0: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,756 INFO L280 TraceCheckUtils]: 1: Hoare triple {2112#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2112#true} is VALID [2020-07-08 12:02:02,757 INFO L263 TraceCheckUtils]: 2: Hoare triple {2112#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,758 INFO L280 TraceCheckUtils]: 3: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,758 INFO L280 TraceCheckUtils]: 4: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,758 INFO L280 TraceCheckUtils]: 5: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,758 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {2112#true} {2112#true} #38#return; {2112#true} is VALID [2020-07-08 12:02:02,760 INFO L263 TraceCheckUtils]: 7: Hoare triple {2112#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,761 INFO L280 TraceCheckUtils]: 8: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,761 INFO L280 TraceCheckUtils]: 9: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,761 INFO L280 TraceCheckUtils]: 10: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,761 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {2112#true} {2112#true} #40#return; {2112#true} is VALID [2020-07-08 12:02:02,762 INFO L280 TraceCheckUtils]: 12: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,764 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {2112#true} {2257#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} #40#return; {2272#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,765 INFO L280 TraceCheckUtils]: 0: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,765 INFO L280 TraceCheckUtils]: 1: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,767 INFO L263 TraceCheckUtils]: 2: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,768 INFO L280 TraceCheckUtils]: 3: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,768 INFO L280 TraceCheckUtils]: 4: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,770 INFO L263 TraceCheckUtils]: 5: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,771 INFO L280 TraceCheckUtils]: 6: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,771 INFO L280 TraceCheckUtils]: 7: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,772 INFO L280 TraceCheckUtils]: 8: Hoare triple {2242#(= 0 |applyHanoi_#in~n|)} assume true; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,773 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {2242#(= 0 |applyHanoi_#in~n|)} {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2277#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} is VALID [2020-07-08 12:02:02,775 INFO L263 TraceCheckUtils]: 10: Hoare triple {2277#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,775 INFO L280 TraceCheckUtils]: 11: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,775 INFO L280 TraceCheckUtils]: 12: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,775 INFO L280 TraceCheckUtils]: 13: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,777 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {2112#true} {2277#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} #40#return; {2282#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,778 INFO L280 TraceCheckUtils]: 15: Hoare triple {2282#(<= 1 |applyHanoi_#in~n|)} assume true; {2282#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,779 INFO L275 TraceCheckUtils]: 16: Hoare quadruple {2282#(<= 1 |applyHanoi_#in~n|)} {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2257#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} is VALID [2020-07-08 12:02:02,781 INFO L263 TraceCheckUtils]: 17: Hoare triple {2257#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,781 INFO L280 TraceCheckUtils]: 18: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,782 INFO L280 TraceCheckUtils]: 19: Hoare triple {2112#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2112#true} is VALID [2020-07-08 12:02:02,783 INFO L263 TraceCheckUtils]: 20: Hoare triple {2112#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,783 INFO L280 TraceCheckUtils]: 21: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,783 INFO L280 TraceCheckUtils]: 22: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,783 INFO L280 TraceCheckUtils]: 23: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,784 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {2112#true} {2112#true} #38#return; {2112#true} is VALID [2020-07-08 12:02:02,785 INFO L263 TraceCheckUtils]: 25: Hoare triple {2112#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,785 INFO L280 TraceCheckUtils]: 26: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,786 INFO L280 TraceCheckUtils]: 27: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,786 INFO L280 TraceCheckUtils]: 28: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,786 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {2112#true} {2112#true} #40#return; {2112#true} is VALID [2020-07-08 12:02:02,786 INFO L280 TraceCheckUtils]: 30: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,788 INFO L275 TraceCheckUtils]: 31: Hoare quadruple {2112#true} {2257#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} #40#return; {2272#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,789 INFO L280 TraceCheckUtils]: 32: Hoare triple {2272#(<= 2 |applyHanoi_#in~n|)} assume true; {2272#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,790 INFO L275 TraceCheckUtils]: 33: Hoare quadruple {2272#(<= 2 |applyHanoi_#in~n|)} {2196#(<= applyHanoi_~n 2)} #40#return; {2113#false} is VALID [2020-07-08 12:02:02,792 INFO L280 TraceCheckUtils]: 0: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,792 INFO L280 TraceCheckUtils]: 1: Hoare triple {2112#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2112#true} is VALID [2020-07-08 12:02:02,794 INFO L263 TraceCheckUtils]: 2: Hoare triple {2112#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,795 INFO L280 TraceCheckUtils]: 3: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,795 INFO L280 TraceCheckUtils]: 4: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,797 INFO L263 TraceCheckUtils]: 5: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,798 INFO L280 TraceCheckUtils]: 6: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,799 INFO L280 TraceCheckUtils]: 7: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,799 INFO L280 TraceCheckUtils]: 8: Hoare triple {2242#(= 0 |applyHanoi_#in~n|)} assume true; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,801 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {2242#(= 0 |applyHanoi_#in~n|)} {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2236#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} is VALID [2020-07-08 12:02:02,803 INFO L263 TraceCheckUtils]: 10: Hoare triple {2236#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} call applyHanoi(~n - 1, ~via, ~to, ~from); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,803 INFO L280 TraceCheckUtils]: 11: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,803 INFO L280 TraceCheckUtils]: 12: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,803 INFO L280 TraceCheckUtils]: 13: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,805 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {2112#true} {2236#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} #40#return; {2241#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:02,806 INFO L280 TraceCheckUtils]: 15: Hoare triple {2241#(<= |applyHanoi_#in~n| 1)} assume true; {2241#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:02,808 INFO L275 TraceCheckUtils]: 16: Hoare quadruple {2241#(<= |applyHanoi_#in~n| 1)} {2112#true} #38#return; {2196#(<= applyHanoi_~n 2)} is VALID [2020-07-08 12:02:02,809 INFO L263 TraceCheckUtils]: 17: Hoare triple {2196#(<= applyHanoi_~n 2)} call applyHanoi(~n - 1, ~via, ~to, ~from); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,810 INFO L280 TraceCheckUtils]: 18: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,811 INFO L280 TraceCheckUtils]: 19: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,812 INFO L263 TraceCheckUtils]: 20: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,813 INFO L280 TraceCheckUtils]: 21: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,813 INFO L280 TraceCheckUtils]: 22: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,815 INFO L263 TraceCheckUtils]: 23: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,816 INFO L280 TraceCheckUtils]: 24: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,816 INFO L280 TraceCheckUtils]: 25: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,817 INFO L280 TraceCheckUtils]: 26: Hoare triple {2242#(= 0 |applyHanoi_#in~n|)} assume true; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,819 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {2242#(= 0 |applyHanoi_#in~n|)} {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2277#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} is VALID [2020-07-08 12:02:02,820 INFO L263 TraceCheckUtils]: 28: Hoare triple {2277#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,820 INFO L280 TraceCheckUtils]: 29: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,821 INFO L280 TraceCheckUtils]: 30: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,821 INFO L280 TraceCheckUtils]: 31: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,822 INFO L275 TraceCheckUtils]: 32: Hoare quadruple {2112#true} {2277#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} #40#return; {2282#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,823 INFO L280 TraceCheckUtils]: 33: Hoare triple {2282#(<= 1 |applyHanoi_#in~n|)} assume true; {2282#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,825 INFO L275 TraceCheckUtils]: 34: Hoare quadruple {2282#(<= 1 |applyHanoi_#in~n|)} {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2257#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} is VALID [2020-07-08 12:02:02,826 INFO L263 TraceCheckUtils]: 35: Hoare triple {2257#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,826 INFO L280 TraceCheckUtils]: 36: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,826 INFO L280 TraceCheckUtils]: 37: Hoare triple {2112#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2112#true} is VALID [2020-07-08 12:02:02,828 INFO L263 TraceCheckUtils]: 38: Hoare triple {2112#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,828 INFO L280 TraceCheckUtils]: 39: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,828 INFO L280 TraceCheckUtils]: 40: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,828 INFO L280 TraceCheckUtils]: 41: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,829 INFO L275 TraceCheckUtils]: 42: Hoare quadruple {2112#true} {2112#true} #38#return; {2112#true} is VALID [2020-07-08 12:02:02,830 INFO L263 TraceCheckUtils]: 43: Hoare triple {2112#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,830 INFO L280 TraceCheckUtils]: 44: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,830 INFO L280 TraceCheckUtils]: 45: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,830 INFO L280 TraceCheckUtils]: 46: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,831 INFO L275 TraceCheckUtils]: 47: Hoare quadruple {2112#true} {2112#true} #40#return; {2112#true} is VALID [2020-07-08 12:02:02,831 INFO L280 TraceCheckUtils]: 48: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,832 INFO L275 TraceCheckUtils]: 49: Hoare quadruple {2112#true} {2257#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} #40#return; {2272#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,833 INFO L280 TraceCheckUtils]: 50: Hoare triple {2272#(<= 2 |applyHanoi_#in~n|)} assume true; {2272#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,834 INFO L275 TraceCheckUtils]: 51: Hoare quadruple {2272#(<= 2 |applyHanoi_#in~n|)} {2196#(<= applyHanoi_~n 2)} #40#return; {2113#false} is VALID [2020-07-08 12:02:02,835 INFO L280 TraceCheckUtils]: 52: Hoare triple {2113#false} assume true; {2113#false} is VALID [2020-07-08 12:02:02,835 INFO L275 TraceCheckUtils]: 53: Hoare quadruple {2113#false} {2112#true} #48#return; {2113#false} is VALID [2020-07-08 12:02:02,840 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:02,845 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:02,848 INFO L280 TraceCheckUtils]: 0: Hoare triple {2112#true} ~n := #in~n; {2112#true} is VALID [2020-07-08 12:02:02,848 INFO L280 TraceCheckUtils]: 1: Hoare triple {2112#true} assume 1 == ~n;#res := 1; {2112#true} is VALID [2020-07-08 12:02:02,848 INFO L280 TraceCheckUtils]: 2: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,848 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2112#true} {2112#true} #42#return; {2112#true} is VALID [2020-07-08 12:02:02,849 INFO L280 TraceCheckUtils]: 0: Hoare triple {2112#true} ~n := #in~n; {2112#true} is VALID [2020-07-08 12:02:02,849 INFO L280 TraceCheckUtils]: 1: Hoare triple {2112#true} assume !(1 == ~n); {2112#true} is VALID [2020-07-08 12:02:02,849 INFO L263 TraceCheckUtils]: 2: Hoare triple {2112#true} call #t~ret0 := hanoi(~n - 1); {2112#true} is VALID [2020-07-08 12:02:02,849 INFO L280 TraceCheckUtils]: 3: Hoare triple {2112#true} ~n := #in~n; {2112#true} is VALID [2020-07-08 12:02:02,849 INFO L280 TraceCheckUtils]: 4: Hoare triple {2112#true} assume 1 == ~n;#res := 1; {2112#true} is VALID [2020-07-08 12:02:02,850 INFO L280 TraceCheckUtils]: 5: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,850 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {2112#true} {2112#true} #42#return; {2112#true} is VALID [2020-07-08 12:02:02,850 INFO L280 TraceCheckUtils]: 7: Hoare triple {2112#true} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {2112#true} is VALID [2020-07-08 12:02:02,850 INFO L280 TraceCheckUtils]: 8: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,850 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {2112#true} {2113#false} #50#return; {2113#false} is VALID [2020-07-08 12:02:02,851 INFO L263 TraceCheckUtils]: 0: Hoare triple {2112#true} call ULTIMATE.init(); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,852 INFO L280 TraceCheckUtils]: 1: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {2112#true} is VALID [2020-07-08 12:02:02,852 INFO L280 TraceCheckUtils]: 2: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,852 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2112#true} {2112#true} #44#return; {2112#true} is VALID [2020-07-08 12:02:02,852 INFO L263 TraceCheckUtils]: 4: Hoare triple {2112#true} call #t~ret4 := main(); {2112#true} is VALID [2020-07-08 12:02:02,852 INFO L280 TraceCheckUtils]: 5: Hoare triple {2112#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {2112#true} is VALID [2020-07-08 12:02:02,853 INFO L280 TraceCheckUtils]: 6: Hoare triple {2112#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {2112#true} is VALID [2020-07-08 12:02:02,854 INFO L263 TraceCheckUtils]: 7: Hoare triple {2112#true} call applyHanoi(~n~0, 1, 3, 2); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,854 INFO L280 TraceCheckUtils]: 8: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,854 INFO L280 TraceCheckUtils]: 9: Hoare triple {2112#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2112#true} is VALID [2020-07-08 12:02:02,855 INFO L263 TraceCheckUtils]: 10: Hoare triple {2112#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,856 INFO L280 TraceCheckUtils]: 11: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,857 INFO L280 TraceCheckUtils]: 12: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,858 INFO L263 TraceCheckUtils]: 13: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,859 INFO L280 TraceCheckUtils]: 14: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,859 INFO L280 TraceCheckUtils]: 15: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,860 INFO L280 TraceCheckUtils]: 16: Hoare triple {2242#(= 0 |applyHanoi_#in~n|)} assume true; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,861 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {2242#(= 0 |applyHanoi_#in~n|)} {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2236#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} is VALID [2020-07-08 12:02:02,862 INFO L263 TraceCheckUtils]: 18: Hoare triple {2236#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} call applyHanoi(~n - 1, ~via, ~to, ~from); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,863 INFO L280 TraceCheckUtils]: 19: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,863 INFO L280 TraceCheckUtils]: 20: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,863 INFO L280 TraceCheckUtils]: 21: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,865 INFO L275 TraceCheckUtils]: 22: Hoare quadruple {2112#true} {2236#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} #40#return; {2241#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:02,865 INFO L280 TraceCheckUtils]: 23: Hoare triple {2241#(<= |applyHanoi_#in~n| 1)} assume true; {2241#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:02,870 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {2241#(<= |applyHanoi_#in~n| 1)} {2112#true} #38#return; {2196#(<= applyHanoi_~n 2)} is VALID [2020-07-08 12:02:02,872 INFO L263 TraceCheckUtils]: 25: Hoare triple {2196#(<= applyHanoi_~n 2)} call applyHanoi(~n - 1, ~via, ~to, ~from); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,872 INFO L280 TraceCheckUtils]: 26: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,873 INFO L280 TraceCheckUtils]: 27: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,875 INFO L263 TraceCheckUtils]: 28: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,875 INFO L280 TraceCheckUtils]: 29: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,876 INFO L280 TraceCheckUtils]: 30: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,877 INFO L263 TraceCheckUtils]: 31: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,877 INFO L280 TraceCheckUtils]: 32: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,878 INFO L280 TraceCheckUtils]: 33: Hoare triple {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,878 INFO L280 TraceCheckUtils]: 34: Hoare triple {2242#(= 0 |applyHanoi_#in~n|)} assume true; {2242#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,880 INFO L275 TraceCheckUtils]: 35: Hoare quadruple {2242#(= 0 |applyHanoi_#in~n|)} {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2277#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} is VALID [2020-07-08 12:02:02,881 INFO L263 TraceCheckUtils]: 36: Hoare triple {2277#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,881 INFO L280 TraceCheckUtils]: 37: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,882 INFO L280 TraceCheckUtils]: 38: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,882 INFO L280 TraceCheckUtils]: 39: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,883 INFO L275 TraceCheckUtils]: 40: Hoare quadruple {2112#true} {2277#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} #40#return; {2282#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,884 INFO L280 TraceCheckUtils]: 41: Hoare triple {2282#(<= 1 |applyHanoi_#in~n|)} assume true; {2282#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,885 INFO L275 TraceCheckUtils]: 42: Hoare quadruple {2282#(<= 1 |applyHanoi_#in~n|)} {2231#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2257#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} is VALID [2020-07-08 12:02:02,886 INFO L263 TraceCheckUtils]: 43: Hoare triple {2257#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,887 INFO L280 TraceCheckUtils]: 44: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,887 INFO L280 TraceCheckUtils]: 45: Hoare triple {2112#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2112#true} is VALID [2020-07-08 12:02:02,888 INFO L263 TraceCheckUtils]: 46: Hoare triple {2112#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,888 INFO L280 TraceCheckUtils]: 47: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,889 INFO L280 TraceCheckUtils]: 48: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,889 INFO L280 TraceCheckUtils]: 49: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,889 INFO L275 TraceCheckUtils]: 50: Hoare quadruple {2112#true} {2112#true} #38#return; {2112#true} is VALID [2020-07-08 12:02:02,890 INFO L263 TraceCheckUtils]: 51: Hoare triple {2112#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {2181#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:02,890 INFO L280 TraceCheckUtils]: 52: Hoare triple {2181#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:02,891 INFO L280 TraceCheckUtils]: 53: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:02,891 INFO L280 TraceCheckUtils]: 54: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,891 INFO L275 TraceCheckUtils]: 55: Hoare quadruple {2112#true} {2112#true} #40#return; {2112#true} is VALID [2020-07-08 12:02:02,891 INFO L280 TraceCheckUtils]: 56: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,892 INFO L275 TraceCheckUtils]: 57: Hoare quadruple {2112#true} {2257#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} #40#return; {2272#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,893 INFO L280 TraceCheckUtils]: 58: Hoare triple {2272#(<= 2 |applyHanoi_#in~n|)} assume true; {2272#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:02,895 INFO L275 TraceCheckUtils]: 59: Hoare quadruple {2272#(<= 2 |applyHanoi_#in~n|)} {2196#(<= applyHanoi_~n 2)} #40#return; {2113#false} is VALID [2020-07-08 12:02:02,895 INFO L280 TraceCheckUtils]: 60: Hoare triple {2113#false} assume true; {2113#false} is VALID [2020-07-08 12:02:02,895 INFO L275 TraceCheckUtils]: 61: Hoare quadruple {2113#false} {2112#true} #48#return; {2113#false} is VALID [2020-07-08 12:02:02,895 INFO L263 TraceCheckUtils]: 62: Hoare triple {2113#false} call #t~ret3 := hanoi(~n~0); {2112#true} is VALID [2020-07-08 12:02:02,896 INFO L280 TraceCheckUtils]: 63: Hoare triple {2112#true} ~n := #in~n; {2112#true} is VALID [2020-07-08 12:02:02,896 INFO L280 TraceCheckUtils]: 64: Hoare triple {2112#true} assume !(1 == ~n); {2112#true} is VALID [2020-07-08 12:02:02,896 INFO L263 TraceCheckUtils]: 65: Hoare triple {2112#true} call #t~ret0 := hanoi(~n - 1); {2112#true} is VALID [2020-07-08 12:02:02,896 INFO L280 TraceCheckUtils]: 66: Hoare triple {2112#true} ~n := #in~n; {2112#true} is VALID [2020-07-08 12:02:02,896 INFO L280 TraceCheckUtils]: 67: Hoare triple {2112#true} assume 1 == ~n;#res := 1; {2112#true} is VALID [2020-07-08 12:02:02,897 INFO L280 TraceCheckUtils]: 68: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,897 INFO L275 TraceCheckUtils]: 69: Hoare quadruple {2112#true} {2112#true} #42#return; {2112#true} is VALID [2020-07-08 12:02:02,897 INFO L280 TraceCheckUtils]: 70: Hoare triple {2112#true} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {2112#true} is VALID [2020-07-08 12:02:02,897 INFO L280 TraceCheckUtils]: 71: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:02,898 INFO L275 TraceCheckUtils]: 72: Hoare quadruple {2112#true} {2113#false} #50#return; {2113#false} is VALID [2020-07-08 12:02:02,898 INFO L280 TraceCheckUtils]: 73: Hoare triple {2113#false} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {2113#false} is VALID [2020-07-08 12:02:02,898 INFO L280 TraceCheckUtils]: 74: Hoare triple {2113#false} assume !(~result~0 == ~counter~0); {2113#false} is VALID [2020-07-08 12:02:02,898 INFO L280 TraceCheckUtils]: 75: Hoare triple {2113#false} assume !false; {2113#false} is VALID [2020-07-08 12:02:02,905 INFO L134 CoverageAnalysis]: Checked inductivity of 244 backedges. 54 proven. 80 refuted. 0 times theorem prover too weak. 110 trivial. 0 not checked. [2020-07-08 12:02:02,906 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [565491955] [2020-07-08 12:02:02,906 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1122473526] [2020-07-08 12:02:02,906 INFO L92 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-08 12:02:02,981 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 9 check-sat command(s) [2020-07-08 12:02:02,981 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2020-07-08 12:02:02,982 INFO L264 TraceCheckSpWp]: Trace formula consists of 300 conjuncts, 14 conjunts are in the unsatisfiable core [2020-07-08 12:02:02,999 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:03,001 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-08 12:02:03,304 INFO L263 TraceCheckUtils]: 0: Hoare triple {2112#true} call ULTIMATE.init(); {2112#true} is VALID [2020-07-08 12:02:03,304 INFO L280 TraceCheckUtils]: 1: Hoare triple {2112#true} ~counter~0 := 0; {2112#true} is VALID [2020-07-08 12:02:03,305 INFO L280 TraceCheckUtils]: 2: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:03,305 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2112#true} {2112#true} #44#return; {2112#true} is VALID [2020-07-08 12:02:03,305 INFO L263 TraceCheckUtils]: 4: Hoare triple {2112#true} call #t~ret4 := main(); {2112#true} is VALID [2020-07-08 12:02:03,305 INFO L280 TraceCheckUtils]: 5: Hoare triple {2112#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {2112#true} is VALID [2020-07-08 12:02:03,306 INFO L280 TraceCheckUtils]: 6: Hoare triple {2112#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {2112#true} is VALID [2020-07-08 12:02:03,306 INFO L263 TraceCheckUtils]: 7: Hoare triple {2112#true} call applyHanoi(~n~0, 1, 3, 2); {2112#true} is VALID [2020-07-08 12:02:03,307 INFO L280 TraceCheckUtils]: 8: Hoare triple {2112#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,307 INFO L280 TraceCheckUtils]: 9: Hoare triple {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,307 INFO L263 TraceCheckUtils]: 10: Hoare triple {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2112#true} is VALID [2020-07-08 12:02:03,308 INFO L280 TraceCheckUtils]: 11: Hoare triple {2112#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:03,308 INFO L280 TraceCheckUtils]: 12: Hoare triple {2112#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2112#true} is VALID [2020-07-08 12:02:03,308 INFO L263 TraceCheckUtils]: 13: Hoare triple {2112#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {2112#true} is VALID [2020-07-08 12:02:03,308 INFO L280 TraceCheckUtils]: 14: Hoare triple {2112#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:03,308 INFO L280 TraceCheckUtils]: 15: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:03,308 INFO L280 TraceCheckUtils]: 16: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:03,308 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {2112#true} {2112#true} #38#return; {2112#true} is VALID [2020-07-08 12:02:03,309 INFO L263 TraceCheckUtils]: 18: Hoare triple {2112#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {2112#true} is VALID [2020-07-08 12:02:03,309 INFO L280 TraceCheckUtils]: 19: Hoare triple {2112#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:03,309 INFO L280 TraceCheckUtils]: 20: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:03,309 INFO L280 TraceCheckUtils]: 21: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:03,309 INFO L275 TraceCheckUtils]: 22: Hoare quadruple {2112#true} {2112#true} #40#return; {2112#true} is VALID [2020-07-08 12:02:03,310 INFO L280 TraceCheckUtils]: 23: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:03,312 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {2112#true} {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,312 INFO L263 TraceCheckUtils]: 25: Hoare triple {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~via, ~to, ~from); {2112#true} is VALID [2020-07-08 12:02:03,314 INFO L280 TraceCheckUtils]: 26: Hoare triple {2112#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,318 INFO L280 TraceCheckUtils]: 27: Hoare triple {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,319 INFO L263 TraceCheckUtils]: 28: Hoare triple {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2112#true} is VALID [2020-07-08 12:02:03,319 INFO L280 TraceCheckUtils]: 29: Hoare triple {2112#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:03,319 INFO L280 TraceCheckUtils]: 30: Hoare triple {2112#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2112#true} is VALID [2020-07-08 12:02:03,319 INFO L263 TraceCheckUtils]: 31: Hoare triple {2112#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {2112#true} is VALID [2020-07-08 12:02:03,320 INFO L280 TraceCheckUtils]: 32: Hoare triple {2112#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:03,320 INFO L280 TraceCheckUtils]: 33: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:03,320 INFO L280 TraceCheckUtils]: 34: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:03,320 INFO L275 TraceCheckUtils]: 35: Hoare quadruple {2112#true} {2112#true} #38#return; {2112#true} is VALID [2020-07-08 12:02:03,320 INFO L263 TraceCheckUtils]: 36: Hoare triple {2112#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {2112#true} is VALID [2020-07-08 12:02:03,320 INFO L280 TraceCheckUtils]: 37: Hoare triple {2112#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:03,321 INFO L280 TraceCheckUtils]: 38: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:03,321 INFO L280 TraceCheckUtils]: 39: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:03,321 INFO L275 TraceCheckUtils]: 40: Hoare quadruple {2112#true} {2112#true} #40#return; {2112#true} is VALID [2020-07-08 12:02:03,321 INFO L280 TraceCheckUtils]: 41: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:03,322 INFO L275 TraceCheckUtils]: 42: Hoare quadruple {2112#true} {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,323 INFO L263 TraceCheckUtils]: 43: Hoare triple {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~via, ~to, ~from); {2112#true} is VALID [2020-07-08 12:02:03,323 INFO L280 TraceCheckUtils]: 44: Hoare triple {2112#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,324 INFO L280 TraceCheckUtils]: 45: Hoare triple {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,324 INFO L263 TraceCheckUtils]: 46: Hoare triple {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2112#true} is VALID [2020-07-08 12:02:03,324 INFO L280 TraceCheckUtils]: 47: Hoare triple {2112#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2112#true} is VALID [2020-07-08 12:02:03,325 INFO L280 TraceCheckUtils]: 48: Hoare triple {2112#true} assume 0 == ~n; {2112#true} is VALID [2020-07-08 12:02:03,325 INFO L280 TraceCheckUtils]: 49: Hoare triple {2112#true} assume true; {2112#true} is VALID [2020-07-08 12:02:03,326 INFO L275 TraceCheckUtils]: 50: Hoare quadruple {2112#true} {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,326 INFO L263 TraceCheckUtils]: 51: Hoare triple {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~via, ~to, ~from); {2112#true} is VALID [2020-07-08 12:02:03,327 INFO L280 TraceCheckUtils]: 52: Hoare triple {2112#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,328 INFO L280 TraceCheckUtils]: 53: Hoare triple {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {2458#(<= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,328 INFO L280 TraceCheckUtils]: 54: Hoare triple {2458#(<= 0 |applyHanoi_#in~n|)} assume true; {2458#(<= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,329 INFO L275 TraceCheckUtils]: 55: Hoare quadruple {2458#(<= 0 |applyHanoi_#in~n|)} {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} #40#return; {2282#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,330 INFO L280 TraceCheckUtils]: 56: Hoare triple {2282#(<= 1 |applyHanoi_#in~n|)} assume true; {2282#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,331 INFO L275 TraceCheckUtils]: 57: Hoare quadruple {2282#(<= 1 |applyHanoi_#in~n|)} {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} #40#return; {2272#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,332 INFO L280 TraceCheckUtils]: 58: Hoare triple {2272#(<= 2 |applyHanoi_#in~n|)} assume true; {2272#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,333 INFO L275 TraceCheckUtils]: 59: Hoare quadruple {2272#(<= 2 |applyHanoi_#in~n|)} {2322#(<= applyHanoi_~n |applyHanoi_#in~n|)} #40#return; {2477#(<= 3 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,333 INFO L280 TraceCheckUtils]: 60: Hoare triple {2477#(<= 3 |applyHanoi_#in~n|)} assume true; {2477#(<= 3 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:03,334 INFO L275 TraceCheckUtils]: 61: Hoare quadruple {2477#(<= 3 |applyHanoi_#in~n|)} {2112#true} #48#return; {2484#(<= 3 main_~n~0)} is VALID [2020-07-08 12:02:03,334 INFO L263 TraceCheckUtils]: 62: Hoare triple {2484#(<= 3 main_~n~0)} call #t~ret3 := hanoi(~n~0); {2112#true} is VALID [2020-07-08 12:02:03,334 INFO L280 TraceCheckUtils]: 63: Hoare triple {2112#true} ~n := #in~n; {2491#(<= |hanoi_#in~n| hanoi_~n)} is VALID [2020-07-08 12:02:03,335 INFO L280 TraceCheckUtils]: 64: Hoare triple {2491#(<= |hanoi_#in~n| hanoi_~n)} assume !(1 == ~n); {2491#(<= |hanoi_#in~n| hanoi_~n)} is VALID [2020-07-08 12:02:03,335 INFO L263 TraceCheckUtils]: 65: Hoare triple {2491#(<= |hanoi_#in~n| hanoi_~n)} call #t~ret0 := hanoi(~n - 1); {2112#true} is VALID [2020-07-08 12:02:03,336 INFO L280 TraceCheckUtils]: 66: Hoare triple {2112#true} ~n := #in~n; {2491#(<= |hanoi_#in~n| hanoi_~n)} is VALID [2020-07-08 12:02:03,336 INFO L280 TraceCheckUtils]: 67: Hoare triple {2491#(<= |hanoi_#in~n| hanoi_~n)} assume 1 == ~n;#res := 1; {2504#(<= |hanoi_#in~n| 1)} is VALID [2020-07-08 12:02:03,337 INFO L280 TraceCheckUtils]: 68: Hoare triple {2504#(<= |hanoi_#in~n| 1)} assume true; {2504#(<= |hanoi_#in~n| 1)} is VALID [2020-07-08 12:02:03,338 INFO L275 TraceCheckUtils]: 69: Hoare quadruple {2504#(<= |hanoi_#in~n| 1)} {2491#(<= |hanoi_#in~n| hanoi_~n)} #42#return; {2511#(<= |hanoi_#in~n| 2)} is VALID [2020-07-08 12:02:03,338 INFO L280 TraceCheckUtils]: 70: Hoare triple {2511#(<= |hanoi_#in~n| 2)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {2511#(<= |hanoi_#in~n| 2)} is VALID [2020-07-08 12:02:03,339 INFO L280 TraceCheckUtils]: 71: Hoare triple {2511#(<= |hanoi_#in~n| 2)} assume true; {2511#(<= |hanoi_#in~n| 2)} is VALID [2020-07-08 12:02:03,339 INFO L275 TraceCheckUtils]: 72: Hoare quadruple {2511#(<= |hanoi_#in~n| 2)} {2484#(<= 3 main_~n~0)} #50#return; {2113#false} is VALID [2020-07-08 12:02:03,340 INFO L280 TraceCheckUtils]: 73: Hoare triple {2113#false} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {2113#false} is VALID [2020-07-08 12:02:03,340 INFO L280 TraceCheckUtils]: 74: Hoare triple {2113#false} assume !(~result~0 == ~counter~0); {2113#false} is VALID [2020-07-08 12:02:03,340 INFO L280 TraceCheckUtils]: 75: Hoare triple {2113#false} assume !false; {2113#false} is VALID [2020-07-08 12:02:03,345 INFO L134 CoverageAnalysis]: Checked inductivity of 244 backedges. 92 proven. 18 refuted. 0 times theorem prover too weak. 134 trivial. 0 not checked. [2020-07-08 12:02:03,346 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-08 12:02:03,346 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 11] total 19 [2020-07-08 12:02:03,346 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [887152779] [2020-07-08 12:02:03,347 INFO L78 Accepts]: Start accepts. Automaton has 19 states. Word has length 76 [2020-07-08 12:02:03,500 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-08 12:02:03,501 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 19 states. [2020-07-08 12:02:03,584 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 78 edges. 78 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-08 12:02:03,584 INFO L459 AbstractCegarLoop]: Interpolant automaton has 19 states [2020-07-08 12:02:03,585 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-08 12:02:03,585 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2020-07-08 12:02:03,585 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=59, Invalid=283, Unknown=0, NotChecked=0, Total=342 [2020-07-08 12:02:03,585 INFO L87 Difference]: Start difference. First operand 54 states and 70 transitions. Second operand 19 states. [2020-07-08 12:02:05,655 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:02:05,655 INFO L93 Difference]: Finished difference Result 105 states and 151 transitions. [2020-07-08 12:02:05,655 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 24 states. [2020-07-08 12:02:05,655 INFO L78 Accepts]: Start accepts. Automaton has 19 states. Word has length 76 [2020-07-08 12:02:05,656 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-08 12:02:05,656 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 19 states. [2020-07-08 12:02:05,660 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 24 states to 24 states and 103 transitions. [2020-07-08 12:02:05,660 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 19 states. [2020-07-08 12:02:05,664 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 24 states to 24 states and 103 transitions. [2020-07-08 12:02:05,664 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 24 states and 103 transitions. [2020-07-08 12:02:05,821 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 103 edges. 103 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-08 12:02:05,825 INFO L225 Difference]: With dead ends: 105 [2020-07-08 12:02:05,825 INFO L226 Difference]: Without dead ends: 74 [2020-07-08 12:02:05,827 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 132 GetRequests, 98 SyntacticMatches, 0 SemanticMatches, 34 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 271 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=213, Invalid=1047, Unknown=0, NotChecked=0, Total=1260 [2020-07-08 12:02:05,828 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 74 states. [2020-07-08 12:02:05,886 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 74 to 46. [2020-07-08 12:02:05,886 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-08 12:02:05,886 INFO L82 GeneralOperation]: Start isEquivalent. First operand 74 states. Second operand 46 states. [2020-07-08 12:02:05,887 INFO L74 IsIncluded]: Start isIncluded. First operand 74 states. Second operand 46 states. [2020-07-08 12:02:05,887 INFO L87 Difference]: Start difference. First operand 74 states. Second operand 46 states. [2020-07-08 12:02:05,892 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:02:05,892 INFO L93 Difference]: Finished difference Result 74 states and 95 transitions. [2020-07-08 12:02:05,892 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 95 transitions. [2020-07-08 12:02:05,893 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-08 12:02:05,893 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-08 12:02:05,894 INFO L74 IsIncluded]: Start isIncluded. First operand 46 states. Second operand 74 states. [2020-07-08 12:02:05,894 INFO L87 Difference]: Start difference. First operand 46 states. Second operand 74 states. [2020-07-08 12:02:05,898 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:02:05,899 INFO L93 Difference]: Finished difference Result 74 states and 95 transitions. [2020-07-08 12:02:05,899 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 95 transitions. [2020-07-08 12:02:05,900 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-08 12:02:05,900 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-08 12:02:05,900 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-08 12:02:05,900 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-08 12:02:05,900 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 46 states. [2020-07-08 12:02:05,903 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 46 states to 46 states and 55 transitions. [2020-07-08 12:02:05,903 INFO L78 Accepts]: Start accepts. Automaton has 46 states and 55 transitions. Word has length 76 [2020-07-08 12:02:05,904 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-08 12:02:05,904 INFO L479 AbstractCegarLoop]: Abstraction has 46 states and 55 transitions. [2020-07-08 12:02:05,904 INFO L480 AbstractCegarLoop]: Interpolant automaton has 19 states. [2020-07-08 12:02:05,904 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 55 transitions. [2020-07-08 12:02:05,905 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 63 [2020-07-08 12:02:05,905 INFO L414 BasicCegarLoop]: Found error trace [2020-07-08 12:02:05,921 INFO L422 BasicCegarLoop]: trace histogram [7, 7, 4, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-08 12:02:06,127 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 6 z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable5 [2020-07-08 12:02:06,129 INFO L427 AbstractCegarLoop]: === Iteration 7 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-08 12:02:06,130 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-08 12:02:06,130 INFO L82 PathProgramCache]: Analyzing trace with hash 1033208535, now seen corresponding path program 4 times [2020-07-08 12:02:06,130 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-08 12:02:06,131 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1566363666] [2020-07-08 12:02:06,131 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-08 12:02:06,150 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:06,177 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:06,181 INFO L280 TraceCheckUtils]: 0: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {2919#true} is VALID [2020-07-08 12:02:06,181 INFO L280 TraceCheckUtils]: 1: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,182 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {2919#true} {2919#true} #44#return; {2919#true} is VALID [2020-07-08 12:02:06,189 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:06,237 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:06,272 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:06,288 INFO L280 TraceCheckUtils]: 0: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,289 INFO L280 TraceCheckUtils]: 1: Hoare triple {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {3017#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,289 INFO L280 TraceCheckUtils]: 2: Hoare triple {3017#(= 0 |applyHanoi_#in~n|)} assume true; {3017#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,290 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3017#(= 0 |applyHanoi_#in~n|)} {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {3011#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} is VALID [2020-07-08 12:02:06,293 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:06,299 INFO L280 TraceCheckUtils]: 0: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,300 INFO L280 TraceCheckUtils]: 1: Hoare triple {2919#true} assume 0 == ~n; {2919#true} is VALID [2020-07-08 12:02:06,300 INFO L280 TraceCheckUtils]: 2: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,301 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2919#true} {3011#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} #40#return; {3016#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:06,302 INFO L280 TraceCheckUtils]: 0: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,302 INFO L280 TraceCheckUtils]: 1: Hoare triple {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,303 INFO L263 TraceCheckUtils]: 2: Hoare triple {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,304 INFO L280 TraceCheckUtils]: 3: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,304 INFO L280 TraceCheckUtils]: 4: Hoare triple {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {3017#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,305 INFO L280 TraceCheckUtils]: 5: Hoare triple {3017#(= 0 |applyHanoi_#in~n|)} assume true; {3017#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,306 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {3017#(= 0 |applyHanoi_#in~n|)} {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {3011#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} is VALID [2020-07-08 12:02:06,307 INFO L263 TraceCheckUtils]: 7: Hoare triple {3011#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} call applyHanoi(~n - 1, ~via, ~to, ~from); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,307 INFO L280 TraceCheckUtils]: 8: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,307 INFO L280 TraceCheckUtils]: 9: Hoare triple {2919#true} assume 0 == ~n; {2919#true} is VALID [2020-07-08 12:02:06,308 INFO L280 TraceCheckUtils]: 10: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,309 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {2919#true} {3011#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} #40#return; {3016#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:06,310 INFO L280 TraceCheckUtils]: 12: Hoare triple {3016#(<= |applyHanoi_#in~n| 1)} assume true; {3016#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:06,312 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {3016#(<= |applyHanoi_#in~n| 1)} {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2991#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} is VALID [2020-07-08 12:02:06,317 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:06,327 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:06,333 INFO L280 TraceCheckUtils]: 0: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,334 INFO L280 TraceCheckUtils]: 1: Hoare triple {2919#true} assume 0 == ~n; {2919#true} is VALID [2020-07-08 12:02:06,334 INFO L280 TraceCheckUtils]: 2: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,334 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2919#true} {2919#true} #38#return; {2919#true} is VALID [2020-07-08 12:02:06,335 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:06,338 INFO L280 TraceCheckUtils]: 0: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,338 INFO L280 TraceCheckUtils]: 1: Hoare triple {2919#true} assume 0 == ~n; {2919#true} is VALID [2020-07-08 12:02:06,338 INFO L280 TraceCheckUtils]: 2: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,339 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2919#true} {2919#true} #40#return; {2919#true} is VALID [2020-07-08 12:02:06,339 INFO L280 TraceCheckUtils]: 0: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,339 INFO L280 TraceCheckUtils]: 1: Hoare triple {2919#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2919#true} is VALID [2020-07-08 12:02:06,340 INFO L263 TraceCheckUtils]: 2: Hoare triple {2919#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,341 INFO L280 TraceCheckUtils]: 3: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,341 INFO L280 TraceCheckUtils]: 4: Hoare triple {2919#true} assume 0 == ~n; {2919#true} is VALID [2020-07-08 12:02:06,341 INFO L280 TraceCheckUtils]: 5: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,341 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {2919#true} {2919#true} #38#return; {2919#true} is VALID [2020-07-08 12:02:06,342 INFO L263 TraceCheckUtils]: 7: Hoare triple {2919#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,343 INFO L280 TraceCheckUtils]: 8: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,343 INFO L280 TraceCheckUtils]: 9: Hoare triple {2919#true} assume 0 == ~n; {2919#true} is VALID [2020-07-08 12:02:06,343 INFO L280 TraceCheckUtils]: 10: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,343 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {2919#true} {2919#true} #40#return; {2919#true} is VALID [2020-07-08 12:02:06,343 INFO L280 TraceCheckUtils]: 12: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,345 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {2919#true} {2991#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} #40#return; {3006#(<= |applyHanoi_#in~n| 2)} is VALID [2020-07-08 12:02:06,345 INFO L280 TraceCheckUtils]: 0: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,346 INFO L280 TraceCheckUtils]: 1: Hoare triple {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,347 INFO L263 TraceCheckUtils]: 2: Hoare triple {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,348 INFO L280 TraceCheckUtils]: 3: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,348 INFO L280 TraceCheckUtils]: 4: Hoare triple {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,349 INFO L263 TraceCheckUtils]: 5: Hoare triple {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,350 INFO L280 TraceCheckUtils]: 6: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,350 INFO L280 TraceCheckUtils]: 7: Hoare triple {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {3017#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,351 INFO L280 TraceCheckUtils]: 8: Hoare triple {3017#(= 0 |applyHanoi_#in~n|)} assume true; {3017#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,352 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {3017#(= 0 |applyHanoi_#in~n|)} {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {3011#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} is VALID [2020-07-08 12:02:06,353 INFO L263 TraceCheckUtils]: 10: Hoare triple {3011#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} call applyHanoi(~n - 1, ~via, ~to, ~from); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,354 INFO L280 TraceCheckUtils]: 11: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,354 INFO L280 TraceCheckUtils]: 12: Hoare triple {2919#true} assume 0 == ~n; {2919#true} is VALID [2020-07-08 12:02:06,354 INFO L280 TraceCheckUtils]: 13: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,355 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {2919#true} {3011#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} #40#return; {3016#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:06,356 INFO L280 TraceCheckUtils]: 15: Hoare triple {3016#(<= |applyHanoi_#in~n| 1)} assume true; {3016#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:06,357 INFO L275 TraceCheckUtils]: 16: Hoare quadruple {3016#(<= |applyHanoi_#in~n| 1)} {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2991#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} is VALID [2020-07-08 12:02:06,358 INFO L263 TraceCheckUtils]: 17: Hoare triple {2991#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} call applyHanoi(~n - 1, ~via, ~to, ~from); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,359 INFO L280 TraceCheckUtils]: 18: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,359 INFO L280 TraceCheckUtils]: 19: Hoare triple {2919#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2919#true} is VALID [2020-07-08 12:02:06,360 INFO L263 TraceCheckUtils]: 20: Hoare triple {2919#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,360 INFO L280 TraceCheckUtils]: 21: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,360 INFO L280 TraceCheckUtils]: 22: Hoare triple {2919#true} assume 0 == ~n; {2919#true} is VALID [2020-07-08 12:02:06,360 INFO L280 TraceCheckUtils]: 23: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,361 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {2919#true} {2919#true} #38#return; {2919#true} is VALID [2020-07-08 12:02:06,362 INFO L263 TraceCheckUtils]: 25: Hoare triple {2919#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,362 INFO L280 TraceCheckUtils]: 26: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,362 INFO L280 TraceCheckUtils]: 27: Hoare triple {2919#true} assume 0 == ~n; {2919#true} is VALID [2020-07-08 12:02:06,362 INFO L280 TraceCheckUtils]: 28: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,362 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {2919#true} {2919#true} #40#return; {2919#true} is VALID [2020-07-08 12:02:06,363 INFO L280 TraceCheckUtils]: 30: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,364 INFO L275 TraceCheckUtils]: 31: Hoare quadruple {2919#true} {2991#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} #40#return; {3006#(<= |applyHanoi_#in~n| 2)} is VALID [2020-07-08 12:02:06,364 INFO L280 TraceCheckUtils]: 32: Hoare triple {3006#(<= |applyHanoi_#in~n| 2)} assume true; {3006#(<= |applyHanoi_#in~n| 2)} is VALID [2020-07-08 12:02:06,365 INFO L275 TraceCheckUtils]: 33: Hoare quadruple {3006#(<= |applyHanoi_#in~n| 2)} {2919#true} #48#return; {2958#(<= main_~n~0 2)} is VALID [2020-07-08 12:02:06,370 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:06,401 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:06,429 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:06,447 INFO L280 TraceCheckUtils]: 0: Hoare triple {2919#true} ~n := #in~n; {3026#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,448 INFO L280 TraceCheckUtils]: 1: Hoare triple {3026#(= hanoi_~n |hanoi_#in~n|)} assume 1 == ~n;#res := 1; {3043#(= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,449 INFO L280 TraceCheckUtils]: 2: Hoare triple {3043#(= 1 |hanoi_#in~n|)} assume true; {3043#(= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,449 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3043#(= 1 |hanoi_#in~n|)} {3026#(= hanoi_~n |hanoi_#in~n|)} #42#return; {3042#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,450 INFO L280 TraceCheckUtils]: 0: Hoare triple {2919#true} ~n := #in~n; {3026#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,451 INFO L280 TraceCheckUtils]: 1: Hoare triple {3026#(= hanoi_~n |hanoi_#in~n|)} assume !(1 == ~n); {3026#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,451 INFO L263 TraceCheckUtils]: 2: Hoare triple {3026#(= hanoi_~n |hanoi_#in~n|)} call #t~ret0 := hanoi(~n - 1); {2919#true} is VALID [2020-07-08 12:02:06,451 INFO L280 TraceCheckUtils]: 3: Hoare triple {2919#true} ~n := #in~n; {3026#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,452 INFO L280 TraceCheckUtils]: 4: Hoare triple {3026#(= hanoi_~n |hanoi_#in~n|)} assume 1 == ~n;#res := 1; {3043#(= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,452 INFO L280 TraceCheckUtils]: 5: Hoare triple {3043#(= 1 |hanoi_#in~n|)} assume true; {3043#(= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,453 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {3043#(= 1 |hanoi_#in~n|)} {3026#(= hanoi_~n |hanoi_#in~n|)} #42#return; {3042#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,454 INFO L280 TraceCheckUtils]: 7: Hoare triple {3042#(<= 2 |hanoi_#in~n|)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {3042#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,455 INFO L280 TraceCheckUtils]: 8: Hoare triple {3042#(<= 2 |hanoi_#in~n|)} assume true; {3042#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,456 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {3042#(<= 2 |hanoi_#in~n|)} {3026#(= hanoi_~n |hanoi_#in~n|)} #42#return; {3037#(<= 3 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,456 INFO L280 TraceCheckUtils]: 0: Hoare triple {2919#true} ~n := #in~n; {3026#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,457 INFO L280 TraceCheckUtils]: 1: Hoare triple {3026#(= hanoi_~n |hanoi_#in~n|)} assume !(1 == ~n); {3026#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,457 INFO L263 TraceCheckUtils]: 2: Hoare triple {3026#(= hanoi_~n |hanoi_#in~n|)} call #t~ret0 := hanoi(~n - 1); {2919#true} is VALID [2020-07-08 12:02:06,458 INFO L280 TraceCheckUtils]: 3: Hoare triple {2919#true} ~n := #in~n; {3026#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,458 INFO L280 TraceCheckUtils]: 4: Hoare triple {3026#(= hanoi_~n |hanoi_#in~n|)} assume !(1 == ~n); {3026#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,458 INFO L263 TraceCheckUtils]: 5: Hoare triple {3026#(= hanoi_~n |hanoi_#in~n|)} call #t~ret0 := hanoi(~n - 1); {2919#true} is VALID [2020-07-08 12:02:06,459 INFO L280 TraceCheckUtils]: 6: Hoare triple {2919#true} ~n := #in~n; {3026#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,460 INFO L280 TraceCheckUtils]: 7: Hoare triple {3026#(= hanoi_~n |hanoi_#in~n|)} assume 1 == ~n;#res := 1; {3043#(= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,460 INFO L280 TraceCheckUtils]: 8: Hoare triple {3043#(= 1 |hanoi_#in~n|)} assume true; {3043#(= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,461 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {3043#(= 1 |hanoi_#in~n|)} {3026#(= hanoi_~n |hanoi_#in~n|)} #42#return; {3042#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,462 INFO L280 TraceCheckUtils]: 10: Hoare triple {3042#(<= 2 |hanoi_#in~n|)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {3042#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,462 INFO L280 TraceCheckUtils]: 11: Hoare triple {3042#(<= 2 |hanoi_#in~n|)} assume true; {3042#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,463 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {3042#(<= 2 |hanoi_#in~n|)} {3026#(= hanoi_~n |hanoi_#in~n|)} #42#return; {3037#(<= 3 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,464 INFO L280 TraceCheckUtils]: 13: Hoare triple {3037#(<= 3 |hanoi_#in~n|)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {3037#(<= 3 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,464 INFO L280 TraceCheckUtils]: 14: Hoare triple {3037#(<= 3 |hanoi_#in~n|)} assume true; {3037#(<= 3 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,465 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {3037#(<= 3 |hanoi_#in~n|)} {2958#(<= main_~n~0 2)} #50#return; {2920#false} is VALID [2020-07-08 12:02:06,466 INFO L263 TraceCheckUtils]: 0: Hoare triple {2919#true} call ULTIMATE.init(); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,467 INFO L280 TraceCheckUtils]: 1: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {2919#true} is VALID [2020-07-08 12:02:06,467 INFO L280 TraceCheckUtils]: 2: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,467 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2919#true} {2919#true} #44#return; {2919#true} is VALID [2020-07-08 12:02:06,467 INFO L263 TraceCheckUtils]: 4: Hoare triple {2919#true} call #t~ret4 := main(); {2919#true} is VALID [2020-07-08 12:02:06,467 INFO L280 TraceCheckUtils]: 5: Hoare triple {2919#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {2919#true} is VALID [2020-07-08 12:02:06,467 INFO L280 TraceCheckUtils]: 6: Hoare triple {2919#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {2919#true} is VALID [2020-07-08 12:02:06,469 INFO L263 TraceCheckUtils]: 7: Hoare triple {2919#true} call applyHanoi(~n~0, 1, 3, 2); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,469 INFO L280 TraceCheckUtils]: 8: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,470 INFO L280 TraceCheckUtils]: 9: Hoare triple {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,471 INFO L263 TraceCheckUtils]: 10: Hoare triple {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,471 INFO L280 TraceCheckUtils]: 11: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,472 INFO L280 TraceCheckUtils]: 12: Hoare triple {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,473 INFO L263 TraceCheckUtils]: 13: Hoare triple {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,474 INFO L280 TraceCheckUtils]: 14: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,474 INFO L280 TraceCheckUtils]: 15: Hoare triple {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {3017#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,475 INFO L280 TraceCheckUtils]: 16: Hoare triple {3017#(= 0 |applyHanoi_#in~n|)} assume true; {3017#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:06,476 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {3017#(= 0 |applyHanoi_#in~n|)} {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {3011#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} is VALID [2020-07-08 12:02:06,477 INFO L263 TraceCheckUtils]: 18: Hoare triple {3011#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} call applyHanoi(~n - 1, ~via, ~to, ~from); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,477 INFO L280 TraceCheckUtils]: 19: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,478 INFO L280 TraceCheckUtils]: 20: Hoare triple {2919#true} assume 0 == ~n; {2919#true} is VALID [2020-07-08 12:02:06,478 INFO L280 TraceCheckUtils]: 21: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,479 INFO L275 TraceCheckUtils]: 22: Hoare quadruple {2919#true} {3011#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} #40#return; {3016#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:06,480 INFO L280 TraceCheckUtils]: 23: Hoare triple {3016#(<= |applyHanoi_#in~n| 1)} assume true; {3016#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:06,481 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {3016#(<= |applyHanoi_#in~n| 1)} {2976#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {2991#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} is VALID [2020-07-08 12:02:06,482 INFO L263 TraceCheckUtils]: 25: Hoare triple {2991#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} call applyHanoi(~n - 1, ~via, ~to, ~from); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,483 INFO L280 TraceCheckUtils]: 26: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,483 INFO L280 TraceCheckUtils]: 27: Hoare triple {2919#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2919#true} is VALID [2020-07-08 12:02:06,484 INFO L263 TraceCheckUtils]: 28: Hoare triple {2919#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,484 INFO L280 TraceCheckUtils]: 29: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,484 INFO L280 TraceCheckUtils]: 30: Hoare triple {2919#true} assume 0 == ~n; {2919#true} is VALID [2020-07-08 12:02:06,485 INFO L280 TraceCheckUtils]: 31: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,485 INFO L275 TraceCheckUtils]: 32: Hoare quadruple {2919#true} {2919#true} #38#return; {2919#true} is VALID [2020-07-08 12:02:06,486 INFO L263 TraceCheckUtils]: 33: Hoare triple {2919#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {2975#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:06,486 INFO L280 TraceCheckUtils]: 34: Hoare triple {2975#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,486 INFO L280 TraceCheckUtils]: 35: Hoare triple {2919#true} assume 0 == ~n; {2919#true} is VALID [2020-07-08 12:02:06,487 INFO L280 TraceCheckUtils]: 36: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,487 INFO L275 TraceCheckUtils]: 37: Hoare quadruple {2919#true} {2919#true} #40#return; {2919#true} is VALID [2020-07-08 12:02:06,487 INFO L280 TraceCheckUtils]: 38: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,488 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {2919#true} {2991#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} #40#return; {3006#(<= |applyHanoi_#in~n| 2)} is VALID [2020-07-08 12:02:06,489 INFO L280 TraceCheckUtils]: 40: Hoare triple {3006#(<= |applyHanoi_#in~n| 2)} assume true; {3006#(<= |applyHanoi_#in~n| 2)} is VALID [2020-07-08 12:02:06,490 INFO L275 TraceCheckUtils]: 41: Hoare quadruple {3006#(<= |applyHanoi_#in~n| 2)} {2919#true} #48#return; {2958#(<= main_~n~0 2)} is VALID [2020-07-08 12:02:06,490 INFO L263 TraceCheckUtils]: 42: Hoare triple {2958#(<= main_~n~0 2)} call #t~ret3 := hanoi(~n~0); {2919#true} is VALID [2020-07-08 12:02:06,490 INFO L280 TraceCheckUtils]: 43: Hoare triple {2919#true} ~n := #in~n; {3026#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,491 INFO L280 TraceCheckUtils]: 44: Hoare triple {3026#(= hanoi_~n |hanoi_#in~n|)} assume !(1 == ~n); {3026#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,491 INFO L263 TraceCheckUtils]: 45: Hoare triple {3026#(= hanoi_~n |hanoi_#in~n|)} call #t~ret0 := hanoi(~n - 1); {2919#true} is VALID [2020-07-08 12:02:06,492 INFO L280 TraceCheckUtils]: 46: Hoare triple {2919#true} ~n := #in~n; {3026#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,492 INFO L280 TraceCheckUtils]: 47: Hoare triple {3026#(= hanoi_~n |hanoi_#in~n|)} assume !(1 == ~n); {3026#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,492 INFO L263 TraceCheckUtils]: 48: Hoare triple {3026#(= hanoi_~n |hanoi_#in~n|)} call #t~ret0 := hanoi(~n - 1); {2919#true} is VALID [2020-07-08 12:02:06,493 INFO L280 TraceCheckUtils]: 49: Hoare triple {2919#true} ~n := #in~n; {3026#(= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,494 INFO L280 TraceCheckUtils]: 50: Hoare triple {3026#(= hanoi_~n |hanoi_#in~n|)} assume 1 == ~n;#res := 1; {3043#(= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,494 INFO L280 TraceCheckUtils]: 51: Hoare triple {3043#(= 1 |hanoi_#in~n|)} assume true; {3043#(= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,495 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {3043#(= 1 |hanoi_#in~n|)} {3026#(= hanoi_~n |hanoi_#in~n|)} #42#return; {3042#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,496 INFO L280 TraceCheckUtils]: 53: Hoare triple {3042#(<= 2 |hanoi_#in~n|)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {3042#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,497 INFO L280 TraceCheckUtils]: 54: Hoare triple {3042#(<= 2 |hanoi_#in~n|)} assume true; {3042#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,498 INFO L275 TraceCheckUtils]: 55: Hoare quadruple {3042#(<= 2 |hanoi_#in~n|)} {3026#(= hanoi_~n |hanoi_#in~n|)} #42#return; {3037#(<= 3 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,498 INFO L280 TraceCheckUtils]: 56: Hoare triple {3037#(<= 3 |hanoi_#in~n|)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {3037#(<= 3 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,499 INFO L280 TraceCheckUtils]: 57: Hoare triple {3037#(<= 3 |hanoi_#in~n|)} assume true; {3037#(<= 3 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,500 INFO L275 TraceCheckUtils]: 58: Hoare quadruple {3037#(<= 3 |hanoi_#in~n|)} {2958#(<= main_~n~0 2)} #50#return; {2920#false} is VALID [2020-07-08 12:02:06,500 INFO L280 TraceCheckUtils]: 59: Hoare triple {2920#false} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {2920#false} is VALID [2020-07-08 12:02:06,500 INFO L280 TraceCheckUtils]: 60: Hoare triple {2920#false} assume !(~result~0 == ~counter~0); {2920#false} is VALID [2020-07-08 12:02:06,500 INFO L280 TraceCheckUtils]: 61: Hoare triple {2920#false} assume !false; {2920#false} is VALID [2020-07-08 12:02:06,504 INFO L134 CoverageAnalysis]: Checked inductivity of 104 backedges. 13 proven. 41 refuted. 0 times theorem prover too weak. 50 trivial. 0 not checked. [2020-07-08 12:02:06,504 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1566363666] [2020-07-08 12:02:06,505 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1057254798] [2020-07-08 12:02:06,505 INFO L92 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-08 12:02:06,564 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2020-07-08 12:02:06,564 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2020-07-08 12:02:06,565 INFO L264 TraceCheckSpWp]: Trace formula consists of 222 conjuncts, 14 conjunts are in the unsatisfiable core [2020-07-08 12:02:06,593 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:06,598 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-08 12:02:06,838 INFO L263 TraceCheckUtils]: 0: Hoare triple {2919#true} call ULTIMATE.init(); {2919#true} is VALID [2020-07-08 12:02:06,838 INFO L280 TraceCheckUtils]: 1: Hoare triple {2919#true} ~counter~0 := 0; {2919#true} is VALID [2020-07-08 12:02:06,839 INFO L280 TraceCheckUtils]: 2: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,839 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {2919#true} {2919#true} #44#return; {2919#true} is VALID [2020-07-08 12:02:06,839 INFO L263 TraceCheckUtils]: 4: Hoare triple {2919#true} call #t~ret4 := main(); {2919#true} is VALID [2020-07-08 12:02:06,839 INFO L280 TraceCheckUtils]: 5: Hoare triple {2919#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {2919#true} is VALID [2020-07-08 12:02:06,840 INFO L280 TraceCheckUtils]: 6: Hoare triple {2919#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {2919#true} is VALID [2020-07-08 12:02:06,840 INFO L263 TraceCheckUtils]: 7: Hoare triple {2919#true} call applyHanoi(~n~0, 1, 3, 2); {2919#true} is VALID [2020-07-08 12:02:06,841 INFO L280 TraceCheckUtils]: 8: Hoare triple {2919#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3071#(<= |applyHanoi_#in~n| applyHanoi_~n)} is VALID [2020-07-08 12:02:06,841 INFO L280 TraceCheckUtils]: 9: Hoare triple {3071#(<= |applyHanoi_#in~n| applyHanoi_~n)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3071#(<= |applyHanoi_#in~n| applyHanoi_~n)} is VALID [2020-07-08 12:02:06,841 INFO L263 TraceCheckUtils]: 10: Hoare triple {3071#(<= |applyHanoi_#in~n| applyHanoi_~n)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2919#true} is VALID [2020-07-08 12:02:06,842 INFO L280 TraceCheckUtils]: 11: Hoare triple {2919#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3071#(<= |applyHanoi_#in~n| applyHanoi_~n)} is VALID [2020-07-08 12:02:06,842 INFO L280 TraceCheckUtils]: 12: Hoare triple {3071#(<= |applyHanoi_#in~n| applyHanoi_~n)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3071#(<= |applyHanoi_#in~n| applyHanoi_~n)} is VALID [2020-07-08 12:02:06,843 INFO L263 TraceCheckUtils]: 13: Hoare triple {3071#(<= |applyHanoi_#in~n| applyHanoi_~n)} call applyHanoi(~n - 1, ~from, ~via, ~to); {2919#true} is VALID [2020-07-08 12:02:06,844 INFO L280 TraceCheckUtils]: 14: Hoare triple {2919#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3071#(<= |applyHanoi_#in~n| applyHanoi_~n)} is VALID [2020-07-08 12:02:06,845 INFO L280 TraceCheckUtils]: 15: Hoare triple {3071#(<= |applyHanoi_#in~n| applyHanoi_~n)} assume 0 == ~n; {3093#(<= |applyHanoi_#in~n| 0)} is VALID [2020-07-08 12:02:06,846 INFO L280 TraceCheckUtils]: 16: Hoare triple {3093#(<= |applyHanoi_#in~n| 0)} assume true; {3093#(<= |applyHanoi_#in~n| 0)} is VALID [2020-07-08 12:02:06,848 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {3093#(<= |applyHanoi_#in~n| 0)} {3071#(<= |applyHanoi_#in~n| applyHanoi_~n)} #38#return; {3016#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:06,848 INFO L263 TraceCheckUtils]: 18: Hoare triple {3016#(<= |applyHanoi_#in~n| 1)} call applyHanoi(~n - 1, ~via, ~to, ~from); {2919#true} is VALID [2020-07-08 12:02:06,848 INFO L280 TraceCheckUtils]: 19: Hoare triple {2919#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,848 INFO L280 TraceCheckUtils]: 20: Hoare triple {2919#true} assume 0 == ~n; {2919#true} is VALID [2020-07-08 12:02:06,849 INFO L280 TraceCheckUtils]: 21: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,850 INFO L275 TraceCheckUtils]: 22: Hoare quadruple {2919#true} {3016#(<= |applyHanoi_#in~n| 1)} #40#return; {3016#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:06,850 INFO L280 TraceCheckUtils]: 23: Hoare triple {3016#(<= |applyHanoi_#in~n| 1)} assume true; {3016#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:06,852 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {3016#(<= |applyHanoi_#in~n| 1)} {3071#(<= |applyHanoi_#in~n| applyHanoi_~n)} #38#return; {3006#(<= |applyHanoi_#in~n| 2)} is VALID [2020-07-08 12:02:06,852 INFO L263 TraceCheckUtils]: 25: Hoare triple {3006#(<= |applyHanoi_#in~n| 2)} call applyHanoi(~n - 1, ~via, ~to, ~from); {2919#true} is VALID [2020-07-08 12:02:06,852 INFO L280 TraceCheckUtils]: 26: Hoare triple {2919#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,852 INFO L280 TraceCheckUtils]: 27: Hoare triple {2919#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {2919#true} is VALID [2020-07-08 12:02:06,852 INFO L263 TraceCheckUtils]: 28: Hoare triple {2919#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {2919#true} is VALID [2020-07-08 12:02:06,852 INFO L280 TraceCheckUtils]: 29: Hoare triple {2919#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,853 INFO L280 TraceCheckUtils]: 30: Hoare triple {2919#true} assume 0 == ~n; {2919#true} is VALID [2020-07-08 12:02:06,853 INFO L280 TraceCheckUtils]: 31: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,853 INFO L275 TraceCheckUtils]: 32: Hoare quadruple {2919#true} {2919#true} #38#return; {2919#true} is VALID [2020-07-08 12:02:06,853 INFO L263 TraceCheckUtils]: 33: Hoare triple {2919#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {2919#true} is VALID [2020-07-08 12:02:06,853 INFO L280 TraceCheckUtils]: 34: Hoare triple {2919#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {2919#true} is VALID [2020-07-08 12:02:06,854 INFO L280 TraceCheckUtils]: 35: Hoare triple {2919#true} assume 0 == ~n; {2919#true} is VALID [2020-07-08 12:02:06,854 INFO L280 TraceCheckUtils]: 36: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,854 INFO L275 TraceCheckUtils]: 37: Hoare quadruple {2919#true} {2919#true} #40#return; {2919#true} is VALID [2020-07-08 12:02:06,854 INFO L280 TraceCheckUtils]: 38: Hoare triple {2919#true} assume true; {2919#true} is VALID [2020-07-08 12:02:06,855 INFO L275 TraceCheckUtils]: 39: Hoare quadruple {2919#true} {3006#(<= |applyHanoi_#in~n| 2)} #40#return; {3006#(<= |applyHanoi_#in~n| 2)} is VALID [2020-07-08 12:02:06,856 INFO L280 TraceCheckUtils]: 40: Hoare triple {3006#(<= |applyHanoi_#in~n| 2)} assume true; {3006#(<= |applyHanoi_#in~n| 2)} is VALID [2020-07-08 12:02:06,857 INFO L275 TraceCheckUtils]: 41: Hoare quadruple {3006#(<= |applyHanoi_#in~n| 2)} {2919#true} #48#return; {2958#(<= main_~n~0 2)} is VALID [2020-07-08 12:02:06,857 INFO L263 TraceCheckUtils]: 42: Hoare triple {2958#(<= main_~n~0 2)} call #t~ret3 := hanoi(~n~0); {2919#true} is VALID [2020-07-08 12:02:06,858 INFO L280 TraceCheckUtils]: 43: Hoare triple {2919#true} ~n := #in~n; {3178#(<= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,858 INFO L280 TraceCheckUtils]: 44: Hoare triple {3178#(<= hanoi_~n |hanoi_#in~n|)} assume !(1 == ~n); {3178#(<= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,858 INFO L263 TraceCheckUtils]: 45: Hoare triple {3178#(<= hanoi_~n |hanoi_#in~n|)} call #t~ret0 := hanoi(~n - 1); {2919#true} is VALID [2020-07-08 12:02:06,859 INFO L280 TraceCheckUtils]: 46: Hoare triple {2919#true} ~n := #in~n; {3178#(<= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,860 INFO L280 TraceCheckUtils]: 47: Hoare triple {3178#(<= hanoi_~n |hanoi_#in~n|)} assume !(1 == ~n); {3178#(<= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,860 INFO L263 TraceCheckUtils]: 48: Hoare triple {3178#(<= hanoi_~n |hanoi_#in~n|)} call #t~ret0 := hanoi(~n - 1); {2919#true} is VALID [2020-07-08 12:02:06,860 INFO L280 TraceCheckUtils]: 49: Hoare triple {2919#true} ~n := #in~n; {3178#(<= hanoi_~n |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,861 INFO L280 TraceCheckUtils]: 50: Hoare triple {3178#(<= hanoi_~n |hanoi_#in~n|)} assume 1 == ~n;#res := 1; {3200#(<= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,862 INFO L280 TraceCheckUtils]: 51: Hoare triple {3200#(<= 1 |hanoi_#in~n|)} assume true; {3200#(<= 1 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,863 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {3200#(<= 1 |hanoi_#in~n|)} {3178#(<= hanoi_~n |hanoi_#in~n|)} #42#return; {3042#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,863 INFO L280 TraceCheckUtils]: 53: Hoare triple {3042#(<= 2 |hanoi_#in~n|)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {3042#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,864 INFO L280 TraceCheckUtils]: 54: Hoare triple {3042#(<= 2 |hanoi_#in~n|)} assume true; {3042#(<= 2 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,865 INFO L275 TraceCheckUtils]: 55: Hoare quadruple {3042#(<= 2 |hanoi_#in~n|)} {3178#(<= hanoi_~n |hanoi_#in~n|)} #42#return; {3037#(<= 3 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,866 INFO L280 TraceCheckUtils]: 56: Hoare triple {3037#(<= 3 |hanoi_#in~n|)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {3037#(<= 3 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,866 INFO L280 TraceCheckUtils]: 57: Hoare triple {3037#(<= 3 |hanoi_#in~n|)} assume true; {3037#(<= 3 |hanoi_#in~n|)} is VALID [2020-07-08 12:02:06,868 INFO L275 TraceCheckUtils]: 58: Hoare quadruple {3037#(<= 3 |hanoi_#in~n|)} {2958#(<= main_~n~0 2)} #50#return; {2920#false} is VALID [2020-07-08 12:02:06,868 INFO L280 TraceCheckUtils]: 59: Hoare triple {2920#false} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {2920#false} is VALID [2020-07-08 12:02:06,868 INFO L280 TraceCheckUtils]: 60: Hoare triple {2920#false} assume !(~result~0 == ~counter~0); {2920#false} is VALID [2020-07-08 12:02:06,868 INFO L280 TraceCheckUtils]: 61: Hoare triple {2920#false} assume !false; {2920#false} is VALID [2020-07-08 12:02:06,873 INFO L134 CoverageAnalysis]: Checked inductivity of 104 backedges. 17 proven. 37 refuted. 0 times theorem prover too weak. 50 trivial. 0 not checked. [2020-07-08 12:02:06,873 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-08 12:02:06,873 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 11] total 18 [2020-07-08 12:02:06,874 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [135048667] [2020-07-08 12:02:06,875 INFO L78 Accepts]: Start accepts. Automaton has 18 states. Word has length 62 [2020-07-08 12:02:06,890 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-08 12:02:06,890 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 18 states. [2020-07-08 12:02:06,984 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 70 edges. 70 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-08 12:02:06,984 INFO L459 AbstractCegarLoop]: Interpolant automaton has 18 states [2020-07-08 12:02:06,984 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-08 12:02:06,985 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 18 interpolants. [2020-07-08 12:02:06,985 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=53, Invalid=253, Unknown=0, NotChecked=0, Total=306 [2020-07-08 12:02:06,985 INFO L87 Difference]: Start difference. First operand 46 states and 55 transitions. Second operand 18 states. [2020-07-08 12:02:07,923 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:02:07,923 INFO L93 Difference]: Finished difference Result 53 states and 65 transitions. [2020-07-08 12:02:07,924 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2020-07-08 12:02:07,924 INFO L78 Accepts]: Start accepts. Automaton has 18 states. Word has length 62 [2020-07-08 12:02:07,924 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-08 12:02:07,924 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 18 states. [2020-07-08 12:02:07,927 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 57 transitions. [2020-07-08 12:02:07,927 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 18 states. [2020-07-08 12:02:07,929 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 57 transitions. [2020-07-08 12:02:07,930 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 17 states and 57 transitions. [2020-07-08 12:02:08,012 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-08 12:02:08,017 INFO L225 Difference]: With dead ends: 53 [2020-07-08 12:02:08,017 INFO L226 Difference]: Without dead ends: 48 [2020-07-08 12:02:08,018 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 104 GetRequests, 78 SyntacticMatches, 0 SemanticMatches, 26 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 133 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=142, Invalid=614, Unknown=0, NotChecked=0, Total=756 [2020-07-08 12:02:08,018 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2020-07-08 12:02:08,071 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 48. [2020-07-08 12:02:08,072 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-08 12:02:08,072 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 48 states. [2020-07-08 12:02:08,072 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 48 states. [2020-07-08 12:02:08,072 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 48 states. [2020-07-08 12:02:08,075 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:02:08,076 INFO L93 Difference]: Finished difference Result 48 states and 59 transitions. [2020-07-08 12:02:08,076 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 59 transitions. [2020-07-08 12:02:08,076 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-08 12:02:08,076 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-08 12:02:08,076 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 48 states. [2020-07-08 12:02:08,076 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 48 states. [2020-07-08 12:02:08,079 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:02:08,079 INFO L93 Difference]: Finished difference Result 48 states and 59 transitions. [2020-07-08 12:02:08,079 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 59 transitions. [2020-07-08 12:02:08,080 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-08 12:02:08,080 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-08 12:02:08,080 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-08 12:02:08,080 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-08 12:02:08,080 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 48 states. [2020-07-08 12:02:08,083 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 59 transitions. [2020-07-08 12:02:08,083 INFO L78 Accepts]: Start accepts. Automaton has 48 states and 59 transitions. Word has length 62 [2020-07-08 12:02:08,083 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-08 12:02:08,083 INFO L479 AbstractCegarLoop]: Abstraction has 48 states and 59 transitions. [2020-07-08 12:02:08,084 INFO L480 AbstractCegarLoop]: Interpolant automaton has 18 states. [2020-07-08 12:02:08,084 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 59 transitions. [2020-07-08 12:02:08,085 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 103 [2020-07-08 12:02:08,085 INFO L414 BasicCegarLoop]: Found error trace [2020-07-08 12:02:08,085 INFO L422 BasicCegarLoop]: trace histogram [15, 15, 8, 7, 7, 7, 7, 7, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-08 12:02:08,288 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable6,7 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-08 12:02:08,289 INFO L427 AbstractCegarLoop]: === Iteration 8 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-08 12:02:08,290 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-08 12:02:08,290 INFO L82 PathProgramCache]: Analyzing trace with hash 542454743, now seen corresponding path program 5 times [2020-07-08 12:02:08,290 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-08 12:02:08,291 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1945962160] [2020-07-08 12:02:08,291 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-08 12:02:08,332 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,415 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,435 INFO L280 TraceCheckUtils]: 0: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {3489#true} is VALID [2020-07-08 12:02:08,435 INFO L280 TraceCheckUtils]: 1: Hoare triple {3489#true} assume true; {3489#true} is VALID [2020-07-08 12:02:08,436 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {3489#true} {3489#true} #44#return; {3489#true} is VALID [2020-07-08 12:02:08,463 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,592 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,649 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,670 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,675 INFO L280 TraceCheckUtils]: 0: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,676 INFO L280 TraceCheckUtils]: 1: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,676 INFO L280 TraceCheckUtils]: 2: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,678 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,680 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,685 INFO L280 TraceCheckUtils]: 0: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,686 INFO L280 TraceCheckUtils]: 1: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,687 INFO L280 TraceCheckUtils]: 2: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,688 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,689 INFO L280 TraceCheckUtils]: 0: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,689 INFO L280 TraceCheckUtils]: 1: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,690 INFO L263 TraceCheckUtils]: 2: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,691 INFO L280 TraceCheckUtils]: 3: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,691 INFO L280 TraceCheckUtils]: 4: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,692 INFO L280 TraceCheckUtils]: 5: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,693 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,694 INFO L263 TraceCheckUtils]: 7: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,695 INFO L280 TraceCheckUtils]: 8: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,695 INFO L280 TraceCheckUtils]: 9: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,696 INFO L280 TraceCheckUtils]: 10: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,697 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,698 INFO L280 TraceCheckUtils]: 12: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,699 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} is VALID [2020-07-08 12:02:08,703 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,724 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,735 INFO L280 TraceCheckUtils]: 0: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,736 INFO L280 TraceCheckUtils]: 1: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,737 INFO L280 TraceCheckUtils]: 2: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,738 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,740 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,746 INFO L280 TraceCheckUtils]: 0: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,747 INFO L280 TraceCheckUtils]: 1: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,747 INFO L280 TraceCheckUtils]: 2: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,749 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,750 INFO L280 TraceCheckUtils]: 0: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,750 INFO L280 TraceCheckUtils]: 1: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,752 INFO L263 TraceCheckUtils]: 2: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,752 INFO L280 TraceCheckUtils]: 3: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,753 INFO L280 TraceCheckUtils]: 4: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,753 INFO L280 TraceCheckUtils]: 5: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,755 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,756 INFO L263 TraceCheckUtils]: 7: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,757 INFO L280 TraceCheckUtils]: 8: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,757 INFO L280 TraceCheckUtils]: 9: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,758 INFO L280 TraceCheckUtils]: 10: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,759 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,760 INFO L280 TraceCheckUtils]: 12: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,762 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} #40#return; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:08,763 INFO L280 TraceCheckUtils]: 0: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,763 INFO L280 TraceCheckUtils]: 1: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,765 INFO L263 TraceCheckUtils]: 2: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,765 INFO L280 TraceCheckUtils]: 3: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,766 INFO L280 TraceCheckUtils]: 4: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,767 INFO L263 TraceCheckUtils]: 5: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,768 INFO L280 TraceCheckUtils]: 6: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,768 INFO L280 TraceCheckUtils]: 7: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,769 INFO L280 TraceCheckUtils]: 8: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,771 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,772 INFO L263 TraceCheckUtils]: 10: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,772 INFO L280 TraceCheckUtils]: 11: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,773 INFO L280 TraceCheckUtils]: 12: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,773 INFO L280 TraceCheckUtils]: 13: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,775 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,776 INFO L280 TraceCheckUtils]: 15: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,778 INFO L275 TraceCheckUtils]: 16: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} is VALID [2020-07-08 12:02:08,779 INFO L263 TraceCheckUtils]: 17: Hoare triple {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,780 INFO L280 TraceCheckUtils]: 18: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,781 INFO L280 TraceCheckUtils]: 19: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,782 INFO L263 TraceCheckUtils]: 20: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,783 INFO L280 TraceCheckUtils]: 21: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,783 INFO L280 TraceCheckUtils]: 22: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,784 INFO L280 TraceCheckUtils]: 23: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,785 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,787 INFO L263 TraceCheckUtils]: 25: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,788 INFO L280 TraceCheckUtils]: 26: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,788 INFO L280 TraceCheckUtils]: 27: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,789 INFO L280 TraceCheckUtils]: 28: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,790 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,791 INFO L280 TraceCheckUtils]: 30: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,793 INFO L275 TraceCheckUtils]: 31: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} #40#return; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:08,793 INFO L280 TraceCheckUtils]: 32: Hoare triple {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} assume true; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:08,795 INFO L275 TraceCheckUtils]: 33: Hoare quadruple {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3624#(and (<= (+ |old(~counter~0)| 4) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 4)))} is VALID [2020-07-08 12:02:08,804 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,831 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,851 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,857 INFO L280 TraceCheckUtils]: 0: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,857 INFO L280 TraceCheckUtils]: 1: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,858 INFO L280 TraceCheckUtils]: 2: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,860 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,862 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,868 INFO L280 TraceCheckUtils]: 0: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,869 INFO L280 TraceCheckUtils]: 1: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,869 INFO L280 TraceCheckUtils]: 2: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,871 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,872 INFO L280 TraceCheckUtils]: 0: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,872 INFO L280 TraceCheckUtils]: 1: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,874 INFO L263 TraceCheckUtils]: 2: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,874 INFO L280 TraceCheckUtils]: 3: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,875 INFO L280 TraceCheckUtils]: 4: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,876 INFO L280 TraceCheckUtils]: 5: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,877 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,879 INFO L263 TraceCheckUtils]: 7: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,879 INFO L280 TraceCheckUtils]: 8: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,880 INFO L280 TraceCheckUtils]: 9: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,884 INFO L280 TraceCheckUtils]: 10: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,886 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,887 INFO L280 TraceCheckUtils]: 12: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,889 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} is VALID [2020-07-08 12:02:08,893 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,913 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,918 INFO L280 TraceCheckUtils]: 0: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,919 INFO L280 TraceCheckUtils]: 1: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,919 INFO L280 TraceCheckUtils]: 2: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,921 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,923 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:08,928 INFO L280 TraceCheckUtils]: 0: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,929 INFO L280 TraceCheckUtils]: 1: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,930 INFO L280 TraceCheckUtils]: 2: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,931 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,932 INFO L280 TraceCheckUtils]: 0: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,933 INFO L280 TraceCheckUtils]: 1: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,934 INFO L263 TraceCheckUtils]: 2: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,935 INFO L280 TraceCheckUtils]: 3: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,935 INFO L280 TraceCheckUtils]: 4: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,936 INFO L280 TraceCheckUtils]: 5: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,937 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,939 INFO L263 TraceCheckUtils]: 7: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,939 INFO L280 TraceCheckUtils]: 8: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,940 INFO L280 TraceCheckUtils]: 9: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,940 INFO L280 TraceCheckUtils]: 10: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,942 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,942 INFO L280 TraceCheckUtils]: 12: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,944 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} #40#return; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:08,945 INFO L280 TraceCheckUtils]: 0: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,946 INFO L280 TraceCheckUtils]: 1: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,948 INFO L263 TraceCheckUtils]: 2: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,948 INFO L280 TraceCheckUtils]: 3: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,949 INFO L280 TraceCheckUtils]: 4: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,950 INFO L263 TraceCheckUtils]: 5: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,951 INFO L280 TraceCheckUtils]: 6: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,952 INFO L280 TraceCheckUtils]: 7: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,952 INFO L280 TraceCheckUtils]: 8: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,954 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,955 INFO L263 TraceCheckUtils]: 10: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,956 INFO L280 TraceCheckUtils]: 11: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,957 INFO L280 TraceCheckUtils]: 12: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,957 INFO L280 TraceCheckUtils]: 13: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,959 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,960 INFO L280 TraceCheckUtils]: 15: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,962 INFO L275 TraceCheckUtils]: 16: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} is VALID [2020-07-08 12:02:08,964 INFO L263 TraceCheckUtils]: 17: Hoare triple {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,964 INFO L280 TraceCheckUtils]: 18: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,965 INFO L280 TraceCheckUtils]: 19: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,967 INFO L263 TraceCheckUtils]: 20: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,968 INFO L280 TraceCheckUtils]: 21: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,968 INFO L280 TraceCheckUtils]: 22: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,969 INFO L280 TraceCheckUtils]: 23: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,971 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,972 INFO L263 TraceCheckUtils]: 25: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,973 INFO L280 TraceCheckUtils]: 26: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,974 INFO L280 TraceCheckUtils]: 27: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,974 INFO L280 TraceCheckUtils]: 28: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,976 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,977 INFO L280 TraceCheckUtils]: 30: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,979 INFO L275 TraceCheckUtils]: 31: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} #40#return; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:08,980 INFO L280 TraceCheckUtils]: 32: Hoare triple {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} assume true; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:08,982 INFO L275 TraceCheckUtils]: 33: Hoare quadruple {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} {3624#(and (<= (+ |old(~counter~0)| 4) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 4)))} #40#return; {3659#(and (or (<= (+ |old(~counter~0)| 7) ~counter~0) (< 6 ~counter~0)) (or (<= ~counter~0 7) (<= ~counter~0 (+ |old(~counter~0)| 7))))} is VALID [2020-07-08 12:02:08,986 INFO L280 TraceCheckUtils]: 0: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,987 INFO L280 TraceCheckUtils]: 1: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,989 INFO L263 TraceCheckUtils]: 2: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,990 INFO L280 TraceCheckUtils]: 3: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,991 INFO L280 TraceCheckUtils]: 4: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,992 INFO L263 TraceCheckUtils]: 5: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,993 INFO L280 TraceCheckUtils]: 6: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,994 INFO L280 TraceCheckUtils]: 7: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:08,995 INFO L263 TraceCheckUtils]: 8: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,996 INFO L280 TraceCheckUtils]: 9: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,997 INFO L280 TraceCheckUtils]: 10: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,997 INFO L280 TraceCheckUtils]: 11: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:08,999 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,001 INFO L263 TraceCheckUtils]: 13: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,002 INFO L280 TraceCheckUtils]: 14: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,002 INFO L280 TraceCheckUtils]: 15: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,003 INFO L280 TraceCheckUtils]: 16: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,005 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,006 INFO L280 TraceCheckUtils]: 18: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,008 INFO L275 TraceCheckUtils]: 19: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} is VALID [2020-07-08 12:02:09,009 INFO L263 TraceCheckUtils]: 20: Hoare triple {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,010 INFO L280 TraceCheckUtils]: 21: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,016 INFO L280 TraceCheckUtils]: 22: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,032 INFO L263 TraceCheckUtils]: 23: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,034 INFO L280 TraceCheckUtils]: 24: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,034 INFO L280 TraceCheckUtils]: 25: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,035 INFO L280 TraceCheckUtils]: 26: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,036 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,036 INFO L263 TraceCheckUtils]: 28: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,037 INFO L280 TraceCheckUtils]: 29: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,037 INFO L280 TraceCheckUtils]: 30: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,038 INFO L280 TraceCheckUtils]: 31: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,039 INFO L275 TraceCheckUtils]: 32: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,040 INFO L280 TraceCheckUtils]: 33: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,044 INFO L275 TraceCheckUtils]: 34: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} #40#return; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:09,045 INFO L280 TraceCheckUtils]: 35: Hoare triple {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} assume true; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:09,047 INFO L275 TraceCheckUtils]: 36: Hoare quadruple {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3624#(and (<= (+ |old(~counter~0)| 4) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 4)))} is VALID [2020-07-08 12:02:09,048 INFO L263 TraceCheckUtils]: 37: Hoare triple {3624#(and (<= (+ |old(~counter~0)| 4) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 4)))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,048 INFO L280 TraceCheckUtils]: 38: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,049 INFO L280 TraceCheckUtils]: 39: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,050 INFO L263 TraceCheckUtils]: 40: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,050 INFO L280 TraceCheckUtils]: 41: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,051 INFO L280 TraceCheckUtils]: 42: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,052 INFO L263 TraceCheckUtils]: 43: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,053 INFO L280 TraceCheckUtils]: 44: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,054 INFO L280 TraceCheckUtils]: 45: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,054 INFO L280 TraceCheckUtils]: 46: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,056 INFO L275 TraceCheckUtils]: 47: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,057 INFO L263 TraceCheckUtils]: 48: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,057 INFO L280 TraceCheckUtils]: 49: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,058 INFO L280 TraceCheckUtils]: 50: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,058 INFO L280 TraceCheckUtils]: 51: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,060 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,060 INFO L280 TraceCheckUtils]: 53: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,062 INFO L275 TraceCheckUtils]: 54: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} is VALID [2020-07-08 12:02:09,063 INFO L263 TraceCheckUtils]: 55: Hoare triple {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,064 INFO L280 TraceCheckUtils]: 56: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,064 INFO L280 TraceCheckUtils]: 57: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,066 INFO L263 TraceCheckUtils]: 58: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,066 INFO L280 TraceCheckUtils]: 59: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,067 INFO L280 TraceCheckUtils]: 60: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,067 INFO L280 TraceCheckUtils]: 61: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,069 INFO L275 TraceCheckUtils]: 62: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,070 INFO L263 TraceCheckUtils]: 63: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,070 INFO L280 TraceCheckUtils]: 64: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,070 INFO L280 TraceCheckUtils]: 65: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,071 INFO L280 TraceCheckUtils]: 66: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,072 INFO L275 TraceCheckUtils]: 67: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,072 INFO L280 TraceCheckUtils]: 68: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,073 INFO L275 TraceCheckUtils]: 69: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} #40#return; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:09,074 INFO L280 TraceCheckUtils]: 70: Hoare triple {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} assume true; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:09,076 INFO L275 TraceCheckUtils]: 71: Hoare quadruple {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} {3624#(and (<= (+ |old(~counter~0)| 4) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 4)))} #40#return; {3659#(and (or (<= (+ |old(~counter~0)| 7) ~counter~0) (< 6 ~counter~0)) (or (<= ~counter~0 7) (<= ~counter~0 (+ |old(~counter~0)| 7))))} is VALID [2020-07-08 12:02:09,076 INFO L280 TraceCheckUtils]: 72: Hoare triple {3659#(and (or (<= (+ |old(~counter~0)| 7) ~counter~0) (< 6 ~counter~0)) (or (<= ~counter~0 7) (<= ~counter~0 (+ |old(~counter~0)| 7))))} assume true; {3659#(and (or (<= (+ |old(~counter~0)| 7) ~counter~0) (< 6 ~counter~0)) (or (<= ~counter~0 7) (<= ~counter~0 (+ |old(~counter~0)| 7))))} is VALID [2020-07-08 12:02:09,077 INFO L275 TraceCheckUtils]: 73: Hoare quadruple {3659#(and (or (<= (+ |old(~counter~0)| 7) ~counter~0) (< 6 ~counter~0)) (or (<= ~counter~0 7) (<= ~counter~0 (+ |old(~counter~0)| 7))))} {3494#(and (<= 0 ~counter~0) (<= ~counter~0 0))} #48#return; {3569#(= ~counter~0 7)} is VALID [2020-07-08 12:02:09,089 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:09,156 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:09,217 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:09,241 INFO L280 TraceCheckUtils]: 0: Hoare triple {3489#true} ~n := #in~n; {3489#true} is VALID [2020-07-08 12:02:09,242 INFO L280 TraceCheckUtils]: 1: Hoare triple {3489#true} assume 1 == ~n;#res := 1; {3768#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:02:09,243 INFO L280 TraceCheckUtils]: 2: Hoare triple {3768#(= 1 |hanoi_#res|)} assume true; {3768#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:02:09,244 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3768#(= 1 |hanoi_#res|)} {3489#true} #42#return; {3766#(= 1 |hanoi_#t~ret0|)} is VALID [2020-07-08 12:02:09,244 INFO L280 TraceCheckUtils]: 0: Hoare triple {3489#true} ~n := #in~n; {3489#true} is VALID [2020-07-08 12:02:09,244 INFO L280 TraceCheckUtils]: 1: Hoare triple {3489#true} assume !(1 == ~n); {3489#true} is VALID [2020-07-08 12:02:09,245 INFO L263 TraceCheckUtils]: 2: Hoare triple {3489#true} call #t~ret0 := hanoi(~n - 1); {3489#true} is VALID [2020-07-08 12:02:09,245 INFO L280 TraceCheckUtils]: 3: Hoare triple {3489#true} ~n := #in~n; {3489#true} is VALID [2020-07-08 12:02:09,246 INFO L280 TraceCheckUtils]: 4: Hoare triple {3489#true} assume 1 == ~n;#res := 1; {3768#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:02:09,246 INFO L280 TraceCheckUtils]: 5: Hoare triple {3768#(= 1 |hanoi_#res|)} assume true; {3768#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:02:09,247 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {3768#(= 1 |hanoi_#res|)} {3489#true} #42#return; {3766#(= 1 |hanoi_#t~ret0|)} is VALID [2020-07-08 12:02:09,248 INFO L280 TraceCheckUtils]: 7: Hoare triple {3766#(= 1 |hanoi_#t~ret0|)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {3767#(and (<= |hanoi_#res| 3) (<= 3 |hanoi_#res|))} is VALID [2020-07-08 12:02:09,248 INFO L280 TraceCheckUtils]: 8: Hoare triple {3767#(and (<= |hanoi_#res| 3) (<= 3 |hanoi_#res|))} assume true; {3767#(and (<= |hanoi_#res| 3) (<= 3 |hanoi_#res|))} is VALID [2020-07-08 12:02:09,249 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {3767#(and (<= |hanoi_#res| 3) (<= 3 |hanoi_#res|))} {3489#true} #42#return; {3760#(and (<= |hanoi_#t~ret0| 3) (<= 3 |hanoi_#t~ret0|))} is VALID [2020-07-08 12:02:09,250 INFO L280 TraceCheckUtils]: 0: Hoare triple {3489#true} ~n := #in~n; {3489#true} is VALID [2020-07-08 12:02:09,250 INFO L280 TraceCheckUtils]: 1: Hoare triple {3489#true} assume !(1 == ~n); {3489#true} is VALID [2020-07-08 12:02:09,250 INFO L263 TraceCheckUtils]: 2: Hoare triple {3489#true} call #t~ret0 := hanoi(~n - 1); {3489#true} is VALID [2020-07-08 12:02:09,250 INFO L280 TraceCheckUtils]: 3: Hoare triple {3489#true} ~n := #in~n; {3489#true} is VALID [2020-07-08 12:02:09,250 INFO L280 TraceCheckUtils]: 4: Hoare triple {3489#true} assume !(1 == ~n); {3489#true} is VALID [2020-07-08 12:02:09,251 INFO L263 TraceCheckUtils]: 5: Hoare triple {3489#true} call #t~ret0 := hanoi(~n - 1); {3489#true} is VALID [2020-07-08 12:02:09,251 INFO L280 TraceCheckUtils]: 6: Hoare triple {3489#true} ~n := #in~n; {3489#true} is VALID [2020-07-08 12:02:09,251 INFO L280 TraceCheckUtils]: 7: Hoare triple {3489#true} assume 1 == ~n;#res := 1; {3768#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:02:09,252 INFO L280 TraceCheckUtils]: 8: Hoare triple {3768#(= 1 |hanoi_#res|)} assume true; {3768#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:02:09,253 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {3768#(= 1 |hanoi_#res|)} {3489#true} #42#return; {3766#(= 1 |hanoi_#t~ret0|)} is VALID [2020-07-08 12:02:09,254 INFO L280 TraceCheckUtils]: 10: Hoare triple {3766#(= 1 |hanoi_#t~ret0|)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {3767#(and (<= |hanoi_#res| 3) (<= 3 |hanoi_#res|))} is VALID [2020-07-08 12:02:09,254 INFO L280 TraceCheckUtils]: 11: Hoare triple {3767#(and (<= |hanoi_#res| 3) (<= 3 |hanoi_#res|))} assume true; {3767#(and (<= |hanoi_#res| 3) (<= 3 |hanoi_#res|))} is VALID [2020-07-08 12:02:09,255 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {3767#(and (<= |hanoi_#res| 3) (<= 3 |hanoi_#res|))} {3489#true} #42#return; {3760#(and (<= |hanoi_#t~ret0| 3) (<= 3 |hanoi_#t~ret0|))} is VALID [2020-07-08 12:02:09,256 INFO L280 TraceCheckUtils]: 13: Hoare triple {3760#(and (<= |hanoi_#t~ret0| 3) (<= 3 |hanoi_#t~ret0|))} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {3761#(= 7 |hanoi_#res|)} is VALID [2020-07-08 12:02:09,257 INFO L280 TraceCheckUtils]: 14: Hoare triple {3761#(= 7 |hanoi_#res|)} assume true; {3761#(= 7 |hanoi_#res|)} is VALID [2020-07-08 12:02:09,258 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {3761#(= 7 |hanoi_#res|)} {3569#(= ~counter~0 7)} #50#return; {3586#(= ~counter~0 |main_#t~ret3|)} is VALID [2020-07-08 12:02:09,259 INFO L263 TraceCheckUtils]: 0: Hoare triple {3489#true} call ULTIMATE.init(); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,259 INFO L280 TraceCheckUtils]: 1: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {3489#true} is VALID [2020-07-08 12:02:09,259 INFO L280 TraceCheckUtils]: 2: Hoare triple {3489#true} assume true; {3489#true} is VALID [2020-07-08 12:02:09,259 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3489#true} {3489#true} #44#return; {3489#true} is VALID [2020-07-08 12:02:09,259 INFO L263 TraceCheckUtils]: 4: Hoare triple {3489#true} call #t~ret4 := main(); {3489#true} is VALID [2020-07-08 12:02:09,260 INFO L280 TraceCheckUtils]: 5: Hoare triple {3489#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {3489#true} is VALID [2020-07-08 12:02:09,260 INFO L280 TraceCheckUtils]: 6: Hoare triple {3489#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {3494#(and (<= 0 ~counter~0) (<= ~counter~0 0))} is VALID [2020-07-08 12:02:09,261 INFO L263 TraceCheckUtils]: 7: Hoare triple {3494#(and (<= 0 ~counter~0) (<= ~counter~0 0))} call applyHanoi(~n~0, 1, 3, 2); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,262 INFO L280 TraceCheckUtils]: 8: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,263 INFO L280 TraceCheckUtils]: 9: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,264 INFO L263 TraceCheckUtils]: 10: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,265 INFO L280 TraceCheckUtils]: 11: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,265 INFO L280 TraceCheckUtils]: 12: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,267 INFO L263 TraceCheckUtils]: 13: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,267 INFO L280 TraceCheckUtils]: 14: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,268 INFO L280 TraceCheckUtils]: 15: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,269 INFO L263 TraceCheckUtils]: 16: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,270 INFO L280 TraceCheckUtils]: 17: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,270 INFO L280 TraceCheckUtils]: 18: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,271 INFO L280 TraceCheckUtils]: 19: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,272 INFO L275 TraceCheckUtils]: 20: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,274 INFO L263 TraceCheckUtils]: 21: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,274 INFO L280 TraceCheckUtils]: 22: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,275 INFO L280 TraceCheckUtils]: 23: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,275 INFO L280 TraceCheckUtils]: 24: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,277 INFO L275 TraceCheckUtils]: 25: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,277 INFO L280 TraceCheckUtils]: 26: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,279 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} is VALID [2020-07-08 12:02:09,280 INFO L263 TraceCheckUtils]: 28: Hoare triple {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,281 INFO L280 TraceCheckUtils]: 29: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,282 INFO L280 TraceCheckUtils]: 30: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,283 INFO L263 TraceCheckUtils]: 31: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,283 INFO L280 TraceCheckUtils]: 32: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,284 INFO L280 TraceCheckUtils]: 33: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,285 INFO L280 TraceCheckUtils]: 34: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,286 INFO L275 TraceCheckUtils]: 35: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,287 INFO L263 TraceCheckUtils]: 36: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,288 INFO L280 TraceCheckUtils]: 37: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,288 INFO L280 TraceCheckUtils]: 38: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,289 INFO L280 TraceCheckUtils]: 39: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,290 INFO L275 TraceCheckUtils]: 40: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,291 INFO L280 TraceCheckUtils]: 41: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,293 INFO L275 TraceCheckUtils]: 42: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} #40#return; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:09,293 INFO L280 TraceCheckUtils]: 43: Hoare triple {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} assume true; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:09,295 INFO L275 TraceCheckUtils]: 44: Hoare quadruple {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3624#(and (<= (+ |old(~counter~0)| 4) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 4)))} is VALID [2020-07-08 12:02:09,297 INFO L263 TraceCheckUtils]: 45: Hoare triple {3624#(and (<= (+ |old(~counter~0)| 4) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 4)))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,297 INFO L280 TraceCheckUtils]: 46: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,298 INFO L280 TraceCheckUtils]: 47: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,299 INFO L263 TraceCheckUtils]: 48: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,300 INFO L280 TraceCheckUtils]: 49: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,301 INFO L280 TraceCheckUtils]: 50: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,302 INFO L263 TraceCheckUtils]: 51: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,303 INFO L280 TraceCheckUtils]: 52: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,303 INFO L280 TraceCheckUtils]: 53: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,304 INFO L280 TraceCheckUtils]: 54: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,305 INFO L275 TraceCheckUtils]: 55: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,306 INFO L263 TraceCheckUtils]: 56: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,307 INFO L280 TraceCheckUtils]: 57: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,307 INFO L280 TraceCheckUtils]: 58: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,308 INFO L280 TraceCheckUtils]: 59: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,309 INFO L275 TraceCheckUtils]: 60: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,310 INFO L280 TraceCheckUtils]: 61: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,312 INFO L275 TraceCheckUtils]: 62: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} is VALID [2020-07-08 12:02:09,313 INFO L263 TraceCheckUtils]: 63: Hoare triple {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,314 INFO L280 TraceCheckUtils]: 64: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,315 INFO L280 TraceCheckUtils]: 65: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,316 INFO L263 TraceCheckUtils]: 66: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,317 INFO L280 TraceCheckUtils]: 67: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,317 INFO L280 TraceCheckUtils]: 68: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,318 INFO L280 TraceCheckUtils]: 69: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,320 INFO L275 TraceCheckUtils]: 70: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,321 INFO L263 TraceCheckUtils]: 71: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,322 INFO L280 TraceCheckUtils]: 72: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,322 INFO L280 TraceCheckUtils]: 73: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,323 INFO L280 TraceCheckUtils]: 74: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:09,324 INFO L275 TraceCheckUtils]: 75: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,325 INFO L280 TraceCheckUtils]: 76: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:09,327 INFO L275 TraceCheckUtils]: 77: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} #40#return; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:09,327 INFO L280 TraceCheckUtils]: 78: Hoare triple {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} assume true; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:09,329 INFO L275 TraceCheckUtils]: 79: Hoare quadruple {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} {3624#(and (<= (+ |old(~counter~0)| 4) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 4)))} #40#return; {3659#(and (or (<= (+ |old(~counter~0)| 7) ~counter~0) (< 6 ~counter~0)) (or (<= ~counter~0 7) (<= ~counter~0 (+ |old(~counter~0)| 7))))} is VALID [2020-07-08 12:02:09,330 INFO L280 TraceCheckUtils]: 80: Hoare triple {3659#(and (or (<= (+ |old(~counter~0)| 7) ~counter~0) (< 6 ~counter~0)) (or (<= ~counter~0 7) (<= ~counter~0 (+ |old(~counter~0)| 7))))} assume true; {3659#(and (or (<= (+ |old(~counter~0)| 7) ~counter~0) (< 6 ~counter~0)) (or (<= ~counter~0 7) (<= ~counter~0 (+ |old(~counter~0)| 7))))} is VALID [2020-07-08 12:02:09,331 INFO L275 TraceCheckUtils]: 81: Hoare quadruple {3659#(and (or (<= (+ |old(~counter~0)| 7) ~counter~0) (< 6 ~counter~0)) (or (<= ~counter~0 7) (<= ~counter~0 (+ |old(~counter~0)| 7))))} {3494#(and (<= 0 ~counter~0) (<= ~counter~0 0))} #48#return; {3569#(= ~counter~0 7)} is VALID [2020-07-08 12:02:09,332 INFO L263 TraceCheckUtils]: 82: Hoare triple {3569#(= ~counter~0 7)} call #t~ret3 := hanoi(~n~0); {3489#true} is VALID [2020-07-08 12:02:09,332 INFO L280 TraceCheckUtils]: 83: Hoare triple {3489#true} ~n := #in~n; {3489#true} is VALID [2020-07-08 12:02:09,332 INFO L280 TraceCheckUtils]: 84: Hoare triple {3489#true} assume !(1 == ~n); {3489#true} is VALID [2020-07-08 12:02:09,332 INFO L263 TraceCheckUtils]: 85: Hoare triple {3489#true} call #t~ret0 := hanoi(~n - 1); {3489#true} is VALID [2020-07-08 12:02:09,332 INFO L280 TraceCheckUtils]: 86: Hoare triple {3489#true} ~n := #in~n; {3489#true} is VALID [2020-07-08 12:02:09,332 INFO L280 TraceCheckUtils]: 87: Hoare triple {3489#true} assume !(1 == ~n); {3489#true} is VALID [2020-07-08 12:02:09,333 INFO L263 TraceCheckUtils]: 88: Hoare triple {3489#true} call #t~ret0 := hanoi(~n - 1); {3489#true} is VALID [2020-07-08 12:02:09,333 INFO L280 TraceCheckUtils]: 89: Hoare triple {3489#true} ~n := #in~n; {3489#true} is VALID [2020-07-08 12:02:09,333 INFO L280 TraceCheckUtils]: 90: Hoare triple {3489#true} assume 1 == ~n;#res := 1; {3768#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:02:09,334 INFO L280 TraceCheckUtils]: 91: Hoare triple {3768#(= 1 |hanoi_#res|)} assume true; {3768#(= 1 |hanoi_#res|)} is VALID [2020-07-08 12:02:09,335 INFO L275 TraceCheckUtils]: 92: Hoare quadruple {3768#(= 1 |hanoi_#res|)} {3489#true} #42#return; {3766#(= 1 |hanoi_#t~ret0|)} is VALID [2020-07-08 12:02:09,336 INFO L280 TraceCheckUtils]: 93: Hoare triple {3766#(= 1 |hanoi_#t~ret0|)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {3767#(and (<= |hanoi_#res| 3) (<= 3 |hanoi_#res|))} is VALID [2020-07-08 12:02:09,336 INFO L280 TraceCheckUtils]: 94: Hoare triple {3767#(and (<= |hanoi_#res| 3) (<= 3 |hanoi_#res|))} assume true; {3767#(and (<= |hanoi_#res| 3) (<= 3 |hanoi_#res|))} is VALID [2020-07-08 12:02:09,337 INFO L275 TraceCheckUtils]: 95: Hoare quadruple {3767#(and (<= |hanoi_#res| 3) (<= 3 |hanoi_#res|))} {3489#true} #42#return; {3760#(and (<= |hanoi_#t~ret0| 3) (<= 3 |hanoi_#t~ret0|))} is VALID [2020-07-08 12:02:09,338 INFO L280 TraceCheckUtils]: 96: Hoare triple {3760#(and (<= |hanoi_#t~ret0| 3) (<= 3 |hanoi_#t~ret0|))} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {3761#(= 7 |hanoi_#res|)} is VALID [2020-07-08 12:02:09,339 INFO L280 TraceCheckUtils]: 97: Hoare triple {3761#(= 7 |hanoi_#res|)} assume true; {3761#(= 7 |hanoi_#res|)} is VALID [2020-07-08 12:02:09,340 INFO L275 TraceCheckUtils]: 98: Hoare quadruple {3761#(= 7 |hanoi_#res|)} {3569#(= ~counter~0 7)} #50#return; {3586#(= ~counter~0 |main_#t~ret3|)} is VALID [2020-07-08 12:02:09,340 INFO L280 TraceCheckUtils]: 99: Hoare triple {3586#(= ~counter~0 |main_#t~ret3|)} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {3587#(= ~counter~0 main_~result~0)} is VALID [2020-07-08 12:02:09,341 INFO L280 TraceCheckUtils]: 100: Hoare triple {3587#(= ~counter~0 main_~result~0)} assume !(~result~0 == ~counter~0); {3490#false} is VALID [2020-07-08 12:02:09,341 INFO L280 TraceCheckUtils]: 101: Hoare triple {3490#false} assume !false; {3490#false} is VALID [2020-07-08 12:02:09,355 INFO L134 CoverageAnalysis]: Checked inductivity of 476 backedges. 0 proven. 161 refuted. 0 times theorem prover too weak. 315 trivial. 0 not checked. [2020-07-08 12:02:09,356 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1945962160] [2020-07-08 12:02:09,356 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [588073994] [2020-07-08 12:02:09,356 INFO L92 rtionOrderModulation]: Changing assertion order to INSIDE_LOOP_FIRST1 No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-08 12:02:09,450 INFO L249 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 12 check-sat command(s) [2020-07-08 12:02:09,450 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2020-07-08 12:02:09,453 INFO L264 TraceCheckSpWp]: Trace formula consists of 438 conjuncts, 91 conjunts are in the unsatisfiable core [2020-07-08 12:02:09,479 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:09,482 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-08 12:02:10,229 INFO L263 TraceCheckUtils]: 0: Hoare triple {3489#true} call ULTIMATE.init(); {3489#true} is VALID [2020-07-08 12:02:10,229 INFO L280 TraceCheckUtils]: 1: Hoare triple {3489#true} ~counter~0 := 0; {3489#true} is VALID [2020-07-08 12:02:10,229 INFO L280 TraceCheckUtils]: 2: Hoare triple {3489#true} assume true; {3489#true} is VALID [2020-07-08 12:02:10,229 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {3489#true} {3489#true} #44#return; {3489#true} is VALID [2020-07-08 12:02:10,229 INFO L263 TraceCheckUtils]: 4: Hoare triple {3489#true} call #t~ret4 := main(); {3489#true} is VALID [2020-07-08 12:02:10,230 INFO L280 TraceCheckUtils]: 5: Hoare triple {3489#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {3489#true} is VALID [2020-07-08 12:02:10,230 INFO L280 TraceCheckUtils]: 6: Hoare triple {3489#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {3494#(and (<= 0 ~counter~0) (<= ~counter~0 0))} is VALID [2020-07-08 12:02:10,231 INFO L263 TraceCheckUtils]: 7: Hoare triple {3494#(and (<= 0 ~counter~0) (<= ~counter~0 0))} call applyHanoi(~n~0, 1, 3, 2); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,231 INFO L280 TraceCheckUtils]: 8: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,232 INFO L280 TraceCheckUtils]: 9: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,233 INFO L263 TraceCheckUtils]: 10: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,233 INFO L280 TraceCheckUtils]: 11: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,234 INFO L280 TraceCheckUtils]: 12: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,234 INFO L263 TraceCheckUtils]: 13: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,235 INFO L280 TraceCheckUtils]: 14: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,235 INFO L280 TraceCheckUtils]: 15: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,236 INFO L263 TraceCheckUtils]: 16: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,237 INFO L280 TraceCheckUtils]: 17: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,237 INFO L280 TraceCheckUtils]: 18: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,237 INFO L280 TraceCheckUtils]: 19: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,238 INFO L275 TraceCheckUtils]: 20: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,240 INFO L263 TraceCheckUtils]: 21: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,240 INFO L280 TraceCheckUtils]: 22: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,241 INFO L280 TraceCheckUtils]: 23: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,242 INFO L280 TraceCheckUtils]: 24: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,243 INFO L275 TraceCheckUtils]: 25: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,244 INFO L280 TraceCheckUtils]: 26: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,245 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} is VALID [2020-07-08 12:02:10,246 INFO L263 TraceCheckUtils]: 28: Hoare triple {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,246 INFO L280 TraceCheckUtils]: 29: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,253 INFO L280 TraceCheckUtils]: 30: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,255 INFO L263 TraceCheckUtils]: 31: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,256 INFO L280 TraceCheckUtils]: 32: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,257 INFO L280 TraceCheckUtils]: 33: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,257 INFO L280 TraceCheckUtils]: 34: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,258 INFO L275 TraceCheckUtils]: 35: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,259 INFO L263 TraceCheckUtils]: 36: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,260 INFO L280 TraceCheckUtils]: 37: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,260 INFO L280 TraceCheckUtils]: 38: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,263 INFO L280 TraceCheckUtils]: 39: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,265 INFO L275 TraceCheckUtils]: 40: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,265 INFO L280 TraceCheckUtils]: 41: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,266 INFO L275 TraceCheckUtils]: 42: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} #40#return; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:10,267 INFO L280 TraceCheckUtils]: 43: Hoare triple {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} assume true; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:10,269 INFO L275 TraceCheckUtils]: 44: Hoare quadruple {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3624#(and (<= (+ |old(~counter~0)| 4) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 4)))} is VALID [2020-07-08 12:02:10,270 INFO L263 TraceCheckUtils]: 45: Hoare triple {3624#(and (<= (+ |old(~counter~0)| 4) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 4)))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,270 INFO L280 TraceCheckUtils]: 46: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,271 INFO L280 TraceCheckUtils]: 47: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,272 INFO L263 TraceCheckUtils]: 48: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,273 INFO L280 TraceCheckUtils]: 49: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,274 INFO L280 TraceCheckUtils]: 50: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,275 INFO L263 TraceCheckUtils]: 51: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,276 INFO L280 TraceCheckUtils]: 52: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,277 INFO L280 TraceCheckUtils]: 53: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,277 INFO L280 TraceCheckUtils]: 54: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,279 INFO L275 TraceCheckUtils]: 55: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,280 INFO L263 TraceCheckUtils]: 56: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,280 INFO L280 TraceCheckUtils]: 57: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,280 INFO L280 TraceCheckUtils]: 58: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,281 INFO L280 TraceCheckUtils]: 59: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,282 INFO L275 TraceCheckUtils]: 60: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,283 INFO L280 TraceCheckUtils]: 61: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,285 INFO L275 TraceCheckUtils]: 62: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} is VALID [2020-07-08 12:02:10,286 INFO L263 TraceCheckUtils]: 63: Hoare triple {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,287 INFO L280 TraceCheckUtils]: 64: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,288 INFO L280 TraceCheckUtils]: 65: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,307 INFO L263 TraceCheckUtils]: 66: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~from, ~via, ~to); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,307 INFO L280 TraceCheckUtils]: 67: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,308 INFO L280 TraceCheckUtils]: 68: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,308 INFO L280 TraceCheckUtils]: 69: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,309 INFO L275 TraceCheckUtils]: 70: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #38#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,311 INFO L263 TraceCheckUtils]: 71: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} call applyHanoi(~n - 1, ~via, ~to, ~from); {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,312 INFO L280 TraceCheckUtils]: 72: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,312 INFO L280 TraceCheckUtils]: 73: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume 0 == ~n; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,313 INFO L280 TraceCheckUtils]: 74: Hoare triple {3588#(= ~counter~0 |old(~counter~0)|)} assume true; {3588#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:10,314 INFO L275 TraceCheckUtils]: 75: Hoare quadruple {3588#(= ~counter~0 |old(~counter~0)|)} {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} #40#return; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,314 INFO L280 TraceCheckUtils]: 76: Hoare triple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} assume true; {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} is VALID [2020-07-08 12:02:10,315 INFO L275 TraceCheckUtils]: 77: Hoare quadruple {3589#(and (<= ~counter~0 (+ |old(~counter~0)| 1)) (<= (+ |old(~counter~0)| 1) ~counter~0))} {3674#(and (<= (+ |old(~counter~0)| 2) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 2)))} #40#return; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:10,316 INFO L280 TraceCheckUtils]: 78: Hoare triple {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} assume true; {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} is VALID [2020-07-08 12:02:10,318 INFO L275 TraceCheckUtils]: 79: Hoare quadruple {3689#(and (<= (+ |old(~counter~0)| 3) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 3)))} {3624#(and (<= (+ |old(~counter~0)| 4) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 4)))} #40#return; {4009#(and (<= (+ |old(~counter~0)| 7) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 7)))} is VALID [2020-07-08 12:02:10,318 INFO L280 TraceCheckUtils]: 80: Hoare triple {4009#(and (<= (+ |old(~counter~0)| 7) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 7)))} assume true; {4009#(and (<= (+ |old(~counter~0)| 7) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 7)))} is VALID [2020-07-08 12:02:10,319 INFO L275 TraceCheckUtils]: 81: Hoare quadruple {4009#(and (<= (+ |old(~counter~0)| 7) ~counter~0) (<= ~counter~0 (+ |old(~counter~0)| 7)))} {3494#(and (<= 0 ~counter~0) (<= ~counter~0 0))} #48#return; {3569#(= ~counter~0 7)} is VALID [2020-07-08 12:02:10,320 INFO L263 TraceCheckUtils]: 82: Hoare triple {3569#(= ~counter~0 7)} call #t~ret3 := hanoi(~n~0); {3569#(= ~counter~0 7)} is VALID [2020-07-08 12:02:10,320 INFO L280 TraceCheckUtils]: 83: Hoare triple {3569#(= ~counter~0 7)} ~n := #in~n; {3569#(= ~counter~0 7)} is VALID [2020-07-08 12:02:10,321 INFO L280 TraceCheckUtils]: 84: Hoare triple {3569#(= ~counter~0 7)} assume !(1 == ~n); {3569#(= ~counter~0 7)} is VALID [2020-07-08 12:02:10,322 INFO L263 TraceCheckUtils]: 85: Hoare triple {3569#(= ~counter~0 7)} call #t~ret0 := hanoi(~n - 1); {3569#(= ~counter~0 7)} is VALID [2020-07-08 12:02:10,324 INFO L280 TraceCheckUtils]: 86: Hoare triple {3569#(= ~counter~0 7)} ~n := #in~n; {3569#(= ~counter~0 7)} is VALID [2020-07-08 12:02:10,325 INFO L280 TraceCheckUtils]: 87: Hoare triple {3569#(= ~counter~0 7)} assume !(1 == ~n); {3569#(= ~counter~0 7)} is VALID [2020-07-08 12:02:10,325 INFO L263 TraceCheckUtils]: 88: Hoare triple {3569#(= ~counter~0 7)} call #t~ret0 := hanoi(~n - 1); {3569#(= ~counter~0 7)} is VALID [2020-07-08 12:02:10,326 INFO L280 TraceCheckUtils]: 89: Hoare triple {3569#(= ~counter~0 7)} ~n := #in~n; {3569#(= ~counter~0 7)} is VALID [2020-07-08 12:02:10,327 INFO L280 TraceCheckUtils]: 90: Hoare triple {3569#(= ~counter~0 7)} assume 1 == ~n;#res := 1; {4043#(and (= 1 |hanoi_#res|) (= ~counter~0 7))} is VALID [2020-07-08 12:02:10,328 INFO L280 TraceCheckUtils]: 91: Hoare triple {4043#(and (= 1 |hanoi_#res|) (= ~counter~0 7))} assume true; {4043#(and (= 1 |hanoi_#res|) (= ~counter~0 7))} is VALID [2020-07-08 12:02:10,328 INFO L275 TraceCheckUtils]: 92: Hoare quadruple {4043#(and (= 1 |hanoi_#res|) (= ~counter~0 7))} {3569#(= ~counter~0 7)} #42#return; {4050#(and (= ~counter~0 7) (= 1 |hanoi_#t~ret0|))} is VALID [2020-07-08 12:02:10,329 INFO L280 TraceCheckUtils]: 93: Hoare triple {4050#(and (= ~counter~0 7) (= 1 |hanoi_#t~ret0|))} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {4054#(and (= ~counter~0 7) (= 3 |hanoi_#res|))} is VALID [2020-07-08 12:02:10,329 INFO L280 TraceCheckUtils]: 94: Hoare triple {4054#(and (= ~counter~0 7) (= 3 |hanoi_#res|))} assume true; {4054#(and (= ~counter~0 7) (= 3 |hanoi_#res|))} is VALID [2020-07-08 12:02:10,331 INFO L275 TraceCheckUtils]: 95: Hoare quadruple {4054#(and (= ~counter~0 7) (= 3 |hanoi_#res|))} {3569#(= ~counter~0 7)} #42#return; {4061#(and (= 3 |hanoi_#t~ret0|) (= ~counter~0 7))} is VALID [2020-07-08 12:02:10,331 INFO L280 TraceCheckUtils]: 96: Hoare triple {4061#(and (= 3 |hanoi_#t~ret0|) (= ~counter~0 7))} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {4065#(and (= 7 |hanoi_#res|) (= ~counter~0 7))} is VALID [2020-07-08 12:02:10,332 INFO L280 TraceCheckUtils]: 97: Hoare triple {4065#(and (= 7 |hanoi_#res|) (= ~counter~0 7))} assume true; {4065#(and (= 7 |hanoi_#res|) (= ~counter~0 7))} is VALID [2020-07-08 12:02:10,333 INFO L275 TraceCheckUtils]: 98: Hoare quadruple {4065#(and (= 7 |hanoi_#res|) (= ~counter~0 7))} {3569#(= ~counter~0 7)} #50#return; {4072#(and (= 7 |main_#t~ret3|) (= ~counter~0 7))} is VALID [2020-07-08 12:02:10,334 INFO L280 TraceCheckUtils]: 99: Hoare triple {4072#(and (= 7 |main_#t~ret3|) (= ~counter~0 7))} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {4076#(and (= 7 main_~result~0) (= ~counter~0 7))} is VALID [2020-07-08 12:02:10,335 INFO L280 TraceCheckUtils]: 100: Hoare triple {4076#(and (= 7 main_~result~0) (= ~counter~0 7))} assume !(~result~0 == ~counter~0); {3490#false} is VALID [2020-07-08 12:02:10,335 INFO L280 TraceCheckUtils]: 101: Hoare triple {3490#false} assume !false; {3490#false} is VALID [2020-07-08 12:02:10,347 INFO L134 CoverageAnalysis]: Checked inductivity of 476 backedges. 0 proven. 161 refuted. 0 times theorem prover too weak. 315 trivial. 0 not checked. [2020-07-08 12:02:10,348 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-08 12:02:10,348 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 17] total 25 [2020-07-08 12:02:10,348 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1409955218] [2020-07-08 12:02:10,349 INFO L78 Accepts]: Start accepts. Automaton has 25 states. Word has length 102 [2020-07-08 12:02:10,349 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-08 12:02:10,349 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 25 states. [2020-07-08 12:02:10,440 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 62 edges. 62 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-08 12:02:10,440 INFO L459 AbstractCegarLoop]: Interpolant automaton has 25 states [2020-07-08 12:02:10,441 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-08 12:02:10,441 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 25 interpolants. [2020-07-08 12:02:10,442 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=530, Unknown=0, NotChecked=0, Total=600 [2020-07-08 12:02:10,442 INFO L87 Difference]: Start difference. First operand 48 states and 59 transitions. Second operand 25 states. [2020-07-08 12:02:13,115 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:02:13,116 INFO L93 Difference]: Finished difference Result 79 states and 98 transitions. [2020-07-08 12:02:13,116 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 24 states. [2020-07-08 12:02:13,116 INFO L78 Accepts]: Start accepts. Automaton has 25 states. Word has length 102 [2020-07-08 12:02:13,116 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-08 12:02:13,117 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 25 states. [2020-07-08 12:02:13,119 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 24 states to 24 states and 83 transitions. [2020-07-08 12:02:13,120 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 25 states. [2020-07-08 12:02:13,122 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 24 states to 24 states and 83 transitions. [2020-07-08 12:02:13,123 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 24 states and 83 transitions. [2020-07-08 12:02:13,265 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 83 edges. 83 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-08 12:02:13,268 INFO L225 Difference]: With dead ends: 79 [2020-07-08 12:02:13,269 INFO L226 Difference]: Without dead ends: 75 [2020-07-08 12:02:13,270 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 188 GetRequests, 141 SyntacticMatches, 9 SemanticMatches, 38 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 253 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=165, Invalid=1395, Unknown=0, NotChecked=0, Total=1560 [2020-07-08 12:02:13,270 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 75 states. [2020-07-08 12:02:13,338 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 75 to 66. [2020-07-08 12:02:13,338 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-08 12:02:13,338 INFO L82 GeneralOperation]: Start isEquivalent. First operand 75 states. Second operand 66 states. [2020-07-08 12:02:13,338 INFO L74 IsIncluded]: Start isIncluded. First operand 75 states. Second operand 66 states. [2020-07-08 12:02:13,338 INFO L87 Difference]: Start difference. First operand 75 states. Second operand 66 states. [2020-07-08 12:02:13,342 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:02:13,343 INFO L93 Difference]: Finished difference Result 75 states and 94 transitions. [2020-07-08 12:02:13,343 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 94 transitions. [2020-07-08 12:02:13,343 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-08 12:02:13,343 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-08 12:02:13,344 INFO L74 IsIncluded]: Start isIncluded. First operand 66 states. Second operand 75 states. [2020-07-08 12:02:13,344 INFO L87 Difference]: Start difference. First operand 66 states. Second operand 75 states. [2020-07-08 12:02:13,348 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-08 12:02:13,348 INFO L93 Difference]: Finished difference Result 75 states and 94 transitions. [2020-07-08 12:02:13,348 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 94 transitions. [2020-07-08 12:02:13,349 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-08 12:02:13,349 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-08 12:02:13,349 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-08 12:02:13,349 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-08 12:02:13,349 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 66 states. [2020-07-08 12:02:13,353 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 66 states to 66 states and 85 transitions. [2020-07-08 12:02:13,353 INFO L78 Accepts]: Start accepts. Automaton has 66 states and 85 transitions. Word has length 102 [2020-07-08 12:02:13,353 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-08 12:02:13,353 INFO L479 AbstractCegarLoop]: Abstraction has 66 states and 85 transitions. [2020-07-08 12:02:13,354 INFO L480 AbstractCegarLoop]: Interpolant automaton has 25 states. [2020-07-08 12:02:13,354 INFO L276 IsEmpty]: Start isEmpty. Operand 66 states and 85 transitions. [2020-07-08 12:02:13,355 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 143 [2020-07-08 12:02:13,356 INFO L414 BasicCegarLoop]: Found error trace [2020-07-08 12:02:13,356 INFO L422 BasicCegarLoop]: trace histogram [23, 23, 12, 11, 11, 11, 11, 11, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-08 12:02:13,569 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable7,8 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-08 12:02:13,570 INFO L427 AbstractCegarLoop]: === Iteration 9 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-08 12:02:13,571 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-08 12:02:13,571 INFO L82 PathProgramCache]: Analyzing trace with hash 589762519, now seen corresponding path program 6 times [2020-07-08 12:02:13,571 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-08 12:02:13,571 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2078537979] [2020-07-08 12:02:13,572 INFO L94 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-08 12:02:13,606 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:13,656 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:13,659 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {4456#true} is VALID [2020-07-08 12:02:13,659 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:13,660 INFO L275 TraceCheckUtils]: 2: Hoare quadruple {4456#true} {4456#true} #44#return; {4456#true} is VALID [2020-07-08 12:02:13,678 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:13,718 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:13,777 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:13,817 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:13,837 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:13,838 INFO L280 TraceCheckUtils]: 1: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:13,839 INFO L280 TraceCheckUtils]: 2: Hoare triple {4742#(= 0 |applyHanoi_#in~n|)} assume true; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:13,841 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4742#(= 0 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4736#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} is VALID [2020-07-08 12:02:13,843 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:13,847 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:13,848 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:13,848 INFO L280 TraceCheckUtils]: 2: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:13,849 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4456#true} {4736#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} #40#return; {4741#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:13,850 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:13,851 INFO L280 TraceCheckUtils]: 1: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:13,852 INFO L263 TraceCheckUtils]: 2: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:13,853 INFO L280 TraceCheckUtils]: 3: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:13,853 INFO L280 TraceCheckUtils]: 4: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:13,854 INFO L280 TraceCheckUtils]: 5: Hoare triple {4742#(= 0 |applyHanoi_#in~n|)} assume true; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:13,855 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {4742#(= 0 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4736#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} is VALID [2020-07-08 12:02:13,857 INFO L263 TraceCheckUtils]: 7: Hoare triple {4736#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:13,857 INFO L280 TraceCheckUtils]: 8: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:13,857 INFO L280 TraceCheckUtils]: 9: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:13,857 INFO L280 TraceCheckUtils]: 10: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:13,859 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {4456#true} {4736#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} #40#return; {4741#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:13,859 INFO L280 TraceCheckUtils]: 12: Hoare triple {4741#(<= |applyHanoi_#in~n| 1)} assume true; {4741#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:13,861 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {4741#(<= |applyHanoi_#in~n| 1)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4716#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} is VALID [2020-07-08 12:02:13,864 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:13,869 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:13,871 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:13,872 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:13,872 INFO L280 TraceCheckUtils]: 2: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:13,872 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:13,873 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:13,876 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:13,877 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:13,877 INFO L280 TraceCheckUtils]: 2: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:13,877 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:13,877 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:13,878 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:13,879 INFO L263 TraceCheckUtils]: 2: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:13,879 INFO L280 TraceCheckUtils]: 3: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:13,879 INFO L280 TraceCheckUtils]: 4: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:13,880 INFO L280 TraceCheckUtils]: 5: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:13,880 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:13,881 INFO L263 TraceCheckUtils]: 7: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:13,881 INFO L280 TraceCheckUtils]: 8: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:13,882 INFO L280 TraceCheckUtils]: 9: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:13,882 INFO L280 TraceCheckUtils]: 10: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:13,882 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:13,882 INFO L280 TraceCheckUtils]: 12: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:13,884 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {4456#true} {4716#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} #40#return; {4731#(<= |applyHanoi_#in~n| 2)} is VALID [2020-07-08 12:02:13,884 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:13,885 INFO L280 TraceCheckUtils]: 1: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:13,886 INFO L263 TraceCheckUtils]: 2: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:13,887 INFO L280 TraceCheckUtils]: 3: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:13,887 INFO L280 TraceCheckUtils]: 4: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:13,889 INFO L263 TraceCheckUtils]: 5: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:13,889 INFO L280 TraceCheckUtils]: 6: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:13,890 INFO L280 TraceCheckUtils]: 7: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:13,890 INFO L280 TraceCheckUtils]: 8: Hoare triple {4742#(= 0 |applyHanoi_#in~n|)} assume true; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:13,892 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {4742#(= 0 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4736#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} is VALID [2020-07-08 12:02:13,893 INFO L263 TraceCheckUtils]: 10: Hoare triple {4736#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:13,893 INFO L280 TraceCheckUtils]: 11: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:13,893 INFO L280 TraceCheckUtils]: 12: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:13,893 INFO L280 TraceCheckUtils]: 13: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:13,895 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {4456#true} {4736#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} #40#return; {4741#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:13,895 INFO L280 TraceCheckUtils]: 15: Hoare triple {4741#(<= |applyHanoi_#in~n| 1)} assume true; {4741#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:13,897 INFO L275 TraceCheckUtils]: 16: Hoare quadruple {4741#(<= |applyHanoi_#in~n| 1)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4716#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} is VALID [2020-07-08 12:02:13,898 INFO L263 TraceCheckUtils]: 17: Hoare triple {4716#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:13,899 INFO L280 TraceCheckUtils]: 18: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:13,899 INFO L280 TraceCheckUtils]: 19: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:13,900 INFO L263 TraceCheckUtils]: 20: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:13,900 INFO L280 TraceCheckUtils]: 21: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:13,901 INFO L280 TraceCheckUtils]: 22: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:13,901 INFO L280 TraceCheckUtils]: 23: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:13,901 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:13,902 INFO L263 TraceCheckUtils]: 25: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:13,902 INFO L280 TraceCheckUtils]: 26: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:13,903 INFO L280 TraceCheckUtils]: 27: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:13,903 INFO L280 TraceCheckUtils]: 28: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:13,903 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:13,903 INFO L280 TraceCheckUtils]: 30: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:13,904 INFO L275 TraceCheckUtils]: 31: Hoare quadruple {4456#true} {4716#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} #40#return; {4731#(<= |applyHanoi_#in~n| 2)} is VALID [2020-07-08 12:02:13,905 INFO L280 TraceCheckUtils]: 32: Hoare triple {4731#(<= |applyHanoi_#in~n| 2)} assume true; {4731#(<= |applyHanoi_#in~n| 2)} is VALID [2020-07-08 12:02:13,906 INFO L275 TraceCheckUtils]: 33: Hoare quadruple {4731#(<= |applyHanoi_#in~n| 2)} {4456#true} #38#return; {4626#(<= applyHanoi_~n 3)} is VALID [2020-07-08 12:02:13,935 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:13,984 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,026 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,072 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,084 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,085 INFO L280 TraceCheckUtils]: 1: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,086 INFO L280 TraceCheckUtils]: 2: Hoare triple {4742#(= 0 |applyHanoi_#in~n|)} assume true; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,087 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4742#(= 0 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} is VALID [2020-07-08 12:02:14,089 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,093 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,093 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,094 INFO L280 TraceCheckUtils]: 2: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,095 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4456#true} {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} #40#return; {4860#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,096 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,096 INFO L280 TraceCheckUtils]: 1: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,097 INFO L263 TraceCheckUtils]: 2: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,098 INFO L280 TraceCheckUtils]: 3: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,099 INFO L280 TraceCheckUtils]: 4: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,099 INFO L280 TraceCheckUtils]: 5: Hoare triple {4742#(= 0 |applyHanoi_#in~n|)} assume true; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,100 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {4742#(= 0 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} is VALID [2020-07-08 12:02:14,102 INFO L263 TraceCheckUtils]: 7: Hoare triple {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,102 INFO L280 TraceCheckUtils]: 8: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,102 INFO L280 TraceCheckUtils]: 9: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,102 INFO L280 TraceCheckUtils]: 10: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,103 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {4456#true} {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} #40#return; {4860#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,104 INFO L280 TraceCheckUtils]: 12: Hoare triple {4860#(<= 1 |applyHanoi_#in~n|)} assume true; {4860#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,105 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {4860#(<= 1 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4835#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} is VALID [2020-07-08 12:02:14,110 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,123 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,126 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,126 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,127 INFO L280 TraceCheckUtils]: 2: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,127 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,128 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,130 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,131 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,131 INFO L280 TraceCheckUtils]: 2: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,131 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,131 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,132 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,133 INFO L263 TraceCheckUtils]: 2: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,133 INFO L280 TraceCheckUtils]: 3: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,133 INFO L280 TraceCheckUtils]: 4: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,133 INFO L280 TraceCheckUtils]: 5: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,134 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,135 INFO L263 TraceCheckUtils]: 7: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,135 INFO L280 TraceCheckUtils]: 8: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,135 INFO L280 TraceCheckUtils]: 9: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,136 INFO L280 TraceCheckUtils]: 10: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,136 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,136 INFO L280 TraceCheckUtils]: 12: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,137 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {4456#true} {4835#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} #40#return; {4850#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,138 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,139 INFO L280 TraceCheckUtils]: 1: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,140 INFO L263 TraceCheckUtils]: 2: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,141 INFO L280 TraceCheckUtils]: 3: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,141 INFO L280 TraceCheckUtils]: 4: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,142 INFO L263 TraceCheckUtils]: 5: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,143 INFO L280 TraceCheckUtils]: 6: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,144 INFO L280 TraceCheckUtils]: 7: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,144 INFO L280 TraceCheckUtils]: 8: Hoare triple {4742#(= 0 |applyHanoi_#in~n|)} assume true; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,146 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {4742#(= 0 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} is VALID [2020-07-08 12:02:14,147 INFO L263 TraceCheckUtils]: 10: Hoare triple {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,147 INFO L280 TraceCheckUtils]: 11: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,148 INFO L280 TraceCheckUtils]: 12: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,148 INFO L280 TraceCheckUtils]: 13: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,149 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {4456#true} {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} #40#return; {4860#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,150 INFO L280 TraceCheckUtils]: 15: Hoare triple {4860#(<= 1 |applyHanoi_#in~n|)} assume true; {4860#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,151 INFO L275 TraceCheckUtils]: 16: Hoare quadruple {4860#(<= 1 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4835#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} is VALID [2020-07-08 12:02:14,153 INFO L263 TraceCheckUtils]: 17: Hoare triple {4835#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,153 INFO L280 TraceCheckUtils]: 18: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,153 INFO L280 TraceCheckUtils]: 19: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,155 INFO L263 TraceCheckUtils]: 20: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,155 INFO L280 TraceCheckUtils]: 21: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,155 INFO L280 TraceCheckUtils]: 22: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,155 INFO L280 TraceCheckUtils]: 23: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,155 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,157 INFO L263 TraceCheckUtils]: 25: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,157 INFO L280 TraceCheckUtils]: 26: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,157 INFO L280 TraceCheckUtils]: 27: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,157 INFO L280 TraceCheckUtils]: 28: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,158 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,158 INFO L280 TraceCheckUtils]: 30: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,159 INFO L275 TraceCheckUtils]: 31: Hoare quadruple {4456#true} {4835#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} #40#return; {4850#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,160 INFO L280 TraceCheckUtils]: 32: Hoare triple {4850#(<= 2 |applyHanoi_#in~n|)} assume true; {4850#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,162 INFO L275 TraceCheckUtils]: 33: Hoare quadruple {4850#(<= 2 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4785#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 3 applyHanoi_~n))} is VALID [2020-07-08 12:02:14,168 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,177 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,181 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,184 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,185 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,185 INFO L280 TraceCheckUtils]: 2: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,185 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,186 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,189 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,189 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,189 INFO L280 TraceCheckUtils]: 2: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,190 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,190 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,190 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,191 INFO L263 TraceCheckUtils]: 2: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,192 INFO L280 TraceCheckUtils]: 3: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,192 INFO L280 TraceCheckUtils]: 4: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,192 INFO L280 TraceCheckUtils]: 5: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,192 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,194 INFO L263 TraceCheckUtils]: 7: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,194 INFO L280 TraceCheckUtils]: 8: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,194 INFO L280 TraceCheckUtils]: 9: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,194 INFO L280 TraceCheckUtils]: 10: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,195 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,195 INFO L280 TraceCheckUtils]: 12: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,195 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,197 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,200 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,203 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,203 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,204 INFO L280 TraceCheckUtils]: 2: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,204 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,205 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,208 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,208 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,208 INFO L280 TraceCheckUtils]: 2: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,208 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,209 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,209 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,211 INFO L263 TraceCheckUtils]: 2: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,211 INFO L280 TraceCheckUtils]: 3: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,211 INFO L280 TraceCheckUtils]: 4: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,211 INFO L280 TraceCheckUtils]: 5: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,212 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,213 INFO L263 TraceCheckUtils]: 7: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,214 INFO L280 TraceCheckUtils]: 8: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,214 INFO L280 TraceCheckUtils]: 9: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,214 INFO L280 TraceCheckUtils]: 10: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,214 INFO L275 TraceCheckUtils]: 11: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,215 INFO L280 TraceCheckUtils]: 12: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,215 INFO L275 TraceCheckUtils]: 13: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,216 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,216 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,218 INFO L263 TraceCheckUtils]: 2: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,218 INFO L280 TraceCheckUtils]: 3: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,219 INFO L280 TraceCheckUtils]: 4: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,220 INFO L263 TraceCheckUtils]: 5: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,221 INFO L280 TraceCheckUtils]: 6: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,221 INFO L280 TraceCheckUtils]: 7: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,221 INFO L280 TraceCheckUtils]: 8: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,221 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,223 INFO L263 TraceCheckUtils]: 10: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,223 INFO L280 TraceCheckUtils]: 11: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,224 INFO L280 TraceCheckUtils]: 12: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,224 INFO L280 TraceCheckUtils]: 13: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,224 INFO L275 TraceCheckUtils]: 14: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,224 INFO L280 TraceCheckUtils]: 15: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,224 INFO L275 TraceCheckUtils]: 16: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,226 INFO L263 TraceCheckUtils]: 17: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,226 INFO L280 TraceCheckUtils]: 18: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,227 INFO L280 TraceCheckUtils]: 19: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,228 INFO L263 TraceCheckUtils]: 20: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,228 INFO L280 TraceCheckUtils]: 21: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,229 INFO L280 TraceCheckUtils]: 22: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,229 INFO L280 TraceCheckUtils]: 23: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,229 INFO L275 TraceCheckUtils]: 24: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,230 INFO L263 TraceCheckUtils]: 25: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,231 INFO L280 TraceCheckUtils]: 26: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,231 INFO L280 TraceCheckUtils]: 27: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,231 INFO L280 TraceCheckUtils]: 28: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,231 INFO L275 TraceCheckUtils]: 29: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,231 INFO L280 TraceCheckUtils]: 30: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,232 INFO L275 TraceCheckUtils]: 31: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,232 INFO L280 TraceCheckUtils]: 32: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,233 INFO L275 TraceCheckUtils]: 33: Hoare quadruple {4456#true} {4785#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 3 applyHanoi_~n))} #40#return; {4820#(<= 3 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,236 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,236 INFO L280 TraceCheckUtils]: 1: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,238 INFO L263 TraceCheckUtils]: 2: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,239 INFO L280 TraceCheckUtils]: 3: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,240 INFO L280 TraceCheckUtils]: 4: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,241 INFO L263 TraceCheckUtils]: 5: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,242 INFO L280 TraceCheckUtils]: 6: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,243 INFO L280 TraceCheckUtils]: 7: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,245 INFO L263 TraceCheckUtils]: 8: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,246 INFO L280 TraceCheckUtils]: 9: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,247 INFO L280 TraceCheckUtils]: 10: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,247 INFO L280 TraceCheckUtils]: 11: Hoare triple {4742#(= 0 |applyHanoi_#in~n|)} assume true; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,249 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {4742#(= 0 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} is VALID [2020-07-08 12:02:14,251 INFO L263 TraceCheckUtils]: 13: Hoare triple {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,251 INFO L280 TraceCheckUtils]: 14: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,252 INFO L280 TraceCheckUtils]: 15: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,252 INFO L280 TraceCheckUtils]: 16: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,253 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {4456#true} {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} #40#return; {4860#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,254 INFO L280 TraceCheckUtils]: 18: Hoare triple {4860#(<= 1 |applyHanoi_#in~n|)} assume true; {4860#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,256 INFO L275 TraceCheckUtils]: 19: Hoare quadruple {4860#(<= 1 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4835#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} is VALID [2020-07-08 12:02:14,257 INFO L263 TraceCheckUtils]: 20: Hoare triple {4835#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,257 INFO L280 TraceCheckUtils]: 21: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,257 INFO L280 TraceCheckUtils]: 22: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,259 INFO L263 TraceCheckUtils]: 23: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,259 INFO L280 TraceCheckUtils]: 24: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,259 INFO L280 TraceCheckUtils]: 25: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,260 INFO L280 TraceCheckUtils]: 26: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,260 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,262 INFO L263 TraceCheckUtils]: 28: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,262 INFO L280 TraceCheckUtils]: 29: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,262 INFO L280 TraceCheckUtils]: 30: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,263 INFO L280 TraceCheckUtils]: 31: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,263 INFO L275 TraceCheckUtils]: 32: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,263 INFO L280 TraceCheckUtils]: 33: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,265 INFO L275 TraceCheckUtils]: 34: Hoare quadruple {4456#true} {4835#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} #40#return; {4850#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,266 INFO L280 TraceCheckUtils]: 35: Hoare triple {4850#(<= 2 |applyHanoi_#in~n|)} assume true; {4850#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,268 INFO L275 TraceCheckUtils]: 36: Hoare quadruple {4850#(<= 2 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4785#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 3 applyHanoi_~n))} is VALID [2020-07-08 12:02:14,270 INFO L263 TraceCheckUtils]: 37: Hoare triple {4785#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 3 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,270 INFO L280 TraceCheckUtils]: 38: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,271 INFO L280 TraceCheckUtils]: 39: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,273 INFO L263 TraceCheckUtils]: 40: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,273 INFO L280 TraceCheckUtils]: 41: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,273 INFO L280 TraceCheckUtils]: 42: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,275 INFO L263 TraceCheckUtils]: 43: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,275 INFO L280 TraceCheckUtils]: 44: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,276 INFO L280 TraceCheckUtils]: 45: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,276 INFO L280 TraceCheckUtils]: 46: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,276 INFO L275 TraceCheckUtils]: 47: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,277 INFO L263 TraceCheckUtils]: 48: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,278 INFO L280 TraceCheckUtils]: 49: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,278 INFO L280 TraceCheckUtils]: 50: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,278 INFO L280 TraceCheckUtils]: 51: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,278 INFO L275 TraceCheckUtils]: 52: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,278 INFO L280 TraceCheckUtils]: 53: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,279 INFO L275 TraceCheckUtils]: 54: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,280 INFO L263 TraceCheckUtils]: 55: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,280 INFO L280 TraceCheckUtils]: 56: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,280 INFO L280 TraceCheckUtils]: 57: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,282 INFO L263 TraceCheckUtils]: 58: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,282 INFO L280 TraceCheckUtils]: 59: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,283 INFO L280 TraceCheckUtils]: 60: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,283 INFO L280 TraceCheckUtils]: 61: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,283 INFO L275 TraceCheckUtils]: 62: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,285 INFO L263 TraceCheckUtils]: 63: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,285 INFO L280 TraceCheckUtils]: 64: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,286 INFO L280 TraceCheckUtils]: 65: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,286 INFO L280 TraceCheckUtils]: 66: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,286 INFO L275 TraceCheckUtils]: 67: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,287 INFO L280 TraceCheckUtils]: 68: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,287 INFO L275 TraceCheckUtils]: 69: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,287 INFO L280 TraceCheckUtils]: 70: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,289 INFO L275 TraceCheckUtils]: 71: Hoare quadruple {4456#true} {4785#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 3 applyHanoi_~n))} #40#return; {4820#(<= 3 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,290 INFO L280 TraceCheckUtils]: 72: Hoare triple {4820#(<= 3 |applyHanoi_#in~n|)} assume true; {4820#(<= 3 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,292 INFO L275 TraceCheckUtils]: 73: Hoare quadruple {4820#(<= 3 |applyHanoi_#in~n|)} {4626#(<= applyHanoi_~n 3)} #40#return; {4457#false} is VALID [2020-07-08 12:02:14,298 INFO L280 TraceCheckUtils]: 0: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,299 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,300 INFO L263 TraceCheckUtils]: 2: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,301 INFO L280 TraceCheckUtils]: 3: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,301 INFO L280 TraceCheckUtils]: 4: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,303 INFO L263 TraceCheckUtils]: 5: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,303 INFO L280 TraceCheckUtils]: 6: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,304 INFO L280 TraceCheckUtils]: 7: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,305 INFO L263 TraceCheckUtils]: 8: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,306 INFO L280 TraceCheckUtils]: 9: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,307 INFO L280 TraceCheckUtils]: 10: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,307 INFO L280 TraceCheckUtils]: 11: Hoare triple {4742#(= 0 |applyHanoi_#in~n|)} assume true; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,309 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {4742#(= 0 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4736#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} is VALID [2020-07-08 12:02:14,310 INFO L263 TraceCheckUtils]: 13: Hoare triple {4736#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,310 INFO L280 TraceCheckUtils]: 14: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,311 INFO L280 TraceCheckUtils]: 15: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,311 INFO L280 TraceCheckUtils]: 16: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,312 INFO L275 TraceCheckUtils]: 17: Hoare quadruple {4456#true} {4736#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} #40#return; {4741#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:14,313 INFO L280 TraceCheckUtils]: 18: Hoare triple {4741#(<= |applyHanoi_#in~n| 1)} assume true; {4741#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:14,316 INFO L275 TraceCheckUtils]: 19: Hoare quadruple {4741#(<= |applyHanoi_#in~n| 1)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4716#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} is VALID [2020-07-08 12:02:14,318 INFO L263 TraceCheckUtils]: 20: Hoare triple {4716#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,318 INFO L280 TraceCheckUtils]: 21: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,318 INFO L280 TraceCheckUtils]: 22: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,320 INFO L263 TraceCheckUtils]: 23: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,321 INFO L280 TraceCheckUtils]: 24: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,321 INFO L280 TraceCheckUtils]: 25: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,321 INFO L280 TraceCheckUtils]: 26: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,322 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,323 INFO L263 TraceCheckUtils]: 28: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,324 INFO L280 TraceCheckUtils]: 29: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,324 INFO L280 TraceCheckUtils]: 30: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,324 INFO L280 TraceCheckUtils]: 31: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,325 INFO L275 TraceCheckUtils]: 32: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,325 INFO L280 TraceCheckUtils]: 33: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,327 INFO L275 TraceCheckUtils]: 34: Hoare quadruple {4456#true} {4716#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} #40#return; {4731#(<= |applyHanoi_#in~n| 2)} is VALID [2020-07-08 12:02:14,328 INFO L280 TraceCheckUtils]: 35: Hoare triple {4731#(<= |applyHanoi_#in~n| 2)} assume true; {4731#(<= |applyHanoi_#in~n| 2)} is VALID [2020-07-08 12:02:14,330 INFO L275 TraceCheckUtils]: 36: Hoare quadruple {4731#(<= |applyHanoi_#in~n| 2)} {4456#true} #38#return; {4626#(<= applyHanoi_~n 3)} is VALID [2020-07-08 12:02:14,331 INFO L263 TraceCheckUtils]: 37: Hoare triple {4626#(<= applyHanoi_~n 3)} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,332 INFO L280 TraceCheckUtils]: 38: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,332 INFO L280 TraceCheckUtils]: 39: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,334 INFO L263 TraceCheckUtils]: 40: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,334 INFO L280 TraceCheckUtils]: 41: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,335 INFO L280 TraceCheckUtils]: 42: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,336 INFO L263 TraceCheckUtils]: 43: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,337 INFO L280 TraceCheckUtils]: 44: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,338 INFO L280 TraceCheckUtils]: 45: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,340 INFO L263 TraceCheckUtils]: 46: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,341 INFO L280 TraceCheckUtils]: 47: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,341 INFO L280 TraceCheckUtils]: 48: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,342 INFO L280 TraceCheckUtils]: 49: Hoare triple {4742#(= 0 |applyHanoi_#in~n|)} assume true; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,344 INFO L275 TraceCheckUtils]: 50: Hoare quadruple {4742#(= 0 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} is VALID [2020-07-08 12:02:14,346 INFO L263 TraceCheckUtils]: 51: Hoare triple {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,346 INFO L280 TraceCheckUtils]: 52: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,347 INFO L280 TraceCheckUtils]: 53: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,347 INFO L280 TraceCheckUtils]: 54: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,349 INFO L275 TraceCheckUtils]: 55: Hoare quadruple {4456#true} {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} #40#return; {4860#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,350 INFO L280 TraceCheckUtils]: 56: Hoare triple {4860#(<= 1 |applyHanoi_#in~n|)} assume true; {4860#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,352 INFO L275 TraceCheckUtils]: 57: Hoare quadruple {4860#(<= 1 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4835#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} is VALID [2020-07-08 12:02:14,353 INFO L263 TraceCheckUtils]: 58: Hoare triple {4835#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,354 INFO L280 TraceCheckUtils]: 59: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,354 INFO L280 TraceCheckUtils]: 60: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,355 INFO L263 TraceCheckUtils]: 61: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,355 INFO L280 TraceCheckUtils]: 62: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,356 INFO L280 TraceCheckUtils]: 63: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,356 INFO L280 TraceCheckUtils]: 64: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,356 INFO L275 TraceCheckUtils]: 65: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,357 INFO L263 TraceCheckUtils]: 66: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,358 INFO L280 TraceCheckUtils]: 67: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,358 INFO L280 TraceCheckUtils]: 68: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,358 INFO L280 TraceCheckUtils]: 69: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,358 INFO L275 TraceCheckUtils]: 70: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,358 INFO L280 TraceCheckUtils]: 71: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,360 INFO L275 TraceCheckUtils]: 72: Hoare quadruple {4456#true} {4835#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} #40#return; {4850#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,361 INFO L280 TraceCheckUtils]: 73: Hoare triple {4850#(<= 2 |applyHanoi_#in~n|)} assume true; {4850#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,363 INFO L275 TraceCheckUtils]: 74: Hoare quadruple {4850#(<= 2 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4785#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 3 applyHanoi_~n))} is VALID [2020-07-08 12:02:14,365 INFO L263 TraceCheckUtils]: 75: Hoare triple {4785#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 3 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,366 INFO L280 TraceCheckUtils]: 76: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,366 INFO L280 TraceCheckUtils]: 77: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,368 INFO L263 TraceCheckUtils]: 78: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,368 INFO L280 TraceCheckUtils]: 79: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,368 INFO L280 TraceCheckUtils]: 80: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,370 INFO L263 TraceCheckUtils]: 81: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,370 INFO L280 TraceCheckUtils]: 82: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,371 INFO L280 TraceCheckUtils]: 83: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,371 INFO L280 TraceCheckUtils]: 84: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,371 INFO L275 TraceCheckUtils]: 85: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,373 INFO L263 TraceCheckUtils]: 86: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,373 INFO L280 TraceCheckUtils]: 87: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,373 INFO L280 TraceCheckUtils]: 88: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,374 INFO L280 TraceCheckUtils]: 89: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,374 INFO L275 TraceCheckUtils]: 90: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,374 INFO L280 TraceCheckUtils]: 91: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,374 INFO L275 TraceCheckUtils]: 92: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,376 INFO L263 TraceCheckUtils]: 93: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,376 INFO L280 TraceCheckUtils]: 94: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,376 INFO L280 TraceCheckUtils]: 95: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,378 INFO L263 TraceCheckUtils]: 96: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,378 INFO L280 TraceCheckUtils]: 97: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,378 INFO L280 TraceCheckUtils]: 98: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,379 INFO L280 TraceCheckUtils]: 99: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,379 INFO L275 TraceCheckUtils]: 100: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,380 INFO L263 TraceCheckUtils]: 101: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,381 INFO L280 TraceCheckUtils]: 102: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,381 INFO L280 TraceCheckUtils]: 103: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,381 INFO L280 TraceCheckUtils]: 104: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,381 INFO L275 TraceCheckUtils]: 105: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,382 INFO L280 TraceCheckUtils]: 106: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,382 INFO L275 TraceCheckUtils]: 107: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,382 INFO L280 TraceCheckUtils]: 108: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,384 INFO L275 TraceCheckUtils]: 109: Hoare quadruple {4456#true} {4785#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 3 applyHanoi_~n))} #40#return; {4820#(<= 3 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,384 INFO L280 TraceCheckUtils]: 110: Hoare triple {4820#(<= 3 |applyHanoi_#in~n|)} assume true; {4820#(<= 3 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,385 INFO L275 TraceCheckUtils]: 111: Hoare quadruple {4820#(<= 3 |applyHanoi_#in~n|)} {4626#(<= applyHanoi_~n 3)} #40#return; {4457#false} is VALID [2020-07-08 12:02:14,386 INFO L280 TraceCheckUtils]: 112: Hoare triple {4457#false} assume true; {4457#false} is VALID [2020-07-08 12:02:14,386 INFO L275 TraceCheckUtils]: 113: Hoare quadruple {4457#false} {4456#true} #48#return; {4457#false} is VALID [2020-07-08 12:02:14,398 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,403 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,407 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,410 INFO L280 TraceCheckUtils]: 0: Hoare triple {4456#true} ~n := #in~n; {4456#true} is VALID [2020-07-08 12:02:14,410 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume 1 == ~n;#res := 1; {4456#true} is VALID [2020-07-08 12:02:14,410 INFO L280 TraceCheckUtils]: 2: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,410 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4456#true} {4456#true} #42#return; {4456#true} is VALID [2020-07-08 12:02:14,411 INFO L280 TraceCheckUtils]: 0: Hoare triple {4456#true} ~n := #in~n; {4456#true} is VALID [2020-07-08 12:02:14,411 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume !(1 == ~n); {4456#true} is VALID [2020-07-08 12:02:14,411 INFO L263 TraceCheckUtils]: 2: Hoare triple {4456#true} call #t~ret0 := hanoi(~n - 1); {4456#true} is VALID [2020-07-08 12:02:14,411 INFO L280 TraceCheckUtils]: 3: Hoare triple {4456#true} ~n := #in~n; {4456#true} is VALID [2020-07-08 12:02:14,412 INFO L280 TraceCheckUtils]: 4: Hoare triple {4456#true} assume 1 == ~n;#res := 1; {4456#true} is VALID [2020-07-08 12:02:14,412 INFO L280 TraceCheckUtils]: 5: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,412 INFO L275 TraceCheckUtils]: 6: Hoare quadruple {4456#true} {4456#true} #42#return; {4456#true} is VALID [2020-07-08 12:02:14,412 INFO L280 TraceCheckUtils]: 7: Hoare triple {4456#true} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {4456#true} is VALID [2020-07-08 12:02:14,412 INFO L280 TraceCheckUtils]: 8: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,413 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {4456#true} {4456#true} #42#return; {4456#true} is VALID [2020-07-08 12:02:14,413 INFO L280 TraceCheckUtils]: 0: Hoare triple {4456#true} ~n := #in~n; {4456#true} is VALID [2020-07-08 12:02:14,413 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} assume !(1 == ~n); {4456#true} is VALID [2020-07-08 12:02:14,413 INFO L263 TraceCheckUtils]: 2: Hoare triple {4456#true} call #t~ret0 := hanoi(~n - 1); {4456#true} is VALID [2020-07-08 12:02:14,413 INFO L280 TraceCheckUtils]: 3: Hoare triple {4456#true} ~n := #in~n; {4456#true} is VALID [2020-07-08 12:02:14,414 INFO L280 TraceCheckUtils]: 4: Hoare triple {4456#true} assume !(1 == ~n); {4456#true} is VALID [2020-07-08 12:02:14,414 INFO L263 TraceCheckUtils]: 5: Hoare triple {4456#true} call #t~ret0 := hanoi(~n - 1); {4456#true} is VALID [2020-07-08 12:02:14,414 INFO L280 TraceCheckUtils]: 6: Hoare triple {4456#true} ~n := #in~n; {4456#true} is VALID [2020-07-08 12:02:14,414 INFO L280 TraceCheckUtils]: 7: Hoare triple {4456#true} assume 1 == ~n;#res := 1; {4456#true} is VALID [2020-07-08 12:02:14,414 INFO L280 TraceCheckUtils]: 8: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,415 INFO L275 TraceCheckUtils]: 9: Hoare quadruple {4456#true} {4456#true} #42#return; {4456#true} is VALID [2020-07-08 12:02:14,415 INFO L280 TraceCheckUtils]: 10: Hoare triple {4456#true} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {4456#true} is VALID [2020-07-08 12:02:14,415 INFO L280 TraceCheckUtils]: 11: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,415 INFO L275 TraceCheckUtils]: 12: Hoare quadruple {4456#true} {4456#true} #42#return; {4456#true} is VALID [2020-07-08 12:02:14,415 INFO L280 TraceCheckUtils]: 13: Hoare triple {4456#true} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {4456#true} is VALID [2020-07-08 12:02:14,416 INFO L280 TraceCheckUtils]: 14: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,416 INFO L275 TraceCheckUtils]: 15: Hoare quadruple {4456#true} {4457#false} #50#return; {4457#false} is VALID [2020-07-08 12:02:14,417 INFO L263 TraceCheckUtils]: 0: Hoare triple {4456#true} call ULTIMATE.init(); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,417 INFO L280 TraceCheckUtils]: 1: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~counter~0 := 0; {4456#true} is VALID [2020-07-08 12:02:14,417 INFO L280 TraceCheckUtils]: 2: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,418 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4456#true} {4456#true} #44#return; {4456#true} is VALID [2020-07-08 12:02:14,418 INFO L263 TraceCheckUtils]: 4: Hoare triple {4456#true} call #t~ret4 := main(); {4456#true} is VALID [2020-07-08 12:02:14,418 INFO L280 TraceCheckUtils]: 5: Hoare triple {4456#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {4456#true} is VALID [2020-07-08 12:02:14,418 INFO L280 TraceCheckUtils]: 6: Hoare triple {4456#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {4456#true} is VALID [2020-07-08 12:02:14,419 INFO L263 TraceCheckUtils]: 7: Hoare triple {4456#true} call applyHanoi(~n~0, 1, 3, 2); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,419 INFO L280 TraceCheckUtils]: 8: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,420 INFO L280 TraceCheckUtils]: 9: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,421 INFO L263 TraceCheckUtils]: 10: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,422 INFO L280 TraceCheckUtils]: 11: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,422 INFO L280 TraceCheckUtils]: 12: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,424 INFO L263 TraceCheckUtils]: 13: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,424 INFO L280 TraceCheckUtils]: 14: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,425 INFO L280 TraceCheckUtils]: 15: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,426 INFO L263 TraceCheckUtils]: 16: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,427 INFO L280 TraceCheckUtils]: 17: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,428 INFO L280 TraceCheckUtils]: 18: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,429 INFO L280 TraceCheckUtils]: 19: Hoare triple {4742#(= 0 |applyHanoi_#in~n|)} assume true; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,431 INFO L275 TraceCheckUtils]: 20: Hoare quadruple {4742#(= 0 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4736#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} is VALID [2020-07-08 12:02:14,433 INFO L263 TraceCheckUtils]: 21: Hoare triple {4736#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,433 INFO L280 TraceCheckUtils]: 22: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,433 INFO L280 TraceCheckUtils]: 23: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,434 INFO L280 TraceCheckUtils]: 24: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,435 INFO L275 TraceCheckUtils]: 25: Hoare quadruple {4456#true} {4736#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 1))} #40#return; {4741#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:14,436 INFO L280 TraceCheckUtils]: 26: Hoare triple {4741#(<= |applyHanoi_#in~n| 1)} assume true; {4741#(<= |applyHanoi_#in~n| 1)} is VALID [2020-07-08 12:02:14,438 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {4741#(<= |applyHanoi_#in~n| 1)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4716#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} is VALID [2020-07-08 12:02:14,439 INFO L263 TraceCheckUtils]: 28: Hoare triple {4716#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,440 INFO L280 TraceCheckUtils]: 29: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,440 INFO L280 TraceCheckUtils]: 30: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,441 INFO L263 TraceCheckUtils]: 31: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,442 INFO L280 TraceCheckUtils]: 32: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,442 INFO L280 TraceCheckUtils]: 33: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,442 INFO L280 TraceCheckUtils]: 34: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,442 INFO L275 TraceCheckUtils]: 35: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,444 INFO L263 TraceCheckUtils]: 36: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,444 INFO L280 TraceCheckUtils]: 37: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,445 INFO L280 TraceCheckUtils]: 38: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,445 INFO L280 TraceCheckUtils]: 39: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,445 INFO L275 TraceCheckUtils]: 40: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,445 INFO L280 TraceCheckUtils]: 41: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,447 INFO L275 TraceCheckUtils]: 42: Hoare quadruple {4456#true} {4716#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= applyHanoi_~n 2))} #40#return; {4731#(<= |applyHanoi_#in~n| 2)} is VALID [2020-07-08 12:02:14,447 INFO L280 TraceCheckUtils]: 43: Hoare triple {4731#(<= |applyHanoi_#in~n| 2)} assume true; {4731#(<= |applyHanoi_#in~n| 2)} is VALID [2020-07-08 12:02:14,449 INFO L275 TraceCheckUtils]: 44: Hoare quadruple {4731#(<= |applyHanoi_#in~n| 2)} {4456#true} #38#return; {4626#(<= applyHanoi_~n 3)} is VALID [2020-07-08 12:02:14,451 INFO L263 TraceCheckUtils]: 45: Hoare triple {4626#(<= applyHanoi_~n 3)} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,451 INFO L280 TraceCheckUtils]: 46: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,452 INFO L280 TraceCheckUtils]: 47: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,453 INFO L263 TraceCheckUtils]: 48: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,454 INFO L280 TraceCheckUtils]: 49: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,454 INFO L280 TraceCheckUtils]: 50: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,456 INFO L263 TraceCheckUtils]: 51: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,457 INFO L280 TraceCheckUtils]: 52: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,457 INFO L280 TraceCheckUtils]: 53: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,459 INFO L263 TraceCheckUtils]: 54: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,460 INFO L280 TraceCheckUtils]: 55: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,460 INFO L280 TraceCheckUtils]: 56: Hoare triple {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,461 INFO L280 TraceCheckUtils]: 57: Hoare triple {4742#(= 0 |applyHanoi_#in~n|)} assume true; {4742#(= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,463 INFO L275 TraceCheckUtils]: 58: Hoare quadruple {4742#(= 0 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} is VALID [2020-07-08 12:02:14,464 INFO L263 TraceCheckUtils]: 59: Hoare triple {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,464 INFO L280 TraceCheckUtils]: 60: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,465 INFO L280 TraceCheckUtils]: 61: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,465 INFO L280 TraceCheckUtils]: 62: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,466 INFO L275 TraceCheckUtils]: 63: Hoare quadruple {4456#true} {4855#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 1 applyHanoi_~n))} #40#return; {4860#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,467 INFO L280 TraceCheckUtils]: 64: Hoare triple {4860#(<= 1 |applyHanoi_#in~n|)} assume true; {4860#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,469 INFO L275 TraceCheckUtils]: 65: Hoare quadruple {4860#(<= 1 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4835#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} is VALID [2020-07-08 12:02:14,470 INFO L263 TraceCheckUtils]: 66: Hoare triple {4835#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,470 INFO L280 TraceCheckUtils]: 67: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,471 INFO L280 TraceCheckUtils]: 68: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,472 INFO L263 TraceCheckUtils]: 69: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,472 INFO L280 TraceCheckUtils]: 70: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,472 INFO L280 TraceCheckUtils]: 71: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,473 INFO L280 TraceCheckUtils]: 72: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,473 INFO L275 TraceCheckUtils]: 73: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,474 INFO L263 TraceCheckUtils]: 74: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,475 INFO L280 TraceCheckUtils]: 75: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,475 INFO L280 TraceCheckUtils]: 76: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,475 INFO L280 TraceCheckUtils]: 77: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,475 INFO L275 TraceCheckUtils]: 78: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,476 INFO L280 TraceCheckUtils]: 79: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,477 INFO L275 TraceCheckUtils]: 80: Hoare quadruple {4456#true} {4835#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 2 applyHanoi_~n))} #40#return; {4850#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,478 INFO L280 TraceCheckUtils]: 81: Hoare triple {4850#(<= 2 |applyHanoi_#in~n|)} assume true; {4850#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,480 INFO L275 TraceCheckUtils]: 82: Hoare quadruple {4850#(<= 2 |applyHanoi_#in~n|)} {4701#(= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4785#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 3 applyHanoi_~n))} is VALID [2020-07-08 12:02:14,482 INFO L263 TraceCheckUtils]: 83: Hoare triple {4785#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 3 applyHanoi_~n))} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,482 INFO L280 TraceCheckUtils]: 84: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,482 INFO L280 TraceCheckUtils]: 85: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,483 INFO L263 TraceCheckUtils]: 86: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,484 INFO L280 TraceCheckUtils]: 87: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,484 INFO L280 TraceCheckUtils]: 88: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,485 INFO L263 TraceCheckUtils]: 89: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,485 INFO L280 TraceCheckUtils]: 90: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,486 INFO L280 TraceCheckUtils]: 91: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,486 INFO L280 TraceCheckUtils]: 92: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,486 INFO L275 TraceCheckUtils]: 93: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,487 INFO L263 TraceCheckUtils]: 94: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,487 INFO L280 TraceCheckUtils]: 95: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,488 INFO L280 TraceCheckUtils]: 96: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,488 INFO L280 TraceCheckUtils]: 97: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,488 INFO L275 TraceCheckUtils]: 98: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,488 INFO L280 TraceCheckUtils]: 99: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,488 INFO L275 TraceCheckUtils]: 100: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,490 INFO L263 TraceCheckUtils]: 101: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,490 INFO L280 TraceCheckUtils]: 102: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,490 INFO L280 TraceCheckUtils]: 103: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:14,492 INFO L263 TraceCheckUtils]: 104: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,492 INFO L280 TraceCheckUtils]: 105: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,492 INFO L280 TraceCheckUtils]: 106: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,492 INFO L280 TraceCheckUtils]: 107: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,492 INFO L275 TraceCheckUtils]: 108: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:14,494 INFO L263 TraceCheckUtils]: 109: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4591#(= ~counter~0 |old(~counter~0)|)} is VALID [2020-07-08 12:02:14,494 INFO L280 TraceCheckUtils]: 110: Hoare triple {4591#(= ~counter~0 |old(~counter~0)|)} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:14,494 INFO L280 TraceCheckUtils]: 111: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:14,494 INFO L280 TraceCheckUtils]: 112: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,495 INFO L275 TraceCheckUtils]: 113: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,495 INFO L280 TraceCheckUtils]: 114: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,495 INFO L275 TraceCheckUtils]: 115: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:14,495 INFO L280 TraceCheckUtils]: 116: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,497 INFO L275 TraceCheckUtils]: 117: Hoare quadruple {4456#true} {4785#(and (= applyHanoi_~n |applyHanoi_#in~n|) (<= 3 applyHanoi_~n))} #40#return; {4820#(<= 3 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,497 INFO L280 TraceCheckUtils]: 118: Hoare triple {4820#(<= 3 |applyHanoi_#in~n|)} assume true; {4820#(<= 3 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:14,499 INFO L275 TraceCheckUtils]: 119: Hoare quadruple {4820#(<= 3 |applyHanoi_#in~n|)} {4626#(<= applyHanoi_~n 3)} #40#return; {4457#false} is VALID [2020-07-08 12:02:14,499 INFO L280 TraceCheckUtils]: 120: Hoare triple {4457#false} assume true; {4457#false} is VALID [2020-07-08 12:02:14,500 INFO L275 TraceCheckUtils]: 121: Hoare quadruple {4457#false} {4456#true} #48#return; {4457#false} is VALID [2020-07-08 12:02:14,500 INFO L263 TraceCheckUtils]: 122: Hoare triple {4457#false} call #t~ret3 := hanoi(~n~0); {4456#true} is VALID [2020-07-08 12:02:14,500 INFO L280 TraceCheckUtils]: 123: Hoare triple {4456#true} ~n := #in~n; {4456#true} is VALID [2020-07-08 12:02:14,500 INFO L280 TraceCheckUtils]: 124: Hoare triple {4456#true} assume !(1 == ~n); {4456#true} is VALID [2020-07-08 12:02:14,501 INFO L263 TraceCheckUtils]: 125: Hoare triple {4456#true} call #t~ret0 := hanoi(~n - 1); {4456#true} is VALID [2020-07-08 12:02:14,501 INFO L280 TraceCheckUtils]: 126: Hoare triple {4456#true} ~n := #in~n; {4456#true} is VALID [2020-07-08 12:02:14,501 INFO L280 TraceCheckUtils]: 127: Hoare triple {4456#true} assume !(1 == ~n); {4456#true} is VALID [2020-07-08 12:02:14,501 INFO L263 TraceCheckUtils]: 128: Hoare triple {4456#true} call #t~ret0 := hanoi(~n - 1); {4456#true} is VALID [2020-07-08 12:02:14,501 INFO L280 TraceCheckUtils]: 129: Hoare triple {4456#true} ~n := #in~n; {4456#true} is VALID [2020-07-08 12:02:14,502 INFO L280 TraceCheckUtils]: 130: Hoare triple {4456#true} assume 1 == ~n;#res := 1; {4456#true} is VALID [2020-07-08 12:02:14,502 INFO L280 TraceCheckUtils]: 131: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,502 INFO L275 TraceCheckUtils]: 132: Hoare quadruple {4456#true} {4456#true} #42#return; {4456#true} is VALID [2020-07-08 12:02:14,502 INFO L280 TraceCheckUtils]: 133: Hoare triple {4456#true} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {4456#true} is VALID [2020-07-08 12:02:14,502 INFO L280 TraceCheckUtils]: 134: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,503 INFO L275 TraceCheckUtils]: 135: Hoare quadruple {4456#true} {4456#true} #42#return; {4456#true} is VALID [2020-07-08 12:02:14,503 INFO L280 TraceCheckUtils]: 136: Hoare triple {4456#true} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {4456#true} is VALID [2020-07-08 12:02:14,503 INFO L280 TraceCheckUtils]: 137: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:14,503 INFO L275 TraceCheckUtils]: 138: Hoare quadruple {4456#true} {4457#false} #50#return; {4457#false} is VALID [2020-07-08 12:02:14,504 INFO L280 TraceCheckUtils]: 139: Hoare triple {4457#false} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {4457#false} is VALID [2020-07-08 12:02:14,504 INFO L280 TraceCheckUtils]: 140: Hoare triple {4457#false} assume !(~result~0 == ~counter~0); {4457#false} is VALID [2020-07-08 12:02:14,504 INFO L280 TraceCheckUtils]: 141: Hoare triple {4457#false} assume !false; {4457#false} is VALID [2020-07-08 12:02:14,522 INFO L134 CoverageAnalysis]: Checked inductivity of 1136 backedges. 167 proven. 314 refuted. 0 times theorem prover too weak. 655 trivial. 0 not checked. [2020-07-08 12:02:14,522 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2078537979] [2020-07-08 12:02:14,522 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [296926289] [2020-07-08 12:02:14,523 INFO L92 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-08 12:02:14,624 INFO L249 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 12 check-sat command(s) [2020-07-08 12:02:14,624 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2020-07-08 12:02:14,626 INFO L264 TraceCheckSpWp]: Trace formula consists of 416 conjuncts, 18 conjunts are in the unsatisfiable core [2020-07-08 12:02:14,657 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-08 12:02:14,662 INFO L287 TraceCheckSpWp]: Computing forward predicates... [2020-07-08 12:02:15,020 INFO L263 TraceCheckUtils]: 0: Hoare triple {4456#true} call ULTIMATE.init(); {4456#true} is VALID [2020-07-08 12:02:15,020 INFO L280 TraceCheckUtils]: 1: Hoare triple {4456#true} ~counter~0 := 0; {4456#true} is VALID [2020-07-08 12:02:15,020 INFO L280 TraceCheckUtils]: 2: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,021 INFO L275 TraceCheckUtils]: 3: Hoare quadruple {4456#true} {4456#true} #44#return; {4456#true} is VALID [2020-07-08 12:02:15,021 INFO L263 TraceCheckUtils]: 4: Hoare triple {4456#true} call #t~ret4 := main(); {4456#true} is VALID [2020-07-08 12:02:15,021 INFO L280 TraceCheckUtils]: 5: Hoare triple {4456#true} assume -2147483648 <= #t~nondet2 && #t~nondet2 <= 2147483647;~n~0 := #t~nondet2;havoc #t~nondet2; {4456#true} is VALID [2020-07-08 12:02:15,021 INFO L280 TraceCheckUtils]: 6: Hoare triple {4456#true} assume !(~n~0 < 1 || ~n~0 > 31);~counter~0 := 0; {4456#true} is VALID [2020-07-08 12:02:15,022 INFO L263 TraceCheckUtils]: 7: Hoare triple {4456#true} call applyHanoi(~n~0, 1, 3, 2); {4456#true} is VALID [2020-07-08 12:02:15,022 INFO L280 TraceCheckUtils]: 8: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,023 INFO L280 TraceCheckUtils]: 9: Hoare triple {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,023 INFO L263 TraceCheckUtils]: 10: Hoare triple {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4456#true} is VALID [2020-07-08 12:02:15,023 INFO L280 TraceCheckUtils]: 11: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,023 INFO L280 TraceCheckUtils]: 12: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:15,023 INFO L263 TraceCheckUtils]: 13: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4456#true} is VALID [2020-07-08 12:02:15,023 INFO L280 TraceCheckUtils]: 14: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,024 INFO L280 TraceCheckUtils]: 15: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:15,024 INFO L263 TraceCheckUtils]: 16: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4456#true} is VALID [2020-07-08 12:02:15,024 INFO L280 TraceCheckUtils]: 17: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,024 INFO L280 TraceCheckUtils]: 18: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:15,024 INFO L280 TraceCheckUtils]: 19: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,024 INFO L275 TraceCheckUtils]: 20: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:15,024 INFO L263 TraceCheckUtils]: 21: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4456#true} is VALID [2020-07-08 12:02:15,024 INFO L280 TraceCheckUtils]: 22: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,025 INFO L280 TraceCheckUtils]: 23: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:15,025 INFO L280 TraceCheckUtils]: 24: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,025 INFO L275 TraceCheckUtils]: 25: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:15,025 INFO L280 TraceCheckUtils]: 26: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,025 INFO L275 TraceCheckUtils]: 27: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:15,025 INFO L263 TraceCheckUtils]: 28: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4456#true} is VALID [2020-07-08 12:02:15,025 INFO L280 TraceCheckUtils]: 29: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,025 INFO L280 TraceCheckUtils]: 30: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:15,026 INFO L263 TraceCheckUtils]: 31: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4456#true} is VALID [2020-07-08 12:02:15,026 INFO L280 TraceCheckUtils]: 32: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,026 INFO L280 TraceCheckUtils]: 33: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:15,026 INFO L280 TraceCheckUtils]: 34: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,026 INFO L275 TraceCheckUtils]: 35: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:15,026 INFO L263 TraceCheckUtils]: 36: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4456#true} is VALID [2020-07-08 12:02:15,026 INFO L280 TraceCheckUtils]: 37: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,026 INFO L280 TraceCheckUtils]: 38: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:15,027 INFO L280 TraceCheckUtils]: 39: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,027 INFO L275 TraceCheckUtils]: 40: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:15,027 INFO L280 TraceCheckUtils]: 41: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,027 INFO L275 TraceCheckUtils]: 42: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:15,027 INFO L280 TraceCheckUtils]: 43: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,028 INFO L275 TraceCheckUtils]: 44: Hoare quadruple {4456#true} {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,028 INFO L263 TraceCheckUtils]: 45: Hoare triple {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~via, ~to, ~from); {4456#true} is VALID [2020-07-08 12:02:15,029 INFO L280 TraceCheckUtils]: 46: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,029 INFO L280 TraceCheckUtils]: 47: Hoare triple {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,029 INFO L263 TraceCheckUtils]: 48: Hoare triple {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4456#true} is VALID [2020-07-08 12:02:15,030 INFO L280 TraceCheckUtils]: 49: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,030 INFO L280 TraceCheckUtils]: 50: Hoare triple {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,030 INFO L263 TraceCheckUtils]: 51: Hoare triple {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4456#true} is VALID [2020-07-08 12:02:15,031 INFO L280 TraceCheckUtils]: 52: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,031 INFO L280 TraceCheckUtils]: 53: Hoare triple {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,031 INFO L263 TraceCheckUtils]: 54: Hoare triple {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~from, ~via, ~to); {4456#true} is VALID [2020-07-08 12:02:15,032 INFO L280 TraceCheckUtils]: 55: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,032 INFO L280 TraceCheckUtils]: 56: Hoare triple {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} assume 0 == ~n; {5099#(<= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,033 INFO L280 TraceCheckUtils]: 57: Hoare triple {5099#(<= 0 |applyHanoi_#in~n|)} assume true; {5099#(<= 0 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,034 INFO L275 TraceCheckUtils]: 58: Hoare quadruple {5099#(<= 0 |applyHanoi_#in~n|)} {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4860#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,035 INFO L263 TraceCheckUtils]: 59: Hoare triple {4860#(<= 1 |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~via, ~to, ~from); {4456#true} is VALID [2020-07-08 12:02:15,035 INFO L280 TraceCheckUtils]: 60: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,035 INFO L280 TraceCheckUtils]: 61: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:15,035 INFO L280 TraceCheckUtils]: 62: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,037 INFO L275 TraceCheckUtils]: 63: Hoare quadruple {4456#true} {4860#(<= 1 |applyHanoi_#in~n|)} #40#return; {4860#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,037 INFO L280 TraceCheckUtils]: 64: Hoare triple {4860#(<= 1 |applyHanoi_#in~n|)} assume true; {4860#(<= 1 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,039 INFO L275 TraceCheckUtils]: 65: Hoare quadruple {4860#(<= 1 |applyHanoi_#in~n|)} {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4850#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,039 INFO L263 TraceCheckUtils]: 66: Hoare triple {4850#(<= 2 |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~via, ~to, ~from); {4456#true} is VALID [2020-07-08 12:02:15,039 INFO L280 TraceCheckUtils]: 67: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,039 INFO L280 TraceCheckUtils]: 68: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:15,039 INFO L263 TraceCheckUtils]: 69: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4456#true} is VALID [2020-07-08 12:02:15,039 INFO L280 TraceCheckUtils]: 70: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,040 INFO L280 TraceCheckUtils]: 71: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:15,040 INFO L280 TraceCheckUtils]: 72: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,040 INFO L275 TraceCheckUtils]: 73: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:15,040 INFO L263 TraceCheckUtils]: 74: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4456#true} is VALID [2020-07-08 12:02:15,040 INFO L280 TraceCheckUtils]: 75: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,040 INFO L280 TraceCheckUtils]: 76: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:15,041 INFO L280 TraceCheckUtils]: 77: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,041 INFO L275 TraceCheckUtils]: 78: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:15,041 INFO L280 TraceCheckUtils]: 79: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,046 INFO L275 TraceCheckUtils]: 80: Hoare quadruple {4456#true} {4850#(<= 2 |applyHanoi_#in~n|)} #40#return; {4850#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,047 INFO L280 TraceCheckUtils]: 81: Hoare triple {4850#(<= 2 |applyHanoi_#in~n|)} assume true; {4850#(<= 2 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,049 INFO L275 TraceCheckUtils]: 82: Hoare quadruple {4850#(<= 2 |applyHanoi_#in~n|)} {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} #38#return; {4820#(<= 3 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,049 INFO L263 TraceCheckUtils]: 83: Hoare triple {4820#(<= 3 |applyHanoi_#in~n|)} call applyHanoi(~n - 1, ~via, ~to, ~from); {4456#true} is VALID [2020-07-08 12:02:15,049 INFO L280 TraceCheckUtils]: 84: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,050 INFO L280 TraceCheckUtils]: 85: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:15,050 INFO L263 TraceCheckUtils]: 86: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4456#true} is VALID [2020-07-08 12:02:15,050 INFO L280 TraceCheckUtils]: 87: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,050 INFO L280 TraceCheckUtils]: 88: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:15,051 INFO L263 TraceCheckUtils]: 89: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4456#true} is VALID [2020-07-08 12:02:15,051 INFO L280 TraceCheckUtils]: 90: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,051 INFO L280 TraceCheckUtils]: 91: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:15,051 INFO L280 TraceCheckUtils]: 92: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,051 INFO L275 TraceCheckUtils]: 93: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:15,052 INFO L263 TraceCheckUtils]: 94: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4456#true} is VALID [2020-07-08 12:02:15,052 INFO L280 TraceCheckUtils]: 95: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,052 INFO L280 TraceCheckUtils]: 96: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:15,052 INFO L280 TraceCheckUtils]: 97: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,053 INFO L275 TraceCheckUtils]: 98: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:15,053 INFO L280 TraceCheckUtils]: 99: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,053 INFO L275 TraceCheckUtils]: 100: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:15,053 INFO L263 TraceCheckUtils]: 101: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4456#true} is VALID [2020-07-08 12:02:15,053 INFO L280 TraceCheckUtils]: 102: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,054 INFO L280 TraceCheckUtils]: 103: Hoare triple {4456#true} assume !(0 == ~n);#t~post1 := ~counter~0;~counter~0 := 1 + #t~post1;havoc #t~post1; {4456#true} is VALID [2020-07-08 12:02:15,054 INFO L263 TraceCheckUtils]: 104: Hoare triple {4456#true} call applyHanoi(~n - 1, ~from, ~via, ~to); {4456#true} is VALID [2020-07-08 12:02:15,055 INFO L280 TraceCheckUtils]: 105: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,056 INFO L280 TraceCheckUtils]: 106: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:15,056 INFO L280 TraceCheckUtils]: 107: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,056 INFO L275 TraceCheckUtils]: 108: Hoare quadruple {4456#true} {4456#true} #38#return; {4456#true} is VALID [2020-07-08 12:02:15,056 INFO L263 TraceCheckUtils]: 109: Hoare triple {4456#true} call applyHanoi(~n - 1, ~via, ~to, ~from); {4456#true} is VALID [2020-07-08 12:02:15,057 INFO L280 TraceCheckUtils]: 110: Hoare triple {4456#true} ~n := #in~n;~from := #in~from;~to := #in~to;~via := #in~via; {4456#true} is VALID [2020-07-08 12:02:15,057 INFO L280 TraceCheckUtils]: 111: Hoare triple {4456#true} assume 0 == ~n; {4456#true} is VALID [2020-07-08 12:02:15,057 INFO L280 TraceCheckUtils]: 112: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,057 INFO L275 TraceCheckUtils]: 113: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:15,057 INFO L280 TraceCheckUtils]: 114: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,058 INFO L275 TraceCheckUtils]: 115: Hoare quadruple {4456#true} {4456#true} #40#return; {4456#true} is VALID [2020-07-08 12:02:15,058 INFO L280 TraceCheckUtils]: 116: Hoare triple {4456#true} assume true; {4456#true} is VALID [2020-07-08 12:02:15,060 INFO L275 TraceCheckUtils]: 117: Hoare quadruple {4456#true} {4820#(<= 3 |applyHanoi_#in~n|)} #40#return; {4820#(<= 3 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,060 INFO L280 TraceCheckUtils]: 118: Hoare triple {4820#(<= 3 |applyHanoi_#in~n|)} assume true; {4820#(<= 3 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,062 INFO L275 TraceCheckUtils]: 119: Hoare quadruple {4820#(<= 3 |applyHanoi_#in~n|)} {4954#(<= applyHanoi_~n |applyHanoi_#in~n|)} #40#return; {5289#(<= 4 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,063 INFO L280 TraceCheckUtils]: 120: Hoare triple {5289#(<= 4 |applyHanoi_#in~n|)} assume true; {5289#(<= 4 |applyHanoi_#in~n|)} is VALID [2020-07-08 12:02:15,064 INFO L275 TraceCheckUtils]: 121: Hoare quadruple {5289#(<= 4 |applyHanoi_#in~n|)} {4456#true} #48#return; {5296#(<= 4 main_~n~0)} is VALID [2020-07-08 12:02:15,064 INFO L263 TraceCheckUtils]: 122: Hoare triple {5296#(<= 4 main_~n~0)} call #t~ret3 := hanoi(~n~0); {4456#true} is VALID [2020-07-08 12:02:15,065 INFO L280 TraceCheckUtils]: 123: Hoare triple {4456#true} ~n := #in~n; {5303#(<= |hanoi_#in~n| hanoi_~n)} is VALID [2020-07-08 12:02:15,065 INFO L280 TraceCheckUtils]: 124: Hoare triple {5303#(<= |hanoi_#in~n| hanoi_~n)} assume !(1 == ~n); {5303#(<= |hanoi_#in~n| hanoi_~n)} is VALID [2020-07-08 12:02:15,065 INFO L263 TraceCheckUtils]: 125: Hoare triple {5303#(<= |hanoi_#in~n| hanoi_~n)} call #t~ret0 := hanoi(~n - 1); {4456#true} is VALID [2020-07-08 12:02:15,066 INFO L280 TraceCheckUtils]: 126: Hoare triple {4456#true} ~n := #in~n; {5303#(<= |hanoi_#in~n| hanoi_~n)} is VALID [2020-07-08 12:02:15,066 INFO L280 TraceCheckUtils]: 127: Hoare triple {5303#(<= |hanoi_#in~n| hanoi_~n)} assume !(1 == ~n); {5303#(<= |hanoi_#in~n| hanoi_~n)} is VALID [2020-07-08 12:02:15,067 INFO L263 TraceCheckUtils]: 128: Hoare triple {5303#(<= |hanoi_#in~n| hanoi_~n)} call #t~ret0 := hanoi(~n - 1); {4456#true} is VALID [2020-07-08 12:02:15,067 INFO L280 TraceCheckUtils]: 129: Hoare triple {4456#true} ~n := #in~n; {5303#(<= |hanoi_#in~n| hanoi_~n)} is VALID [2020-07-08 12:02:15,068 INFO L280 TraceCheckUtils]: 130: Hoare triple {5303#(<= |hanoi_#in~n| hanoi_~n)} assume 1 == ~n;#res := 1; {5325#(<= |hanoi_#in~n| 1)} is VALID [2020-07-08 12:02:15,068 INFO L280 TraceCheckUtils]: 131: Hoare triple {5325#(<= |hanoi_#in~n| 1)} assume true; {5325#(<= |hanoi_#in~n| 1)} is VALID [2020-07-08 12:02:15,069 INFO L275 TraceCheckUtils]: 132: Hoare quadruple {5325#(<= |hanoi_#in~n| 1)} {5303#(<= |hanoi_#in~n| hanoi_~n)} #42#return; {5332#(<= |hanoi_#in~n| 2)} is VALID [2020-07-08 12:02:15,070 INFO L280 TraceCheckUtils]: 133: Hoare triple {5332#(<= |hanoi_#in~n| 2)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {5332#(<= |hanoi_#in~n| 2)} is VALID [2020-07-08 12:02:15,070 INFO L280 TraceCheckUtils]: 134: Hoare triple {5332#(<= |hanoi_#in~n| 2)} assume true; {5332#(<= |hanoi_#in~n| 2)} is VALID [2020-07-08 12:02:15,071 INFO L275 TraceCheckUtils]: 135: Hoare quadruple {5332#(<= |hanoi_#in~n| 2)} {5303#(<= |hanoi_#in~n| hanoi_~n)} #42#return; {5342#(<= |hanoi_#in~n| 3)} is VALID [2020-07-08 12:02:15,072 INFO L280 TraceCheckUtils]: 136: Hoare triple {5342#(<= |hanoi_#in~n| 3)} assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647;#res := 1 + 2 * #t~ret0;havoc #t~ret0; {5342#(<= |hanoi_#in~n| 3)} is VALID [2020-07-08 12:02:15,072 INFO L280 TraceCheckUtils]: 137: Hoare triple {5342#(<= |hanoi_#in~n| 3)} assume true; {5342#(<= |hanoi_#in~n| 3)} is VALID [2020-07-08 12:02:15,073 INFO L275 TraceCheckUtils]: 138: Hoare quadruple {5342#(<= |hanoi_#in~n| 3)} {5296#(<= 4 main_~n~0)} #50#return; {4457#false} is VALID [2020-07-08 12:02:15,073 INFO L280 TraceCheckUtils]: 139: Hoare triple {4457#false} assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~result~0 := #t~ret3;havoc #t~ret3; {4457#false} is VALID [2020-07-08 12:02:15,074 INFO L280 TraceCheckUtils]: 140: Hoare triple {4457#false} assume !(~result~0 == ~counter~0); {4457#false} is VALID [2020-07-08 12:02:15,074 INFO L280 TraceCheckUtils]: 141: Hoare triple {4457#false} assume !false; {4457#false} is VALID [2020-07-08 12:02:15,102 INFO L134 CoverageAnalysis]: Checked inductivity of 1136 backedges. 197 proven. 162 refuted. 0 times theorem prover too weak. 777 trivial. 0 not checked. [2020-07-08 12:02:15,102 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-08 12:02:15,103 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 13] total 24 [2020-07-08 12:02:15,103 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1853222514] [2020-07-08 12:02:15,104 INFO L78 Accepts]: Start accepts. Automaton has 24 states. Word has length 142