./Ultimate.py --spec ../sv-benchmarks/c/properties/unreach-call.prp --file ../sv-benchmarks/c/bitvector-regression/recHanoi03-1.c --full-output -ea --architecture 32bit -------------------------------------------------------------------------------- Checking for ERROR reachability Using default analysis Version 03d7b7b3 Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -ea -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerReach.xml -i ../sv-benchmarks/c/bitvector-regression/recHanoi03-1.c -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(reach_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash 5a58a565ed7a29809aaccd8966118196fec0a697f2fc6db04cc260beeab4df83 --- Real Ultimate output --- This is Ultimate 0.2.2-dev-03d7b7b [2022-02-20 14:37:13,412 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-02-20 14:37:13,414 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-02-20 14:37:13,455 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-02-20 14:37:13,456 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-02-20 14:37:13,459 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-02-20 14:37:13,468 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-02-20 14:37:13,471 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-02-20 14:37:13,472 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-02-20 14:37:13,476 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-02-20 14:37:13,477 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-02-20 14:37:13,478 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-02-20 14:37:13,478 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-02-20 14:37:13,480 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-02-20 14:37:13,481 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-02-20 14:37:13,484 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-02-20 14:37:13,485 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-02-20 14:37:13,486 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-02-20 14:37:13,488 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-02-20 14:37:13,492 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-02-20 14:37:13,493 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-02-20 14:37:13,498 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-02-20 14:37:13,499 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-02-20 14:37:13,500 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-02-20 14:37:13,506 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-02-20 14:37:13,506 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-02-20 14:37:13,506 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-02-20 14:37:13,508 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-02-20 14:37:13,508 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-02-20 14:37:13,509 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-02-20 14:37:13,509 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-02-20 14:37:13,510 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-02-20 14:37:13,512 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-02-20 14:37:13,513 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-02-20 14:37:13,514 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-02-20 14:37:13,514 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-02-20 14:37:13,514 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-02-20 14:37:13,515 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-02-20 14:37:13,515 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-02-20 14:37:13,516 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-02-20 14:37:13,517 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-02-20 14:37:13,518 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf [2022-02-20 14:37:13,548 INFO L113 SettingsManager]: Loading preferences was successful [2022-02-20 14:37:13,549 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-02-20 14:37:13,549 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-02-20 14:37:13,550 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-02-20 14:37:13,550 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-02-20 14:37:13,551 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-02-20 14:37:13,551 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-02-20 14:37:13,551 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-02-20 14:37:13,552 INFO L138 SettingsManager]: * Use SBE=true [2022-02-20 14:37:13,552 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-02-20 14:37:13,553 INFO L138 SettingsManager]: * sizeof long=4 [2022-02-20 14:37:13,553 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-02-20 14:37:13,553 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-02-20 14:37:13,553 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-02-20 14:37:13,553 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-02-20 14:37:13,554 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-02-20 14:37:13,554 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-02-20 14:37:13,554 INFO L138 SettingsManager]: * sizeof long double=12 [2022-02-20 14:37:13,554 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-02-20 14:37:13,554 INFO L138 SettingsManager]: * Use constant arrays=true [2022-02-20 14:37:13,555 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-02-20 14:37:13,555 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-02-20 14:37:13,555 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-02-20 14:37:13,555 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-02-20 14:37:13,555 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 14:37:13,556 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-02-20 14:37:13,556 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-02-20 14:37:13,556 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-02-20 14:37:13,556 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2022-02-20 14:37:13,556 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2022-02-20 14:37:13,556 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-02-20 14:37:13,557 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-02-20 14:37:13,557 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-02-20 14:37:13,557 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: Entry function -> main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness.graphml Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(G ! call(reach_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> 5a58a565ed7a29809aaccd8966118196fec0a697f2fc6db04cc260beeab4df83 [2022-02-20 14:37:13,773 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-02-20 14:37:13,795 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-02-20 14:37:13,798 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-02-20 14:37:13,799 INFO L271 PluginConnector]: Initializing CDTParser... [2022-02-20 14:37:13,803 INFO L275 PluginConnector]: CDTParser initialized [2022-02-20 14:37:13,804 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/bitvector-regression/recHanoi03-1.c [2022-02-20 14:37:13,857 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/ae7215a4d/7b7477513737461d8fb7b7d8b5936442/FLAG1fb76dd84 [2022-02-20 14:37:14,233 INFO L306 CDTParser]: Found 1 translation units. [2022-02-20 14:37:14,233 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/bitvector-regression/recHanoi03-1.c [2022-02-20 14:37:14,238 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/ae7215a4d/7b7477513737461d8fb7b7d8b5936442/FLAG1fb76dd84 [2022-02-20 14:37:14,247 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/ae7215a4d/7b7477513737461d8fb7b7d8b5936442 [2022-02-20 14:37:14,250 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-02-20 14:37:14,251 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2022-02-20 14:37:14,252 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-02-20 14:37:14,252 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-02-20 14:37:14,259 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-02-20 14:37:14,260 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 02:37:14" (1/1) ... [2022-02-20 14:37:14,261 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@1e95a636 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:14, skipping insertion in model container [2022-02-20 14:37:14,261 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 02:37:14" (1/1) ... [2022-02-20 14:37:14,267 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-02-20 14:37:14,277 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-02-20 14:37:14,387 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/bitvector-regression/recHanoi03-1.c[838,851] [2022-02-20 14:37:14,391 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 14:37:14,411 INFO L203 MainTranslator]: Completed pre-run [2022-02-20 14:37:14,426 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/bitvector-regression/recHanoi03-1.c[838,851] [2022-02-20 14:37:14,432 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 14:37:14,445 INFO L208 MainTranslator]: Completed translation [2022-02-20 14:37:14,445 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:14 WrapperNode [2022-02-20 14:37:14,445 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-02-20 14:37:14,446 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2022-02-20 14:37:14,447 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2022-02-20 14:37:14,447 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2022-02-20 14:37:14,452 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:14" (1/1) ... [2022-02-20 14:37:14,457 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:14" (1/1) ... [2022-02-20 14:37:14,474 INFO L137 Inliner]: procedures = 13, calls = 9, calls flagged for inlining = 2, calls inlined = 2, statements flattened = 25 [2022-02-20 14:37:14,475 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2022-02-20 14:37:14,476 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-02-20 14:37:14,476 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-02-20 14:37:14,476 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-02-20 14:37:14,482 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:14" (1/1) ... [2022-02-20 14:37:14,482 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:14" (1/1) ... [2022-02-20 14:37:14,484 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:14" (1/1) ... [2022-02-20 14:37:14,484 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:14" (1/1) ... [2022-02-20 14:37:14,489 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:14" (1/1) ... [2022-02-20 14:37:14,492 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:14" (1/1) ... [2022-02-20 14:37:14,497 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:14" (1/1) ... [2022-02-20 14:37:14,500 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-02-20 14:37:14,501 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-02-20 14:37:14,501 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-02-20 14:37:14,502 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-02-20 14:37:14,503 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:14" (1/1) ... [2022-02-20 14:37:14,508 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 14:37:14,518 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 14:37:14,531 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-02-20 14:37:14,532 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-02-20 14:37:14,561 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-02-20 14:37:14,561 INFO L130 BoogieDeclarations]: Found specification of procedure hanoi [2022-02-20 14:37:14,561 INFO L138 BoogieDeclarations]: Found implementation of procedure hanoi [2022-02-20 14:37:14,561 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-02-20 14:37:14,561 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-02-20 14:37:14,561 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-02-20 14:37:14,601 INFO L234 CfgBuilder]: Building ICFG [2022-02-20 14:37:14,602 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-02-20 14:37:14,694 INFO L275 CfgBuilder]: Performing block encoding [2022-02-20 14:37:14,700 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-02-20 14:37:14,700 INFO L299 CfgBuilder]: Removed 0 assume(true) statements. [2022-02-20 14:37:14,702 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 02:37:14 BoogieIcfgContainer [2022-02-20 14:37:14,702 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-02-20 14:37:14,703 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-02-20 14:37:14,703 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-02-20 14:37:14,705 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-02-20 14:37:14,705 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 20.02 02:37:14" (1/3) ... [2022-02-20 14:37:14,706 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@30c531f6 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 02:37:14, skipping insertion in model container [2022-02-20 14:37:14,706 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:14" (2/3) ... [2022-02-20 14:37:14,706 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@30c531f6 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 02:37:14, skipping insertion in model container [2022-02-20 14:37:14,706 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 02:37:14" (3/3) ... [2022-02-20 14:37:14,707 INFO L111 eAbstractionObserver]: Analyzing ICFG recHanoi03-1.c [2022-02-20 14:37:14,710 INFO L205 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-02-20 14:37:14,710 INFO L164 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-02-20 14:37:14,749 INFO L338 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-02-20 14:37:14,754 INFO L339 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=FPandBP, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=PETRI_NET, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=LoopsAndPotentialCycles, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP, mLoopAccelerationTechnique=FAST_UPR [2022-02-20 14:37:14,755 INFO L340 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-02-20 14:37:14,770 INFO L276 IsEmpty]: Start isEmpty. Operand has 17 states, 12 states have (on average 1.3333333333333333) internal successors, (16), 13 states have internal predecessors, (16), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 14:37:14,773 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 12 [2022-02-20 14:37:14,773 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 14:37:14,773 INFO L514 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 14:37:14,783 INFO L402 AbstractCegarLoop]: === Iteration 1 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 14:37:14,787 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 14:37:14,787 INFO L85 PathProgramCache]: Analyzing trace with hash -2087939196, now seen corresponding path program 1 times [2022-02-20 14:37:14,794 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 14:37:14,794 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1443021796] [2022-02-20 14:37:14,794 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 14:37:14,795 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 14:37:14,909 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2022-02-20 14:37:14,910 INFO L352 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2022-02-20 14:37:14,938 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2022-02-20 14:37:14,961 INFO L138 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2022-02-20 14:37:14,963 INFO L628 BasicCegarLoop]: Counterexample is feasible [2022-02-20 14:37:14,964 INFO L764 garLoopResultBuilder]: Registering result UNSAFE for location ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION (0 of 1 remaining) [2022-02-20 14:37:14,966 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-02-20 14:37:14,969 INFO L732 BasicCegarLoop]: Path program histogram: [1] [2022-02-20 14:37:14,971 INFO L180 ceAbstractionStarter]: Computing trace abstraction results [2022-02-20 14:37:14,986 FATAL L489 DefaultTranslator]: Callstack has procedure call flag but succeeding procedure is empty at [CALL] call #t~ret6 := hanoi(~n~0); [2022-02-20 14:37:14,987 FATAL L? ?]: The Plugin de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction has thrown an exception: java.lang.AssertionError: callstack broken after backtranslation by InlinerBacktranslator at de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator.translateProgramExecution(InlinerBacktranslator.java:230) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:216) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:225) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:225) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:206) at de.uni_freiburg.informatik.ultimate.core.lib.results.UnprovableResult.getProgramExecutionAsString(UnprovableResult.java:132) at de.uni_freiburg.informatik.ultimate.core.lib.results.UnprovableResult.getLongDescription(UnprovableResult.java:125) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ResultService.reportResult(ResultService.java:86) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.CegarLoopResultReporter.reportResult(CegarLoopResultReporter.java:141) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.reportLocationResults(TraceAbstractionStarter.java:607) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:182) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:156) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver.finish(TraceAbstractionObserver.java:123) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runObserver(PluginConnector.java:168) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runTool(PluginConnector.java:151) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.run(PluginConnector.java:128) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.executePluginConnector(ToolchainWalker.java:232) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.processPlugin(ToolchainWalker.java:226) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walkUnprotected(ToolchainWalker.java:142) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walk(ToolchainWalker.java:104) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainManager$Toolchain.processToolchain(ToolchainManager.java:320) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) [2022-02-20 14:37:14,994 INFO L158 Benchmark]: Toolchain (without parser) took 742.11ms. Allocated memory is still 88.1MB. Free memory was 64.4MB in the beginning and 58.6MB in the end (delta: 5.8MB). Peak memory consumption was 9.0MB. Max. memory is 16.1GB. [2022-02-20 14:37:14,994 INFO L158 Benchmark]: CDTParser took 0.16ms. Allocated memory is still 73.4MB. Free memory is still 43.4MB. There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 14:37:14,995 INFO L158 Benchmark]: CACSL2BoogieTranslator took 193.96ms. Allocated memory is still 88.1MB. Free memory was 64.2MB in the beginning and 54.3MB in the end (delta: 9.9MB). Peak memory consumption was 10.5MB. Max. memory is 16.1GB. [2022-02-20 14:37:14,996 INFO L158 Benchmark]: Boogie Procedure Inliner took 28.20ms. Allocated memory is still 88.1MB. Free memory was 54.3MB in the beginning and 52.8MB in the end (delta: 1.5MB). There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 14:37:14,996 INFO L158 Benchmark]: Boogie Preprocessor took 24.36ms. Allocated memory is still 88.1MB. Free memory was 52.8MB in the beginning and 52.0MB in the end (delta: 847.4kB). There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 14:37:14,997 INFO L158 Benchmark]: RCFGBuilder took 200.54ms. Allocated memory is still 88.1MB. Free memory was 51.8MB in the beginning and 42.2MB in the end (delta: 9.6MB). Peak memory consumption was 12.6MB. Max. memory is 16.1GB. [2022-02-20 14:37:14,999 INFO L158 Benchmark]: TraceAbstraction took 288.96ms. Allocated memory is still 88.1MB. Free memory was 41.7MB in the beginning and 58.6MB in the end (delta: -16.9MB). There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 14:37:15,004 INFO L339 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - AssertionsEnabledResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.16ms. Allocated memory is still 73.4MB. Free memory is still 43.4MB. There was no memory consumed. Max. memory is 16.1GB. * CACSL2BoogieTranslator took 193.96ms. Allocated memory is still 88.1MB. Free memory was 64.2MB in the beginning and 54.3MB in the end (delta: 9.9MB). Peak memory consumption was 10.5MB. Max. memory is 16.1GB. * Boogie Procedure Inliner took 28.20ms. Allocated memory is still 88.1MB. Free memory was 54.3MB in the beginning and 52.8MB in the end (delta: 1.5MB). There was no memory consumed. Max. memory is 16.1GB. * Boogie Preprocessor took 24.36ms. Allocated memory is still 88.1MB. Free memory was 52.8MB in the beginning and 52.0MB in the end (delta: 847.4kB). There was no memory consumed. Max. memory is 16.1GB. * RCFGBuilder took 200.54ms. Allocated memory is still 88.1MB. Free memory was 51.8MB in the beginning and 42.2MB in the end (delta: 9.6MB). Peak memory consumption was 12.6MB. Max. memory is 16.1GB. * TraceAbstraction took 288.96ms. Allocated memory is still 88.1MB. Free memory was 41.7MB in the beginning and 58.6MB in the end (delta: -16.9MB). There was no memory consumed. Max. memory is 16.1GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - StatisticsResult: ErrorAutomatonStatistics NumberErrorTraces: 0, NumberStatementsAllTraces: 0, NumberRelevantStatements: 0, 0.0s ErrorAutomatonConstructionTimeTotal, 0.0s FaulLocalizationTime, NumberStatementsFirstTrace: -1, TraceLengthAvg: 0, 0.0s ErrorAutomatonConstructionTimeAvg, 0.0s ErrorAutomatonDifferenceTimeAvg, 0.0s ErrorAutomatonDifferenceTimeTotal, NumberOfNoEnhancement: 0, NumberOfFiniteEnhancement: 0, NumberOfInfiniteEnhancement: 0 - ExceptionOrErrorResult: AssertionError: callstack broken after backtranslation by InlinerBacktranslator de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: AssertionError: callstack broken after backtranslation by InlinerBacktranslator: de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator.translateProgramExecution(InlinerBacktranslator.java:230) RESULT: Ultimate could not prove your program: Toolchain returned no result. [2022-02-20 14:37:15,047 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Forceful destruction successful, exit code 0 Received shutdown request... --- End real Ultimate output --- Execution finished normally Using bit-precise analysis Retrying with bit-precise analysis ### Bit-precise run ### Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -ea -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerReach.xml -i ../sv-benchmarks/c/bitvector-regression/recHanoi03-1.c -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Bitvector.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(reach_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash 5a58a565ed7a29809aaccd8966118196fec0a697f2fc6db04cc260beeab4df83 --- Real Ultimate output --- This is Ultimate 0.2.2-dev-03d7b7b [2022-02-20 14:37:16,958 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-02-20 14:37:16,961 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-02-20 14:37:16,991 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-02-20 14:37:16,992 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-02-20 14:37:16,995 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-02-20 14:37:16,997 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-02-20 14:37:17,001 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-02-20 14:37:17,003 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-02-20 14:37:17,007 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-02-20 14:37:17,008 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-02-20 14:37:17,009 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-02-20 14:37:17,010 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-02-20 14:37:17,012 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-02-20 14:37:17,013 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-02-20 14:37:17,016 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-02-20 14:37:17,017 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-02-20 14:37:17,018 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-02-20 14:37:17,021 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-02-20 14:37:17,024 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-02-20 14:37:17,025 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-02-20 14:37:17,026 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-02-20 14:37:17,027 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-02-20 14:37:17,027 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-02-20 14:37:17,029 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-02-20 14:37:17,029 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-02-20 14:37:17,030 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-02-20 14:37:17,030 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-02-20 14:37:17,031 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-02-20 14:37:17,031 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-02-20 14:37:17,032 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-02-20 14:37:17,032 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-02-20 14:37:17,033 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-02-20 14:37:17,034 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-02-20 14:37:17,034 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-02-20 14:37:17,035 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-02-20 14:37:17,035 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-02-20 14:37:17,035 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-02-20 14:37:17,036 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-02-20 14:37:17,036 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-02-20 14:37:17,037 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-02-20 14:37:17,044 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Bitvector.epf [2022-02-20 14:37:17,077 INFO L113 SettingsManager]: Loading preferences was successful [2022-02-20 14:37:17,078 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-02-20 14:37:17,079 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-02-20 14:37:17,079 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-02-20 14:37:17,080 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-02-20 14:37:17,080 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-02-20 14:37:17,081 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-02-20 14:37:17,081 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-02-20 14:37:17,081 INFO L138 SettingsManager]: * Use SBE=true [2022-02-20 14:37:17,082 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-02-20 14:37:17,082 INFO L138 SettingsManager]: * sizeof long=4 [2022-02-20 14:37:17,082 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-02-20 14:37:17,083 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-02-20 14:37:17,083 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-02-20 14:37:17,083 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-02-20 14:37:17,083 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-02-20 14:37:17,083 INFO L138 SettingsManager]: * Adapt memory model on pointer casts if necessary=true [2022-02-20 14:37:17,083 INFO L138 SettingsManager]: * Use bitvectors instead of ints=true [2022-02-20 14:37:17,084 INFO L138 SettingsManager]: * Memory model=HoenickeLindenmann_4ByteResolution [2022-02-20 14:37:17,084 INFO L138 SettingsManager]: * sizeof long double=12 [2022-02-20 14:37:17,084 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-02-20 14:37:17,084 INFO L138 SettingsManager]: * Use constant arrays=true [2022-02-20 14:37:17,084 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-02-20 14:37:17,085 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-02-20 14:37:17,085 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-02-20 14:37:17,085 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-02-20 14:37:17,090 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 14:37:17,090 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-02-20 14:37:17,090 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-02-20 14:37:17,090 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-02-20 14:37:17,091 INFO L138 SettingsManager]: * Trace refinement strategy=WOLF [2022-02-20 14:37:17,091 INFO L138 SettingsManager]: * Command for external solver=cvc4 --incremental --print-success --lang smt [2022-02-20 14:37:17,091 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-02-20 14:37:17,091 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-02-20 14:37:17,092 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-02-20 14:37:17,092 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2022-02-20 14:37:17,092 INFO L138 SettingsManager]: * Logic for external solver=AUFBV WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: Entry function -> main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness.graphml Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(G ! call(reach_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> 5a58a565ed7a29809aaccd8966118196fec0a697f2fc6db04cc260beeab4df83 [2022-02-20 14:37:17,393 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-02-20 14:37:17,416 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-02-20 14:37:17,418 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-02-20 14:37:17,419 INFO L271 PluginConnector]: Initializing CDTParser... [2022-02-20 14:37:17,420 INFO L275 PluginConnector]: CDTParser initialized [2022-02-20 14:37:17,421 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/bitvector-regression/recHanoi03-1.c [2022-02-20 14:37:17,476 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/d096ddc4f/a2d979d671a240d4b1bdddd79646b18b/FLAG103c1d77c [2022-02-20 14:37:17,895 INFO L306 CDTParser]: Found 1 translation units. [2022-02-20 14:37:17,895 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/bitvector-regression/recHanoi03-1.c [2022-02-20 14:37:17,901 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/d096ddc4f/a2d979d671a240d4b1bdddd79646b18b/FLAG103c1d77c [2022-02-20 14:37:18,315 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/d096ddc4f/a2d979d671a240d4b1bdddd79646b18b [2022-02-20 14:37:18,318 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-02-20 14:37:18,319 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2022-02-20 14:37:18,322 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-02-20 14:37:18,322 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-02-20 14:37:18,325 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-02-20 14:37:18,326 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 02:37:18" (1/1) ... [2022-02-20 14:37:18,327 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@2f98489 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:18, skipping insertion in model container [2022-02-20 14:37:18,328 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 02:37:18" (1/1) ... [2022-02-20 14:37:18,334 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-02-20 14:37:18,348 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-02-20 14:37:18,503 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/bitvector-regression/recHanoi03-1.c[838,851] [2022-02-20 14:37:18,505 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 14:37:18,524 INFO L203 MainTranslator]: Completed pre-run [2022-02-20 14:37:18,542 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/bitvector-regression/recHanoi03-1.c[838,851] [2022-02-20 14:37:18,543 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 14:37:18,562 INFO L208 MainTranslator]: Completed translation [2022-02-20 14:37:18,563 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:18 WrapperNode [2022-02-20 14:37:18,563 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-02-20 14:37:18,564 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2022-02-20 14:37:18,564 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2022-02-20 14:37:18,564 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2022-02-20 14:37:18,569 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:18" (1/1) ... [2022-02-20 14:37:18,594 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:18" (1/1) ... [2022-02-20 14:37:18,609 INFO L137 Inliner]: procedures = 13, calls = 9, calls flagged for inlining = 2, calls inlined = 2, statements flattened = 24 [2022-02-20 14:37:18,610 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2022-02-20 14:37:18,610 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-02-20 14:37:18,611 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-02-20 14:37:18,611 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-02-20 14:37:18,617 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:18" (1/1) ... [2022-02-20 14:37:18,617 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:18" (1/1) ... [2022-02-20 14:37:18,621 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:18" (1/1) ... [2022-02-20 14:37:18,621 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:18" (1/1) ... [2022-02-20 14:37:18,632 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:18" (1/1) ... [2022-02-20 14:37:18,633 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:18" (1/1) ... [2022-02-20 14:37:18,637 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:18" (1/1) ... [2022-02-20 14:37:18,641 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-02-20 14:37:18,643 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-02-20 14:37:18,643 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-02-20 14:37:18,643 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-02-20 14:37:18,645 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:18" (1/1) ... [2022-02-20 14:37:18,651 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 14:37:18,659 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 14:37:18,671 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-02-20 14:37:18,698 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-02-20 14:37:18,713 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-02-20 14:37:18,713 INFO L130 BoogieDeclarations]: Found specification of procedure hanoi [2022-02-20 14:37:18,714 INFO L138 BoogieDeclarations]: Found implementation of procedure hanoi [2022-02-20 14:37:18,714 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-02-20 14:37:18,714 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-02-20 14:37:18,714 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~intINTTYPE1 [2022-02-20 14:37:18,786 INFO L234 CfgBuilder]: Building ICFG [2022-02-20 14:37:18,788 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-02-20 14:37:18,913 INFO L275 CfgBuilder]: Performing block encoding [2022-02-20 14:37:18,921 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-02-20 14:37:18,921 INFO L299 CfgBuilder]: Removed 0 assume(true) statements. [2022-02-20 14:37:18,923 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 02:37:18 BoogieIcfgContainer [2022-02-20 14:37:18,923 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-02-20 14:37:18,926 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-02-20 14:37:18,926 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-02-20 14:37:18,928 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-02-20 14:37:18,929 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 20.02 02:37:18" (1/3) ... [2022-02-20 14:37:18,930 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@23dd2d37 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 02:37:18, skipping insertion in model container [2022-02-20 14:37:18,930 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 02:37:18" (2/3) ... [2022-02-20 14:37:18,930 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@23dd2d37 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 02:37:18, skipping insertion in model container [2022-02-20 14:37:18,930 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 02:37:18" (3/3) ... [2022-02-20 14:37:18,933 INFO L111 eAbstractionObserver]: Analyzing ICFG recHanoi03-1.c [2022-02-20 14:37:18,937 INFO L205 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-02-20 14:37:18,937 INFO L164 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-02-20 14:37:18,978 INFO L338 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-02-20 14:37:18,992 INFO L339 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=FPandBP, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=PETRI_NET, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=LoopsAndPotentialCycles, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP, mLoopAccelerationTechnique=FAST_UPR [2022-02-20 14:37:18,993 INFO L340 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-02-20 14:37:19,015 INFO L276 IsEmpty]: Start isEmpty. Operand has 17 states, 12 states have (on average 1.3333333333333333) internal successors, (16), 13 states have internal predecessors, (16), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 14:37:19,018 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 12 [2022-02-20 14:37:19,018 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 14:37:19,019 INFO L514 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 14:37:19,020 INFO L402 AbstractCegarLoop]: === Iteration 1 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 14:37:19,028 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 14:37:19,029 INFO L85 PathProgramCache]: Analyzing trace with hash -2087939196, now seen corresponding path program 1 times [2022-02-20 14:37:19,040 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 14:37:19,041 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [294394026] [2022-02-20 14:37:19,041 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 14:37:19,042 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 14:37:19,042 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 14:37:19,049 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 14:37:19,051 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (2)] Waiting until timeout for monitored process [2022-02-20 14:37:19,101 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 14:37:19,112 INFO L263 TraceCheckSpWp]: Trace formula consists of 27 conjuncts, 8 conjunts are in the unsatisfiable core [2022-02-20 14:37:19,120 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 14:37:19,123 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 14:37:19,417 INFO L290 TraceCheckUtils]: 0: Hoare triple {20#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(15bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {20#true} is VALID [2022-02-20 14:37:19,417 INFO L290 TraceCheckUtils]: 1: Hoare triple {20#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet5#1, main_#t~ret6#1, main_~n~0#1, main_~result~0#1;main_~n~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; {20#true} is VALID [2022-02-20 14:37:19,418 INFO L290 TraceCheckUtils]: 2: Hoare triple {20#true} assume !~bvslt32(main_~n~0#1, 1bv32); {31#(not (bvslt |ULTIMATE.start_main_~n~0#1| (_ bv1 32)))} is VALID [2022-02-20 14:37:19,418 INFO L272 TraceCheckUtils]: 3: Hoare triple {31#(not (bvslt |ULTIMATE.start_main_~n~0#1| (_ bv1 32)))} call main_#t~ret6#1 := hanoi(main_~n~0#1); {20#true} is VALID [2022-02-20 14:37:19,419 INFO L290 TraceCheckUtils]: 4: Hoare triple {20#true} ~n := #in~n; {38#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:19,420 INFO L290 TraceCheckUtils]: 5: Hoare triple {38#(= |hanoi_#in~n| hanoi_~n)} assume 1bv32 == ~n;#res := 1bv32; {42#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} is VALID [2022-02-20 14:37:19,420 INFO L290 TraceCheckUtils]: 6: Hoare triple {42#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} assume true; {42#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} is VALID [2022-02-20 14:37:19,422 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {42#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} {31#(not (bvslt |ULTIMATE.start_main_~n~0#1| (_ bv1 32)))} #32#return; {49#(and (= |ULTIMATE.start_main_~n~0#1| (_ bv1 32)) (= (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|))} is VALID [2022-02-20 14:37:19,423 INFO L290 TraceCheckUtils]: 8: Hoare triple {49#(and (= |ULTIMATE.start_main_~n~0#1| (_ bv1 32)) (= (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|))} main_~result~0#1 := main_#t~ret6#1;havoc main_#t~ret6#1; {53#(and (= |ULTIMATE.start_main_~n~0#1| (_ bv1 32)) (= |ULTIMATE.start_main_~result~0#1| (_ bv1 32)))} is VALID [2022-02-20 14:37:19,424 INFO L290 TraceCheckUtils]: 9: Hoare triple {53#(and (= |ULTIMATE.start_main_~n~0#1| (_ bv1 32)) (= |ULTIMATE.start_main_~result~0#1| (_ bv1 32)))} assume !(~bvugt32(~bvadd32(1bv32, main_~result~0#1), 0bv32) && ~bvadd32(1bv32, main_~result~0#1) == ~bvshl32(1bv32, main_~n~0#1)); {21#false} is VALID [2022-02-20 14:37:19,424 INFO L290 TraceCheckUtils]: 10: Hoare triple {21#false} assume !false; {21#false} is VALID [2022-02-20 14:37:19,425 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-02-20 14:37:19,426 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 14:37:19,426 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 14:37:19,427 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [294394026] [2022-02-20 14:37:19,427 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [294394026] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 14:37:19,427 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 14:37:19,427 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2022-02-20 14:37:19,429 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1379573366] [2022-02-20 14:37:19,430 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 14:37:19,437 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 6 states have (on average 1.5) internal successors, (9), 6 states have internal predecessors, (9), 1 states have call successors, (1), 1 states have call predecessors, (1), 1 states have return successors, (1), 1 states have call predecessors, (1), 1 states have call successors, (1) Word has length 11 [2022-02-20 14:37:19,438 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 14:37:19,441 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 7 states, 6 states have (on average 1.5) internal successors, (9), 6 states have internal predecessors, (9), 1 states have call successors, (1), 1 states have call predecessors, (1), 1 states have return successors, (1), 1 states have call predecessors, (1), 1 states have call successors, (1) [2022-02-20 14:37:19,460 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 11 edges. 11 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 14:37:19,461 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-02-20 14:37:19,461 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 14:37:19,485 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-02-20 14:37:19,486 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=13, Invalid=29, Unknown=0, NotChecked=0, Total=42 [2022-02-20 14:37:19,489 INFO L87 Difference]: Start difference. First operand has 17 states, 12 states have (on average 1.3333333333333333) internal successors, (16), 13 states have internal predecessors, (16), 2 states have call successors, (2), 1 states have call predecessors, (2), 1 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) Second operand has 7 states, 6 states have (on average 1.5) internal successors, (9), 6 states have internal predecessors, (9), 1 states have call successors, (1), 1 states have call predecessors, (1), 1 states have return successors, (1), 1 states have call predecessors, (1), 1 states have call successors, (1) [2022-02-20 14:37:19,741 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 14:37:19,741 INFO L93 Difference]: Finished difference Result 32 states and 34 transitions. [2022-02-20 14:37:19,741 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-02-20 14:37:19,742 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 6 states have (on average 1.5) internal successors, (9), 6 states have internal predecessors, (9), 1 states have call successors, (1), 1 states have call predecessors, (1), 1 states have return successors, (1), 1 states have call predecessors, (1), 1 states have call successors, (1) Word has length 11 [2022-02-20 14:37:19,743 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 14:37:19,744 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 6 states have (on average 1.5) internal successors, (9), 6 states have internal predecessors, (9), 1 states have call successors, (1), 1 states have call predecessors, (1), 1 states have return successors, (1), 1 states have call predecessors, (1), 1 states have call successors, (1) [2022-02-20 14:37:19,753 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 34 transitions. [2022-02-20 14:37:19,753 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 6 states have (on average 1.5) internal successors, (9), 6 states have internal predecessors, (9), 1 states have call successors, (1), 1 states have call predecessors, (1), 1 states have return successors, (1), 1 states have call predecessors, (1), 1 states have call successors, (1) [2022-02-20 14:37:19,760 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 34 transitions. [2022-02-20 14:37:19,760 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 34 transitions. [2022-02-20 14:37:19,806 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 14:37:19,812 INFO L225 Difference]: With dead ends: 32 [2022-02-20 14:37:19,813 INFO L226 Difference]: Without dead ends: 16 [2022-02-20 14:37:19,815 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=17, Invalid=39, Unknown=0, NotChecked=0, Total=56 [2022-02-20 14:37:19,818 INFO L933 BasicCegarLoop]: 14 mSDtfsCounter, 17 mSDsluCounter, 39 mSDsCounter, 0 mSdLazyCounter, 45 mSolverCounterSat, 1 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 21 SdHoareTripleChecker+Valid, 53 SdHoareTripleChecker+Invalid, 46 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 1 IncrementalHoareTripleChecker+Valid, 45 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 14:37:19,819 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [21 Valid, 53 Invalid, 46 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [1 Valid, 45 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 14:37:19,831 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 16 states. [2022-02-20 14:37:19,842 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 16 to 16. [2022-02-20 14:37:19,842 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 14:37:19,843 INFO L82 GeneralOperation]: Start isEquivalent. First operand 16 states. Second operand has 16 states, 11 states have (on average 1.0909090909090908) internal successors, (12), 12 states have internal predecessors, (12), 2 states have call successors, (2), 1 states have call predecessors, (2), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 14:37:19,843 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand has 16 states, 11 states have (on average 1.0909090909090908) internal successors, (12), 12 states have internal predecessors, (12), 2 states have call successors, (2), 1 states have call predecessors, (2), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 14:37:19,844 INFO L87 Difference]: Start difference. First operand 16 states. Second operand has 16 states, 11 states have (on average 1.0909090909090908) internal successors, (12), 12 states have internal predecessors, (12), 2 states have call successors, (2), 1 states have call predecessors, (2), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 14:37:19,847 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 14:37:19,847 INFO L93 Difference]: Finished difference Result 16 states and 17 transitions. [2022-02-20 14:37:19,847 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 17 transitions. [2022-02-20 14:37:19,847 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 14:37:19,848 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 14:37:19,848 INFO L74 IsIncluded]: Start isIncluded. First operand has 16 states, 11 states have (on average 1.0909090909090908) internal successors, (12), 12 states have internal predecessors, (12), 2 states have call successors, (2), 1 states have call predecessors, (2), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Second operand 16 states. [2022-02-20 14:37:19,848 INFO L87 Difference]: Start difference. First operand has 16 states, 11 states have (on average 1.0909090909090908) internal successors, (12), 12 states have internal predecessors, (12), 2 states have call successors, (2), 1 states have call predecessors, (2), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Second operand 16 states. [2022-02-20 14:37:19,850 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 14:37:19,850 INFO L93 Difference]: Finished difference Result 16 states and 17 transitions. [2022-02-20 14:37:19,851 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 17 transitions. [2022-02-20 14:37:19,851 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 14:37:19,851 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 14:37:19,851 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 14:37:19,852 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 14:37:19,852 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 11 states have (on average 1.0909090909090908) internal successors, (12), 12 states have internal predecessors, (12), 2 states have call successors, (2), 1 states have call predecessors, (2), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 14:37:19,853 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 17 transitions. [2022-02-20 14:37:19,855 INFO L78 Accepts]: Start accepts. Automaton has 16 states and 17 transitions. Word has length 11 [2022-02-20 14:37:19,855 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 14:37:19,855 INFO L470 AbstractCegarLoop]: Abstraction has 16 states and 17 transitions. [2022-02-20 14:37:19,855 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 7 states, 6 states have (on average 1.5) internal successors, (9), 6 states have internal predecessors, (9), 1 states have call successors, (1), 1 states have call predecessors, (1), 1 states have return successors, (1), 1 states have call predecessors, (1), 1 states have call successors, (1) [2022-02-20 14:37:19,856 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 17 transitions. [2022-02-20 14:37:19,856 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 18 [2022-02-20 14:37:19,856 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 14:37:19,856 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 14:37:19,870 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (2)] Forceful destruction successful, exit code 0 [2022-02-20 14:37:20,066 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 14:37:20,066 INFO L402 AbstractCegarLoop]: === Iteration 2 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 14:37:20,067 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 14:37:20,067 INFO L85 PathProgramCache]: Analyzing trace with hash -2053638732, now seen corresponding path program 1 times [2022-02-20 14:37:20,068 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 14:37:20,068 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [213922657] [2022-02-20 14:37:20,068 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 14:37:20,068 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 14:37:20,069 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 14:37:20,070 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 14:37:20,072 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (3)] Waiting until timeout for monitored process [2022-02-20 14:37:20,107 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 14:37:20,110 INFO L263 TraceCheckSpWp]: Trace formula consists of 35 conjuncts, 12 conjunts are in the unsatisfiable core [2022-02-20 14:37:20,117 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 14:37:20,118 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 14:37:20,362 INFO L290 TraceCheckUtils]: 0: Hoare triple {151#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(15bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {151#true} is VALID [2022-02-20 14:37:20,363 INFO L290 TraceCheckUtils]: 1: Hoare triple {151#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet5#1, main_#t~ret6#1, main_~n~0#1, main_~result~0#1;main_~n~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; {151#true} is VALID [2022-02-20 14:37:20,363 INFO L290 TraceCheckUtils]: 2: Hoare triple {151#true} assume !~bvslt32(main_~n~0#1, 1bv32); {162#(not (bvslt |ULTIMATE.start_main_~n~0#1| (_ bv1 32)))} is VALID [2022-02-20 14:37:20,363 INFO L272 TraceCheckUtils]: 3: Hoare triple {162#(not (bvslt |ULTIMATE.start_main_~n~0#1| (_ bv1 32)))} call main_#t~ret6#1 := hanoi(main_~n~0#1); {151#true} is VALID [2022-02-20 14:37:20,364 INFO L290 TraceCheckUtils]: 4: Hoare triple {151#true} ~n := #in~n; {169#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:20,365 INFO L290 TraceCheckUtils]: 5: Hoare triple {169#(= |hanoi_#in~n| hanoi_~n)} assume !(1bv32 == ~n); {169#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:20,365 INFO L272 TraceCheckUtils]: 6: Hoare triple {169#(= |hanoi_#in~n| hanoi_~n)} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {151#true} is VALID [2022-02-20 14:37:20,366 INFO L290 TraceCheckUtils]: 7: Hoare triple {151#true} ~n := #in~n; {169#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:20,366 INFO L290 TraceCheckUtils]: 8: Hoare triple {169#(= |hanoi_#in~n| hanoi_~n)} assume 1bv32 == ~n;#res := 1bv32; {182#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} is VALID [2022-02-20 14:37:20,367 INFO L290 TraceCheckUtils]: 9: Hoare triple {182#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} assume true; {182#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} is VALID [2022-02-20 14:37:20,368 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {182#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} {169#(= |hanoi_#in~n| hanoi_~n)} #30#return; {189#(and (= |hanoi_#t~ret4| (_ bv1 32)) (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)))} is VALID [2022-02-20 14:37:20,369 INFO L290 TraceCheckUtils]: 11: Hoare triple {189#(and (= |hanoi_#t~ret4| (_ bv1 32)) (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {193#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)) (= (_ bv3 32) |hanoi_#res|))} is VALID [2022-02-20 14:37:20,369 INFO L290 TraceCheckUtils]: 12: Hoare triple {193#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)) (= (_ bv3 32) |hanoi_#res|))} assume true; {193#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)) (= (_ bv3 32) |hanoi_#res|))} is VALID [2022-02-20 14:37:20,371 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {193#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)) (= (_ bv3 32) |hanoi_#res|))} {162#(not (bvslt |ULTIMATE.start_main_~n~0#1| (_ bv1 32)))} #32#return; {200#(and (= (_ bv3 32) |ULTIMATE.start_main_#t~ret6#1|) (= |ULTIMATE.start_main_~n~0#1| (_ bv2 32)))} is VALID [2022-02-20 14:37:20,372 INFO L290 TraceCheckUtils]: 14: Hoare triple {200#(and (= (_ bv3 32) |ULTIMATE.start_main_#t~ret6#1|) (= |ULTIMATE.start_main_~n~0#1| (_ bv2 32)))} main_~result~0#1 := main_#t~ret6#1;havoc main_#t~ret6#1; {204#(and (= |ULTIMATE.start_main_~n~0#1| (_ bv2 32)) (= |ULTIMATE.start_main_~result~0#1| (_ bv3 32)))} is VALID [2022-02-20 14:37:20,373 INFO L290 TraceCheckUtils]: 15: Hoare triple {204#(and (= |ULTIMATE.start_main_~n~0#1| (_ bv2 32)) (= |ULTIMATE.start_main_~result~0#1| (_ bv3 32)))} assume !(~bvugt32(~bvadd32(1bv32, main_~result~0#1), 0bv32) && ~bvadd32(1bv32, main_~result~0#1) == ~bvshl32(1bv32, main_~n~0#1)); {152#false} is VALID [2022-02-20 14:37:20,373 INFO L290 TraceCheckUtils]: 16: Hoare triple {152#false} assume !false; {152#false} is VALID [2022-02-20 14:37:20,373 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2022-02-20 14:37:20,373 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 14:37:21,106 INFO L290 TraceCheckUtils]: 16: Hoare triple {152#false} assume !false; {152#false} is VALID [2022-02-20 14:37:21,107 INFO L290 TraceCheckUtils]: 15: Hoare triple {214#(and (= (bvadd |ULTIMATE.start_main_~result~0#1| (_ bv1 32)) (bvshl (_ bv1 32) |ULTIMATE.start_main_~n~0#1|)) (bvugt (bvadd |ULTIMATE.start_main_~result~0#1| (_ bv1 32)) (_ bv0 32)))} assume !(~bvugt32(~bvadd32(1bv32, main_~result~0#1), 0bv32) && ~bvadd32(1bv32, main_~result~0#1) == ~bvshl32(1bv32, main_~n~0#1)); {152#false} is VALID [2022-02-20 14:37:21,108 INFO L290 TraceCheckUtils]: 14: Hoare triple {218#(and (bvugt (bvadd (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|) (_ bv0 32)) (= (bvadd (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|) (bvshl (_ bv1 32) |ULTIMATE.start_main_~n~0#1|)))} main_~result~0#1 := main_#t~ret6#1;havoc main_#t~ret6#1; {214#(and (= (bvadd |ULTIMATE.start_main_~result~0#1| (_ bv1 32)) (bvshl (_ bv1 32) |ULTIMATE.start_main_~n~0#1|)) (bvugt (bvadd |ULTIMATE.start_main_~result~0#1| (_ bv1 32)) (_ bv0 32)))} is VALID [2022-02-20 14:37:21,109 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {225#(and (bvugt (bvadd |hanoi_#res| (_ bv1 32)) (_ bv0 32)) (= (bvadd |hanoi_#res| (_ bv1 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} {151#true} #32#return; {218#(and (bvugt (bvadd (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|) (_ bv0 32)) (= (bvadd (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|) (bvshl (_ bv1 32) |ULTIMATE.start_main_~n~0#1|)))} is VALID [2022-02-20 14:37:21,110 INFO L290 TraceCheckUtils]: 12: Hoare triple {225#(and (bvugt (bvadd |hanoi_#res| (_ bv1 32)) (_ bv0 32)) (= (bvadd |hanoi_#res| (_ bv1 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} assume true; {225#(and (bvugt (bvadd |hanoi_#res| (_ bv1 32)) (_ bv0 32)) (= (bvadd |hanoi_#res| (_ bv1 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} is VALID [2022-02-20 14:37:21,115 INFO L290 TraceCheckUtils]: 11: Hoare triple {232#(and (bvugt (bvadd (bvmul |hanoi_#t~ret4| (_ bv2 32)) (_ bv2 32)) (_ bv0 32)) (= (bvadd (bvmul |hanoi_#t~ret4| (_ bv2 32)) (_ bv2 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {225#(and (bvugt (bvadd |hanoi_#res| (_ bv1 32)) (_ bv0 32)) (= (bvadd |hanoi_#res| (_ bv1 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} is VALID [2022-02-20 14:37:21,118 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {240#(forall ((|v_hanoi_#in~n_BEFORE_CALL_2| (_ BitVec 32))) (or (and (not (= (_ bv4 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_2|))) (= |hanoi_#in~n| (_ bv1 32))) (and (bvugt (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (_ bv0 32)) (= (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_2|)))))} {236#(or (= (_ bv4 32) (bvshl (_ bv1 32) |hanoi_#in~n|)) (not (= (bvadd (_ bv4294967295 32) hanoi_~n) (_ bv1 32))))} #30#return; {232#(and (bvugt (bvadd (bvmul |hanoi_#t~ret4| (_ bv2 32)) (_ bv2 32)) (_ bv0 32)) (= (bvadd (bvmul |hanoi_#t~ret4| (_ bv2 32)) (_ bv2 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} is VALID [2022-02-20 14:37:21,120 INFO L290 TraceCheckUtils]: 9: Hoare triple {240#(forall ((|v_hanoi_#in~n_BEFORE_CALL_2| (_ BitVec 32))) (or (and (not (= (_ bv4 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_2|))) (= |hanoi_#in~n| (_ bv1 32))) (and (bvugt (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (_ bv0 32)) (= (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_2|)))))} assume true; {240#(forall ((|v_hanoi_#in~n_BEFORE_CALL_2| (_ BitVec 32))) (or (and (not (= (_ bv4 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_2|))) (= |hanoi_#in~n| (_ bv1 32))) (and (bvugt (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (_ bv0 32)) (= (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_2|)))))} is VALID [2022-02-20 14:37:21,121 INFO L290 TraceCheckUtils]: 8: Hoare triple {247#(or (= |hanoi_#in~n| (_ bv1 32)) (not (= hanoi_~n (_ bv1 32))))} assume 1bv32 == ~n;#res := 1bv32; {240#(forall ((|v_hanoi_#in~n_BEFORE_CALL_2| (_ BitVec 32))) (or (and (not (= (_ bv4 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_2|))) (= |hanoi_#in~n| (_ bv1 32))) (and (bvugt (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (_ bv0 32)) (= (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_2|)))))} is VALID [2022-02-20 14:37:21,122 INFO L290 TraceCheckUtils]: 7: Hoare triple {151#true} ~n := #in~n; {247#(or (= |hanoi_#in~n| (_ bv1 32)) (not (= hanoi_~n (_ bv1 32))))} is VALID [2022-02-20 14:37:21,122 INFO L272 TraceCheckUtils]: 6: Hoare triple {236#(or (= (_ bv4 32) (bvshl (_ bv1 32) |hanoi_#in~n|)) (not (= (bvadd (_ bv4294967295 32) hanoi_~n) (_ bv1 32))))} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {151#true} is VALID [2022-02-20 14:37:21,123 INFO L290 TraceCheckUtils]: 5: Hoare triple {236#(or (= (_ bv4 32) (bvshl (_ bv1 32) |hanoi_#in~n|)) (not (= (bvadd (_ bv4294967295 32) hanoi_~n) (_ bv1 32))))} assume !(1bv32 == ~n); {236#(or (= (_ bv4 32) (bvshl (_ bv1 32) |hanoi_#in~n|)) (not (= (bvadd (_ bv4294967295 32) hanoi_~n) (_ bv1 32))))} is VALID [2022-02-20 14:37:21,123 INFO L290 TraceCheckUtils]: 4: Hoare triple {151#true} ~n := #in~n; {236#(or (= (_ bv4 32) (bvshl (_ bv1 32) |hanoi_#in~n|)) (not (= (bvadd (_ bv4294967295 32) hanoi_~n) (_ bv1 32))))} is VALID [2022-02-20 14:37:21,123 INFO L272 TraceCheckUtils]: 3: Hoare triple {151#true} call main_#t~ret6#1 := hanoi(main_~n~0#1); {151#true} is VALID [2022-02-20 14:37:21,124 INFO L290 TraceCheckUtils]: 2: Hoare triple {151#true} assume !~bvslt32(main_~n~0#1, 1bv32); {151#true} is VALID [2022-02-20 14:37:21,124 INFO L290 TraceCheckUtils]: 1: Hoare triple {151#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet5#1, main_#t~ret6#1, main_~n~0#1, main_~result~0#1;main_~n~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; {151#true} is VALID [2022-02-20 14:37:21,124 INFO L290 TraceCheckUtils]: 0: Hoare triple {151#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(15bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {151#true} is VALID [2022-02-20 14:37:21,124 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2022-02-20 14:37:21,124 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 14:37:21,125 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [213922657] [2022-02-20 14:37:21,125 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [213922657] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 14:37:21,125 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 14:37:21,125 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 9] total 16 [2022-02-20 14:37:21,125 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2023088069] [2022-02-20 14:37:21,126 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 14:37:21,127 INFO L78 Accepts]: Start accepts. Automaton has has 16 states, 15 states have (on average 1.4666666666666666) internal successors, (22), 12 states have internal predecessors, (22), 4 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) Word has length 17 [2022-02-20 14:37:21,128 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 14:37:21,128 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 16 states, 15 states have (on average 1.4666666666666666) internal successors, (22), 12 states have internal predecessors, (22), 4 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 14:37:21,169 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 30 edges. 30 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 14:37:21,169 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 16 states [2022-02-20 14:37:21,169 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 14:37:21,170 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2022-02-20 14:37:21,170 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=197, Unknown=0, NotChecked=0, Total=240 [2022-02-20 14:37:21,171 INFO L87 Difference]: Start difference. First operand 16 states and 17 transitions. Second operand has 16 states, 15 states have (on average 1.4666666666666666) internal successors, (22), 12 states have internal predecessors, (22), 4 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 14:37:21,770 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 14:37:21,770 INFO L93 Difference]: Finished difference Result 28 states and 30 transitions. [2022-02-20 14:37:21,771 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-02-20 14:37:21,771 INFO L78 Accepts]: Start accepts. Automaton has has 16 states, 15 states have (on average 1.4666666666666666) internal successors, (22), 12 states have internal predecessors, (22), 4 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) Word has length 17 [2022-02-20 14:37:21,771 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 14:37:21,771 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 15 states have (on average 1.4666666666666666) internal successors, (22), 12 states have internal predecessors, (22), 4 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 14:37:21,773 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 30 transitions. [2022-02-20 14:37:21,774 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 15 states have (on average 1.4666666666666666) internal successors, (22), 12 states have internal predecessors, (22), 4 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 14:37:21,778 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 30 transitions. [2022-02-20 14:37:21,779 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states and 30 transitions. [2022-02-20 14:37:21,822 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 30 edges. 30 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 14:37:21,823 INFO L225 Difference]: With dead ends: 28 [2022-02-20 14:37:21,823 INFO L226 Difference]: Without dead ends: 22 [2022-02-20 14:37:21,824 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 39 GetRequests, 18 SyntacticMatches, 0 SemanticMatches, 21 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 64 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=90, Invalid=416, Unknown=0, NotChecked=0, Total=506 [2022-02-20 14:37:21,825 INFO L933 BasicCegarLoop]: 9 mSDtfsCounter, 22 mSDsluCounter, 48 mSDsCounter, 0 mSdLazyCounter, 94 mSolverCounterSat, 18 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 29 SdHoareTripleChecker+Valid, 57 SdHoareTripleChecker+Invalid, 121 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 18 IncrementalHoareTripleChecker+Valid, 94 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 9 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-02-20 14:37:21,825 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [29 Valid, 57 Invalid, 121 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [18 Valid, 94 Invalid, 0 Unknown, 9 Unchecked, 0.2s Time] [2022-02-20 14:37:21,826 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 22 states. [2022-02-20 14:37:21,828 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 22 to 22. [2022-02-20 14:37:21,828 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 14:37:21,828 INFO L82 GeneralOperation]: Start isEquivalent. First operand 22 states. Second operand has 22 states, 15 states have (on average 1.0666666666666667) internal successors, (16), 16 states have internal predecessors, (16), 2 states have call successors, (2), 1 states have call predecessors, (2), 4 states have return successors, (5), 4 states have call predecessors, (5), 2 states have call successors, (5) [2022-02-20 14:37:21,828 INFO L74 IsIncluded]: Start isIncluded. First operand 22 states. Second operand has 22 states, 15 states have (on average 1.0666666666666667) internal successors, (16), 16 states have internal predecessors, (16), 2 states have call successors, (2), 1 states have call predecessors, (2), 4 states have return successors, (5), 4 states have call predecessors, (5), 2 states have call successors, (5) [2022-02-20 14:37:21,829 INFO L87 Difference]: Start difference. First operand 22 states. Second operand has 22 states, 15 states have (on average 1.0666666666666667) internal successors, (16), 16 states have internal predecessors, (16), 2 states have call successors, (2), 1 states have call predecessors, (2), 4 states have return successors, (5), 4 states have call predecessors, (5), 2 states have call successors, (5) [2022-02-20 14:37:21,830 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 14:37:21,830 INFO L93 Difference]: Finished difference Result 22 states and 23 transitions. [2022-02-20 14:37:21,830 INFO L276 IsEmpty]: Start isEmpty. Operand 22 states and 23 transitions. [2022-02-20 14:37:21,830 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 14:37:21,831 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 14:37:21,831 INFO L74 IsIncluded]: Start isIncluded. First operand has 22 states, 15 states have (on average 1.0666666666666667) internal successors, (16), 16 states have internal predecessors, (16), 2 states have call successors, (2), 1 states have call predecessors, (2), 4 states have return successors, (5), 4 states have call predecessors, (5), 2 states have call successors, (5) Second operand 22 states. [2022-02-20 14:37:21,831 INFO L87 Difference]: Start difference. First operand has 22 states, 15 states have (on average 1.0666666666666667) internal successors, (16), 16 states have internal predecessors, (16), 2 states have call successors, (2), 1 states have call predecessors, (2), 4 states have return successors, (5), 4 states have call predecessors, (5), 2 states have call successors, (5) Second operand 22 states. [2022-02-20 14:37:21,833 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 14:37:21,833 INFO L93 Difference]: Finished difference Result 22 states and 23 transitions. [2022-02-20 14:37:21,834 INFO L276 IsEmpty]: Start isEmpty. Operand 22 states and 23 transitions. [2022-02-20 14:37:21,834 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 14:37:21,834 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 14:37:21,834 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 14:37:21,835 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 14:37:21,835 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 22 states, 15 states have (on average 1.0666666666666667) internal successors, (16), 16 states have internal predecessors, (16), 2 states have call successors, (2), 1 states have call predecessors, (2), 4 states have return successors, (5), 4 states have call predecessors, (5), 2 states have call successors, (5) [2022-02-20 14:37:21,837 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 23 transitions. [2022-02-20 14:37:21,837 INFO L78 Accepts]: Start accepts. Automaton has 22 states and 23 transitions. Word has length 17 [2022-02-20 14:37:21,837 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 14:37:21,837 INFO L470 AbstractCegarLoop]: Abstraction has 22 states and 23 transitions. [2022-02-20 14:37:21,838 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 16 states, 15 states have (on average 1.4666666666666666) internal successors, (22), 12 states have internal predecessors, (22), 4 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 14:37:21,838 INFO L276 IsEmpty]: Start isEmpty. Operand 22 states and 23 transitions. [2022-02-20 14:37:21,839 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 30 [2022-02-20 14:37:21,839 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 14:37:21,839 INFO L514 BasicCegarLoop]: trace histogram [4, 4, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 14:37:21,847 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (3)] Ended with exit code 0 [2022-02-20 14:37:22,047 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 14:37:22,048 INFO L402 AbstractCegarLoop]: === Iteration 3 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 14:37:22,048 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 14:37:22,049 INFO L85 PathProgramCache]: Analyzing trace with hash -491101836, now seen corresponding path program 2 times [2022-02-20 14:37:22,051 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 14:37:22,051 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1784039975] [2022-02-20 14:37:22,052 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-02-20 14:37:22,053 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 14:37:22,053 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 14:37:22,054 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 14:37:22,055 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (4)] Waiting until timeout for monitored process [2022-02-20 14:37:22,090 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-02-20 14:37:22,090 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-02-20 14:37:22,096 INFO L263 TraceCheckSpWp]: Trace formula consists of 51 conjuncts, 20 conjunts are in the unsatisfiable core [2022-02-20 14:37:22,109 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 14:37:22,110 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 14:37:22,391 INFO L290 TraceCheckUtils]: 0: Hoare triple {379#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(15bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {379#true} is VALID [2022-02-20 14:37:22,391 INFO L290 TraceCheckUtils]: 1: Hoare triple {379#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet5#1, main_#t~ret6#1, main_~n~0#1, main_~result~0#1;main_~n~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; {379#true} is VALID [2022-02-20 14:37:22,392 INFO L290 TraceCheckUtils]: 2: Hoare triple {379#true} assume !~bvslt32(main_~n~0#1, 1bv32); {390#(not (bvslt |ULTIMATE.start_main_~n~0#1| (_ bv1 32)))} is VALID [2022-02-20 14:37:22,392 INFO L272 TraceCheckUtils]: 3: Hoare triple {390#(not (bvslt |ULTIMATE.start_main_~n~0#1| (_ bv1 32)))} call main_#t~ret6#1 := hanoi(main_~n~0#1); {379#true} is VALID [2022-02-20 14:37:22,394 INFO L290 TraceCheckUtils]: 4: Hoare triple {379#true} ~n := #in~n; {397#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:22,395 INFO L290 TraceCheckUtils]: 5: Hoare triple {397#(= |hanoi_#in~n| hanoi_~n)} assume !(1bv32 == ~n); {397#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:22,395 INFO L272 TraceCheckUtils]: 6: Hoare triple {397#(= |hanoi_#in~n| hanoi_~n)} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {379#true} is VALID [2022-02-20 14:37:22,396 INFO L290 TraceCheckUtils]: 7: Hoare triple {379#true} ~n := #in~n; {397#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:22,396 INFO L290 TraceCheckUtils]: 8: Hoare triple {397#(= |hanoi_#in~n| hanoi_~n)} assume !(1bv32 == ~n); {397#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:22,396 INFO L272 TraceCheckUtils]: 9: Hoare triple {397#(= |hanoi_#in~n| hanoi_~n)} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {379#true} is VALID [2022-02-20 14:37:22,397 INFO L290 TraceCheckUtils]: 10: Hoare triple {379#true} ~n := #in~n; {397#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:22,398 INFO L290 TraceCheckUtils]: 11: Hoare triple {397#(= |hanoi_#in~n| hanoi_~n)} assume !(1bv32 == ~n); {397#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:22,399 INFO L272 TraceCheckUtils]: 12: Hoare triple {397#(= |hanoi_#in~n| hanoi_~n)} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {379#true} is VALID [2022-02-20 14:37:22,403 INFO L290 TraceCheckUtils]: 13: Hoare triple {379#true} ~n := #in~n; {397#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:22,404 INFO L290 TraceCheckUtils]: 14: Hoare triple {397#(= |hanoi_#in~n| hanoi_~n)} assume 1bv32 == ~n;#res := 1bv32; {428#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} is VALID [2022-02-20 14:37:22,404 INFO L290 TraceCheckUtils]: 15: Hoare triple {428#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} assume true; {428#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} is VALID [2022-02-20 14:37:22,405 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {428#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} {397#(= |hanoi_#in~n| hanoi_~n)} #30#return; {435#(and (= |hanoi_#t~ret4| (_ bv1 32)) (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)))} is VALID [2022-02-20 14:37:22,406 INFO L290 TraceCheckUtils]: 17: Hoare triple {435#(and (= |hanoi_#t~ret4| (_ bv1 32)) (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {439#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)) (= (_ bv3 32) |hanoi_#res|))} is VALID [2022-02-20 14:37:22,406 INFO L290 TraceCheckUtils]: 18: Hoare triple {439#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)) (= (_ bv3 32) |hanoi_#res|))} assume true; {439#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)) (= (_ bv3 32) |hanoi_#res|))} is VALID [2022-02-20 14:37:22,407 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {439#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)) (= (_ bv3 32) |hanoi_#res|))} {397#(= |hanoi_#in~n| hanoi_~n)} #30#return; {446#(and (= |hanoi_#t~ret4| (_ bv3 32)) (= |hanoi_#in~n| (_ bv3 32)))} is VALID [2022-02-20 14:37:22,408 INFO L290 TraceCheckUtils]: 20: Hoare triple {446#(and (= |hanoi_#t~ret4| (_ bv3 32)) (= |hanoi_#in~n| (_ bv3 32)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {450#(and (= |hanoi_#in~n| (_ bv3 32)) (= |hanoi_#res| (_ bv7 32)))} is VALID [2022-02-20 14:37:22,409 INFO L290 TraceCheckUtils]: 21: Hoare triple {450#(and (= |hanoi_#in~n| (_ bv3 32)) (= |hanoi_#res| (_ bv7 32)))} assume true; {450#(and (= |hanoi_#in~n| (_ bv3 32)) (= |hanoi_#res| (_ bv7 32)))} is VALID [2022-02-20 14:37:22,410 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {450#(and (= |hanoi_#in~n| (_ bv3 32)) (= |hanoi_#res| (_ bv7 32)))} {397#(= |hanoi_#in~n| hanoi_~n)} #30#return; {457#(and (= |hanoi_#t~ret4| (_ bv7 32)) (= |hanoi_#in~n| (_ bv4 32)))} is VALID [2022-02-20 14:37:22,410 INFO L290 TraceCheckUtils]: 23: Hoare triple {457#(and (= |hanoi_#t~ret4| (_ bv7 32)) (= |hanoi_#in~n| (_ bv4 32)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {461#(and (= |hanoi_#res| (_ bv15 32)) (= |hanoi_#in~n| (_ bv4 32)))} is VALID [2022-02-20 14:37:22,411 INFO L290 TraceCheckUtils]: 24: Hoare triple {461#(and (= |hanoi_#res| (_ bv15 32)) (= |hanoi_#in~n| (_ bv4 32)))} assume true; {461#(and (= |hanoi_#res| (_ bv15 32)) (= |hanoi_#in~n| (_ bv4 32)))} is VALID [2022-02-20 14:37:22,412 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {461#(and (= |hanoi_#res| (_ bv15 32)) (= |hanoi_#in~n| (_ bv4 32)))} {390#(not (bvslt |ULTIMATE.start_main_~n~0#1| (_ bv1 32)))} #32#return; {468#(and (= (_ bv15 32) |ULTIMATE.start_main_#t~ret6#1|) (= (_ bv4 32) |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 14:37:22,412 INFO L290 TraceCheckUtils]: 26: Hoare triple {468#(and (= (_ bv15 32) |ULTIMATE.start_main_#t~ret6#1|) (= (_ bv4 32) |ULTIMATE.start_main_~n~0#1|))} main_~result~0#1 := main_#t~ret6#1;havoc main_#t~ret6#1; {472#(and (= |ULTIMATE.start_main_~result~0#1| (_ bv15 32)) (= (_ bv4 32) |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 14:37:22,413 INFO L290 TraceCheckUtils]: 27: Hoare triple {472#(and (= |ULTIMATE.start_main_~result~0#1| (_ bv15 32)) (= (_ bv4 32) |ULTIMATE.start_main_~n~0#1|))} assume !(~bvugt32(~bvadd32(1bv32, main_~result~0#1), 0bv32) && ~bvadd32(1bv32, main_~result~0#1) == ~bvshl32(1bv32, main_~n~0#1)); {380#false} is VALID [2022-02-20 14:37:22,413 INFO L290 TraceCheckUtils]: 28: Hoare triple {380#false} assume !false; {380#false} is VALID [2022-02-20 14:37:22,414 INFO L134 CoverageAnalysis]: Checked inductivity of 30 backedges. 0 proven. 15 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-02-20 14:37:22,414 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 14:37:24,560 INFO L290 TraceCheckUtils]: 28: Hoare triple {380#false} assume !false; {380#false} is VALID [2022-02-20 14:37:24,561 INFO L290 TraceCheckUtils]: 27: Hoare triple {482#(and (= (bvadd |ULTIMATE.start_main_~result~0#1| (_ bv1 32)) (bvshl (_ bv1 32) |ULTIMATE.start_main_~n~0#1|)) (bvugt (bvadd |ULTIMATE.start_main_~result~0#1| (_ bv1 32)) (_ bv0 32)))} assume !(~bvugt32(~bvadd32(1bv32, main_~result~0#1), 0bv32) && ~bvadd32(1bv32, main_~result~0#1) == ~bvshl32(1bv32, main_~n~0#1)); {380#false} is VALID [2022-02-20 14:37:24,561 INFO L290 TraceCheckUtils]: 26: Hoare triple {486#(and (bvugt (bvadd (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|) (_ bv0 32)) (= (bvadd (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|) (bvshl (_ bv1 32) |ULTIMATE.start_main_~n~0#1|)))} main_~result~0#1 := main_#t~ret6#1;havoc main_#t~ret6#1; {482#(and (= (bvadd |ULTIMATE.start_main_~result~0#1| (_ bv1 32)) (bvshl (_ bv1 32) |ULTIMATE.start_main_~n~0#1|)) (bvugt (bvadd |ULTIMATE.start_main_~result~0#1| (_ bv1 32)) (_ bv0 32)))} is VALID [2022-02-20 14:37:24,562 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {493#(and (bvugt (bvadd |hanoi_#res| (_ bv1 32)) (_ bv0 32)) (= (bvadd |hanoi_#res| (_ bv1 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} {379#true} #32#return; {486#(and (bvugt (bvadd (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|) (_ bv0 32)) (= (bvadd (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|) (bvshl (_ bv1 32) |ULTIMATE.start_main_~n~0#1|)))} is VALID [2022-02-20 14:37:24,563 INFO L290 TraceCheckUtils]: 24: Hoare triple {493#(and (bvugt (bvadd |hanoi_#res| (_ bv1 32)) (_ bv0 32)) (= (bvadd |hanoi_#res| (_ bv1 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} assume true; {493#(and (bvugt (bvadd |hanoi_#res| (_ bv1 32)) (_ bv0 32)) (= (bvadd |hanoi_#res| (_ bv1 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} is VALID [2022-02-20 14:37:24,569 INFO L290 TraceCheckUtils]: 23: Hoare triple {500#(and (bvugt (bvadd (bvmul |hanoi_#t~ret4| (_ bv2 32)) (_ bv2 32)) (_ bv0 32)) (= (bvadd (bvmul |hanoi_#t~ret4| (_ bv2 32)) (_ bv2 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {493#(and (bvugt (bvadd |hanoi_#res| (_ bv1 32)) (_ bv0 32)) (= (bvadd |hanoi_#res| (_ bv1 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} is VALID [2022-02-20 14:37:24,578 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {508#(forall ((|v_hanoi_#in~n_BEFORE_CALL_6| (_ BitVec 32))) (or (and (bvugt (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|) (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)))) (and (not (= (_ bv16 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|))) (= |hanoi_#in~n| (_ bv3 32)))))} {504#(or (= (_ bv16 32) (bvshl (_ bv1 32) |hanoi_#in~n|)) (not (= (_ bv3 32) (bvadd (_ bv4294967295 32) hanoi_~n))))} #30#return; {500#(and (bvugt (bvadd (bvmul |hanoi_#t~ret4| (_ bv2 32)) (_ bv2 32)) (_ bv0 32)) (= (bvadd (bvmul |hanoi_#t~ret4| (_ bv2 32)) (_ bv2 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} is VALID [2022-02-20 14:37:24,587 INFO L290 TraceCheckUtils]: 21: Hoare triple {508#(forall ((|v_hanoi_#in~n_BEFORE_CALL_6| (_ BitVec 32))) (or (and (bvugt (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|) (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)))) (and (not (= (_ bv16 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|))) (= |hanoi_#in~n| (_ bv3 32)))))} assume true; {508#(forall ((|v_hanoi_#in~n_BEFORE_CALL_6| (_ BitVec 32))) (or (and (bvugt (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|) (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)))) (and (not (= (_ bv16 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|))) (= |hanoi_#in~n| (_ bv3 32)))))} is VALID [2022-02-20 14:37:24,600 INFO L290 TraceCheckUtils]: 20: Hoare triple {515#(forall ((|v_hanoi_#in~n_BEFORE_CALL_6| (_ BitVec 32))) (or (and (not (= (_ bv16 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|))) (= |hanoi_#in~n| (_ bv3 32))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|) (bvadd (_ bv4 32) (bvmul |hanoi_#t~ret4| (_ bv4 32)))) (bvugt (bvadd (_ bv4 32) (bvmul |hanoi_#t~ret4| (_ bv4 32))) (_ bv0 32)))))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {508#(forall ((|v_hanoi_#in~n_BEFORE_CALL_6| (_ BitVec 32))) (or (and (bvugt (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|) (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)))) (and (not (= (_ bv16 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|))) (= |hanoi_#in~n| (_ bv3 32)))))} is VALID [2022-02-20 14:37:24,607 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {523#(forall ((|v_hanoi_#in~n_BEFORE_CALL_6| (_ BitVec 32))) (or (and (= (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|)) (bvugt (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (_ bv0 32))) (and (not (= (_ bv16 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|))) (= |hanoi_#in~n| (_ bv2 32)))))} {519#(or (not (= hanoi_~n (_ bv3 32))) (= |hanoi_#in~n| (_ bv3 32)))} #30#return; {515#(forall ((|v_hanoi_#in~n_BEFORE_CALL_6| (_ BitVec 32))) (or (and (not (= (_ bv16 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|))) (= |hanoi_#in~n| (_ bv3 32))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|) (bvadd (_ bv4 32) (bvmul |hanoi_#t~ret4| (_ bv4 32)))) (bvugt (bvadd (_ bv4 32) (bvmul |hanoi_#t~ret4| (_ bv4 32))) (_ bv0 32)))))} is VALID [2022-02-20 14:37:24,610 INFO L290 TraceCheckUtils]: 18: Hoare triple {523#(forall ((|v_hanoi_#in~n_BEFORE_CALL_6| (_ BitVec 32))) (or (and (= (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|)) (bvugt (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (_ bv0 32))) (and (not (= (_ bv16 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|))) (= |hanoi_#in~n| (_ bv2 32)))))} assume true; {523#(forall ((|v_hanoi_#in~n_BEFORE_CALL_6| (_ BitVec 32))) (or (and (= (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|)) (bvugt (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (_ bv0 32))) (and (not (= (_ bv16 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|))) (= |hanoi_#in~n| (_ bv2 32)))))} is VALID [2022-02-20 14:37:24,615 INFO L290 TraceCheckUtils]: 17: Hoare triple {530#(forall ((|v_hanoi_#in~n_BEFORE_CALL_6| (_ BitVec 32))) (or (and (bvugt (bvadd (_ bv8 32) (bvmul |hanoi_#t~ret4| (_ bv8 32))) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|) (bvadd (_ bv8 32) (bvmul |hanoi_#t~ret4| (_ bv8 32))))) (and (not (= (_ bv16 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|))) (= |hanoi_#in~n| (_ bv2 32)))))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {523#(forall ((|v_hanoi_#in~n_BEFORE_CALL_6| (_ BitVec 32))) (or (and (= (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|)) (bvugt (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (_ bv0 32))) (and (not (= (_ bv16 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|))) (= |hanoi_#in~n| (_ bv2 32)))))} is VALID [2022-02-20 14:37:24,618 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {538#(forall ((|v_hanoi_#in~n_BEFORE_CALL_6| (_ BitVec 32))) (or (and (not (= (_ bv16 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|))) (= |hanoi_#in~n| (_ bv1 32))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|) (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32))) (bvugt (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32)) (_ bv0 32)))))} {534#(or (not (= hanoi_~n (_ bv2 32))) (= |hanoi_#in~n| (_ bv2 32)))} #30#return; {530#(forall ((|v_hanoi_#in~n_BEFORE_CALL_6| (_ BitVec 32))) (or (and (bvugt (bvadd (_ bv8 32) (bvmul |hanoi_#t~ret4| (_ bv8 32))) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|) (bvadd (_ bv8 32) (bvmul |hanoi_#t~ret4| (_ bv8 32))))) (and (not (= (_ bv16 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|))) (= |hanoi_#in~n| (_ bv2 32)))))} is VALID [2022-02-20 14:37:24,626 INFO L290 TraceCheckUtils]: 15: Hoare triple {538#(forall ((|v_hanoi_#in~n_BEFORE_CALL_6| (_ BitVec 32))) (or (and (not (= (_ bv16 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|))) (= |hanoi_#in~n| (_ bv1 32))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|) (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32))) (bvugt (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32)) (_ bv0 32)))))} assume true; {538#(forall ((|v_hanoi_#in~n_BEFORE_CALL_6| (_ BitVec 32))) (or (and (not (= (_ bv16 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|))) (= |hanoi_#in~n| (_ bv1 32))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|) (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32))) (bvugt (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32)) (_ bv0 32)))))} is VALID [2022-02-20 14:37:24,628 INFO L290 TraceCheckUtils]: 14: Hoare triple {545#(or (= |hanoi_#in~n| (_ bv1 32)) (not (= hanoi_~n (_ bv1 32))))} assume 1bv32 == ~n;#res := 1bv32; {538#(forall ((|v_hanoi_#in~n_BEFORE_CALL_6| (_ BitVec 32))) (or (and (not (= (_ bv16 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|))) (= |hanoi_#in~n| (_ bv1 32))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_6|) (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32))) (bvugt (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32)) (_ bv0 32)))))} is VALID [2022-02-20 14:37:24,630 INFO L290 TraceCheckUtils]: 13: Hoare triple {379#true} ~n := #in~n; {545#(or (= |hanoi_#in~n| (_ bv1 32)) (not (= hanoi_~n (_ bv1 32))))} is VALID [2022-02-20 14:37:24,630 INFO L272 TraceCheckUtils]: 12: Hoare triple {534#(or (not (= hanoi_~n (_ bv2 32))) (= |hanoi_#in~n| (_ bv2 32)))} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {379#true} is VALID [2022-02-20 14:37:24,630 INFO L290 TraceCheckUtils]: 11: Hoare triple {534#(or (not (= hanoi_~n (_ bv2 32))) (= |hanoi_#in~n| (_ bv2 32)))} assume !(1bv32 == ~n); {534#(or (not (= hanoi_~n (_ bv2 32))) (= |hanoi_#in~n| (_ bv2 32)))} is VALID [2022-02-20 14:37:24,631 INFO L290 TraceCheckUtils]: 10: Hoare triple {379#true} ~n := #in~n; {534#(or (not (= hanoi_~n (_ bv2 32))) (= |hanoi_#in~n| (_ bv2 32)))} is VALID [2022-02-20 14:37:24,631 INFO L272 TraceCheckUtils]: 9: Hoare triple {519#(or (not (= hanoi_~n (_ bv3 32))) (= |hanoi_#in~n| (_ bv3 32)))} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {379#true} is VALID [2022-02-20 14:37:24,635 INFO L290 TraceCheckUtils]: 8: Hoare triple {519#(or (not (= hanoi_~n (_ bv3 32))) (= |hanoi_#in~n| (_ bv3 32)))} assume !(1bv32 == ~n); {519#(or (not (= hanoi_~n (_ bv3 32))) (= |hanoi_#in~n| (_ bv3 32)))} is VALID [2022-02-20 14:37:24,636 INFO L290 TraceCheckUtils]: 7: Hoare triple {379#true} ~n := #in~n; {519#(or (not (= hanoi_~n (_ bv3 32))) (= |hanoi_#in~n| (_ bv3 32)))} is VALID [2022-02-20 14:37:24,636 INFO L272 TraceCheckUtils]: 6: Hoare triple {504#(or (= (_ bv16 32) (bvshl (_ bv1 32) |hanoi_#in~n|)) (not (= (_ bv3 32) (bvadd (_ bv4294967295 32) hanoi_~n))))} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {379#true} is VALID [2022-02-20 14:37:24,637 INFO L290 TraceCheckUtils]: 5: Hoare triple {504#(or (= (_ bv16 32) (bvshl (_ bv1 32) |hanoi_#in~n|)) (not (= (_ bv3 32) (bvadd (_ bv4294967295 32) hanoi_~n))))} assume !(1bv32 == ~n); {504#(or (= (_ bv16 32) (bvshl (_ bv1 32) |hanoi_#in~n|)) (not (= (_ bv3 32) (bvadd (_ bv4294967295 32) hanoi_~n))))} is VALID [2022-02-20 14:37:24,637 INFO L290 TraceCheckUtils]: 4: Hoare triple {379#true} ~n := #in~n; {504#(or (= (_ bv16 32) (bvshl (_ bv1 32) |hanoi_#in~n|)) (not (= (_ bv3 32) (bvadd (_ bv4294967295 32) hanoi_~n))))} is VALID [2022-02-20 14:37:24,637 INFO L272 TraceCheckUtils]: 3: Hoare triple {379#true} call main_#t~ret6#1 := hanoi(main_~n~0#1); {379#true} is VALID [2022-02-20 14:37:24,637 INFO L290 TraceCheckUtils]: 2: Hoare triple {379#true} assume !~bvslt32(main_~n~0#1, 1bv32); {379#true} is VALID [2022-02-20 14:37:24,638 INFO L290 TraceCheckUtils]: 1: Hoare triple {379#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet5#1, main_#t~ret6#1, main_~n~0#1, main_~result~0#1;main_~n~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; {379#true} is VALID [2022-02-20 14:37:24,638 INFO L290 TraceCheckUtils]: 0: Hoare triple {379#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(15bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {379#true} is VALID [2022-02-20 14:37:24,638 INFO L134 CoverageAnalysis]: Checked inductivity of 30 backedges. 0 proven. 24 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-02-20 14:37:24,638 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 14:37:24,639 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1784039975] [2022-02-20 14:37:24,639 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [1784039975] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 14:37:24,639 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 14:37:24,639 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 15] total 26 [2022-02-20 14:37:24,639 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1891434822] [2022-02-20 14:37:24,639 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 14:37:24,640 INFO L78 Accepts]: Start accepts. Automaton has has 26 states, 25 states have (on average 1.36) internal successors, (34), 18 states have internal predecessors, (34), 6 states have call successors, (6), 1 states have call predecessors, (6), 8 states have return successors, (8), 8 states have call predecessors, (8), 6 states have call successors, (8) Word has length 29 [2022-02-20 14:37:24,647 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 14:37:24,647 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 26 states, 25 states have (on average 1.36) internal successors, (34), 18 states have internal predecessors, (34), 6 states have call successors, (6), 1 states have call predecessors, (6), 8 states have return successors, (8), 8 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 14:37:24,754 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 14:37:24,754 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 26 states [2022-02-20 14:37:24,754 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 14:37:24,755 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 26 interpolants. [2022-02-20 14:37:24,755 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=81, Invalid=569, Unknown=0, NotChecked=0, Total=650 [2022-02-20 14:37:24,756 INFO L87 Difference]: Start difference. First operand 22 states and 23 transitions. Second operand has 26 states, 25 states have (on average 1.36) internal successors, (34), 18 states have internal predecessors, (34), 6 states have call successors, (6), 1 states have call predecessors, (6), 8 states have return successors, (8), 8 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 14:37:25,497 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 14:37:25,498 INFO L93 Difference]: Finished difference Result 34 states and 36 transitions. [2022-02-20 14:37:25,498 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2022-02-20 14:37:25,498 INFO L78 Accepts]: Start accepts. Automaton has has 26 states, 25 states have (on average 1.36) internal successors, (34), 18 states have internal predecessors, (34), 6 states have call successors, (6), 1 states have call predecessors, (6), 8 states have return successors, (8), 8 states have call predecessors, (8), 6 states have call successors, (8) Word has length 29 [2022-02-20 14:37:25,499 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 14:37:25,499 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 26 states, 25 states have (on average 1.36) internal successors, (34), 18 states have internal predecessors, (34), 6 states have call successors, (6), 1 states have call predecessors, (6), 8 states have return successors, (8), 8 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 14:37:25,501 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 36 transitions. [2022-02-20 14:37:25,502 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 26 states, 25 states have (on average 1.36) internal successors, (34), 18 states have internal predecessors, (34), 6 states have call successors, (6), 1 states have call predecessors, (6), 8 states have return successors, (8), 8 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 14:37:25,504 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 36 transitions. [2022-02-20 14:37:25,504 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 17 states and 36 transitions. [2022-02-20 14:37:25,549 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 36 edges. 36 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 14:37:25,550 INFO L225 Difference]: With dead ends: 34 [2022-02-20 14:37:25,550 INFO L226 Difference]: Without dead ends: 28 [2022-02-20 14:37:25,551 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 67 GetRequests, 32 SyntacticMatches, 0 SemanticMatches, 35 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 172 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=182, Invalid=1150, Unknown=0, NotChecked=0, Total=1332 [2022-02-20 14:37:25,552 INFO L933 BasicCegarLoop]: 11 mSDtfsCounter, 20 mSDsluCounter, 91 mSDsCounter, 0 mSdLazyCounter, 113 mSolverCounterSat, 20 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 29 SdHoareTripleChecker+Valid, 102 SdHoareTripleChecker+Invalid, 203 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 20 IncrementalHoareTripleChecker+Valid, 113 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 70 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-02-20 14:37:25,552 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [29 Valid, 102 Invalid, 203 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [20 Valid, 113 Invalid, 0 Unknown, 70 Unchecked, 0.2s Time] [2022-02-20 14:37:25,553 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 28 states. [2022-02-20 14:37:25,556 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 28 to 28. [2022-02-20 14:37:25,556 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 14:37:25,557 INFO L82 GeneralOperation]: Start isEquivalent. First operand 28 states. Second operand has 28 states, 19 states have (on average 1.0526315789473684) internal successors, (20), 20 states have internal predecessors, (20), 2 states have call successors, (2), 1 states have call predecessors, (2), 6 states have return successors, (7), 6 states have call predecessors, (7), 2 states have call successors, (7) [2022-02-20 14:37:25,557 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand has 28 states, 19 states have (on average 1.0526315789473684) internal successors, (20), 20 states have internal predecessors, (20), 2 states have call successors, (2), 1 states have call predecessors, (2), 6 states have return successors, (7), 6 states have call predecessors, (7), 2 states have call successors, (7) [2022-02-20 14:37:25,557 INFO L87 Difference]: Start difference. First operand 28 states. Second operand has 28 states, 19 states have (on average 1.0526315789473684) internal successors, (20), 20 states have internal predecessors, (20), 2 states have call successors, (2), 1 states have call predecessors, (2), 6 states have return successors, (7), 6 states have call predecessors, (7), 2 states have call successors, (7) [2022-02-20 14:37:25,559 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 14:37:25,559 INFO L93 Difference]: Finished difference Result 28 states and 29 transitions. [2022-02-20 14:37:25,560 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 29 transitions. [2022-02-20 14:37:25,560 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 14:37:25,560 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 14:37:25,561 INFO L74 IsIncluded]: Start isIncluded. First operand has 28 states, 19 states have (on average 1.0526315789473684) internal successors, (20), 20 states have internal predecessors, (20), 2 states have call successors, (2), 1 states have call predecessors, (2), 6 states have return successors, (7), 6 states have call predecessors, (7), 2 states have call successors, (7) Second operand 28 states. [2022-02-20 14:37:25,561 INFO L87 Difference]: Start difference. First operand has 28 states, 19 states have (on average 1.0526315789473684) internal successors, (20), 20 states have internal predecessors, (20), 2 states have call successors, (2), 1 states have call predecessors, (2), 6 states have return successors, (7), 6 states have call predecessors, (7), 2 states have call successors, (7) Second operand 28 states. [2022-02-20 14:37:25,563 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 14:37:25,563 INFO L93 Difference]: Finished difference Result 28 states and 29 transitions. [2022-02-20 14:37:25,563 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 29 transitions. [2022-02-20 14:37:25,564 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 14:37:25,564 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 14:37:25,564 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 14:37:25,564 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 14:37:25,565 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 28 states, 19 states have (on average 1.0526315789473684) internal successors, (20), 20 states have internal predecessors, (20), 2 states have call successors, (2), 1 states have call predecessors, (2), 6 states have return successors, (7), 6 states have call predecessors, (7), 2 states have call successors, (7) [2022-02-20 14:37:25,566 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 29 transitions. [2022-02-20 14:37:25,566 INFO L78 Accepts]: Start accepts. Automaton has 28 states and 29 transitions. Word has length 29 [2022-02-20 14:37:25,567 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 14:37:25,567 INFO L470 AbstractCegarLoop]: Abstraction has 28 states and 29 transitions. [2022-02-20 14:37:25,567 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 26 states, 25 states have (on average 1.36) internal successors, (34), 18 states have internal predecessors, (34), 6 states have call successors, (6), 1 states have call predecessors, (6), 8 states have return successors, (8), 8 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 14:37:25,567 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 29 transitions. [2022-02-20 14:37:25,568 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2022-02-20 14:37:25,568 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 14:37:25,568 INFO L514 BasicCegarLoop]: trace histogram [6, 6, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 14:37:25,582 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (4)] Forceful destruction successful, exit code 0 [2022-02-20 14:37:25,777 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 4 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 14:37:25,777 INFO L402 AbstractCegarLoop]: === Iteration 4 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 14:37:25,778 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 14:37:25,778 INFO L85 PathProgramCache]: Analyzing trace with hash -492655308, now seen corresponding path program 3 times [2022-02-20 14:37:25,778 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 14:37:25,779 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [70878919] [2022-02-20 14:37:25,779 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2022-02-20 14:37:25,779 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 14:37:25,779 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 14:37:25,780 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 14:37:25,782 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (5)] Waiting until timeout for monitored process [2022-02-20 14:37:25,814 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 6 check-sat command(s) [2022-02-20 14:37:25,814 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-02-20 14:37:25,816 INFO L263 TraceCheckSpWp]: Trace formula consists of 67 conjuncts, 28 conjunts are in the unsatisfiable core [2022-02-20 14:37:25,829 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 14:37:25,830 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 14:37:26,255 INFO L290 TraceCheckUtils]: 0: Hoare triple {721#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(15bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {721#true} is VALID [2022-02-20 14:37:26,256 INFO L290 TraceCheckUtils]: 1: Hoare triple {721#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet5#1, main_#t~ret6#1, main_~n~0#1, main_~result~0#1;main_~n~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; {721#true} is VALID [2022-02-20 14:37:26,256 INFO L290 TraceCheckUtils]: 2: Hoare triple {721#true} assume !~bvslt32(main_~n~0#1, 1bv32); {732#(not (bvslt |ULTIMATE.start_main_~n~0#1| (_ bv1 32)))} is VALID [2022-02-20 14:37:26,256 INFO L272 TraceCheckUtils]: 3: Hoare triple {732#(not (bvslt |ULTIMATE.start_main_~n~0#1| (_ bv1 32)))} call main_#t~ret6#1 := hanoi(main_~n~0#1); {721#true} is VALID [2022-02-20 14:37:26,257 INFO L290 TraceCheckUtils]: 4: Hoare triple {721#true} ~n := #in~n; {739#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:26,257 INFO L290 TraceCheckUtils]: 5: Hoare triple {739#(= |hanoi_#in~n| hanoi_~n)} assume !(1bv32 == ~n); {739#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:26,257 INFO L272 TraceCheckUtils]: 6: Hoare triple {739#(= |hanoi_#in~n| hanoi_~n)} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {721#true} is VALID [2022-02-20 14:37:26,258 INFO L290 TraceCheckUtils]: 7: Hoare triple {721#true} ~n := #in~n; {739#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:26,258 INFO L290 TraceCheckUtils]: 8: Hoare triple {739#(= |hanoi_#in~n| hanoi_~n)} assume !(1bv32 == ~n); {739#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:26,258 INFO L272 TraceCheckUtils]: 9: Hoare triple {739#(= |hanoi_#in~n| hanoi_~n)} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {721#true} is VALID [2022-02-20 14:37:26,259 INFO L290 TraceCheckUtils]: 10: Hoare triple {721#true} ~n := #in~n; {739#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:26,259 INFO L290 TraceCheckUtils]: 11: Hoare triple {739#(= |hanoi_#in~n| hanoi_~n)} assume !(1bv32 == ~n); {739#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:26,260 INFO L272 TraceCheckUtils]: 12: Hoare triple {739#(= |hanoi_#in~n| hanoi_~n)} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {721#true} is VALID [2022-02-20 14:37:26,260 INFO L290 TraceCheckUtils]: 13: Hoare triple {721#true} ~n := #in~n; {739#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:26,261 INFO L290 TraceCheckUtils]: 14: Hoare triple {739#(= |hanoi_#in~n| hanoi_~n)} assume !(1bv32 == ~n); {739#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:26,261 INFO L272 TraceCheckUtils]: 15: Hoare triple {739#(= |hanoi_#in~n| hanoi_~n)} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {721#true} is VALID [2022-02-20 14:37:26,262 INFO L290 TraceCheckUtils]: 16: Hoare triple {721#true} ~n := #in~n; {739#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:26,275 INFO L290 TraceCheckUtils]: 17: Hoare triple {739#(= |hanoi_#in~n| hanoi_~n)} assume !(1bv32 == ~n); {739#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:26,275 INFO L272 TraceCheckUtils]: 18: Hoare triple {739#(= |hanoi_#in~n| hanoi_~n)} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {721#true} is VALID [2022-02-20 14:37:26,279 INFO L290 TraceCheckUtils]: 19: Hoare triple {721#true} ~n := #in~n; {739#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:26,279 INFO L290 TraceCheckUtils]: 20: Hoare triple {739#(= |hanoi_#in~n| hanoi_~n)} assume 1bv32 == ~n;#res := 1bv32; {788#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} is VALID [2022-02-20 14:37:26,280 INFO L290 TraceCheckUtils]: 21: Hoare triple {788#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} assume true; {788#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} is VALID [2022-02-20 14:37:26,281 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {788#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} {739#(= |hanoi_#in~n| hanoi_~n)} #30#return; {795#(and (= |hanoi_#t~ret4| (_ bv1 32)) (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)))} is VALID [2022-02-20 14:37:26,281 INFO L290 TraceCheckUtils]: 23: Hoare triple {795#(and (= |hanoi_#t~ret4| (_ bv1 32)) (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {799#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)) (= (_ bv3 32) |hanoi_#res|))} is VALID [2022-02-20 14:37:26,282 INFO L290 TraceCheckUtils]: 24: Hoare triple {799#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)) (= (_ bv3 32) |hanoi_#res|))} assume true; {799#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)) (= (_ bv3 32) |hanoi_#res|))} is VALID [2022-02-20 14:37:26,283 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {799#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)) (= (_ bv3 32) |hanoi_#res|))} {739#(= |hanoi_#in~n| hanoi_~n)} #30#return; {806#(and (= (_ bv2 32) (bvadd |hanoi_#in~n| (_ bv4294967295 32))) (= |hanoi_#t~ret4| (_ bv3 32)))} is VALID [2022-02-20 14:37:26,283 INFO L290 TraceCheckUtils]: 26: Hoare triple {806#(and (= (_ bv2 32) (bvadd |hanoi_#in~n| (_ bv4294967295 32))) (= |hanoi_#t~ret4| (_ bv3 32)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {810#(and (= (_ bv2 32) (bvadd |hanoi_#in~n| (_ bv4294967295 32))) (= |hanoi_#res| (_ bv7 32)))} is VALID [2022-02-20 14:37:26,284 INFO L290 TraceCheckUtils]: 27: Hoare triple {810#(and (= (_ bv2 32) (bvadd |hanoi_#in~n| (_ bv4294967295 32))) (= |hanoi_#res| (_ bv7 32)))} assume true; {810#(and (= (_ bv2 32) (bvadd |hanoi_#in~n| (_ bv4294967295 32))) (= |hanoi_#res| (_ bv7 32)))} is VALID [2022-02-20 14:37:26,284 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {810#(and (= (_ bv2 32) (bvadd |hanoi_#in~n| (_ bv4294967295 32))) (= |hanoi_#res| (_ bv7 32)))} {739#(= |hanoi_#in~n| hanoi_~n)} #30#return; {817#(and (= |hanoi_#t~ret4| (_ bv7 32)) (= |hanoi_#in~n| (_ bv4 32)))} is VALID [2022-02-20 14:37:26,285 INFO L290 TraceCheckUtils]: 29: Hoare triple {817#(and (= |hanoi_#t~ret4| (_ bv7 32)) (= |hanoi_#in~n| (_ bv4 32)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {821#(and (= |hanoi_#res| (_ bv15 32)) (= |hanoi_#in~n| (_ bv4 32)))} is VALID [2022-02-20 14:37:26,285 INFO L290 TraceCheckUtils]: 30: Hoare triple {821#(and (= |hanoi_#res| (_ bv15 32)) (= |hanoi_#in~n| (_ bv4 32)))} assume true; {821#(and (= |hanoi_#res| (_ bv15 32)) (= |hanoi_#in~n| (_ bv4 32)))} is VALID [2022-02-20 14:37:26,286 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {821#(and (= |hanoi_#res| (_ bv15 32)) (= |hanoi_#in~n| (_ bv4 32)))} {739#(= |hanoi_#in~n| hanoi_~n)} #30#return; {828#(and (= |hanoi_#t~ret4| (_ bv15 32)) (= |hanoi_#in~n| (_ bv5 32)))} is VALID [2022-02-20 14:37:26,287 INFO L290 TraceCheckUtils]: 32: Hoare triple {828#(and (= |hanoi_#t~ret4| (_ bv15 32)) (= |hanoi_#in~n| (_ bv5 32)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {832#(and (= (_ bv31 32) |hanoi_#res|) (= |hanoi_#in~n| (_ bv5 32)))} is VALID [2022-02-20 14:37:26,287 INFO L290 TraceCheckUtils]: 33: Hoare triple {832#(and (= (_ bv31 32) |hanoi_#res|) (= |hanoi_#in~n| (_ bv5 32)))} assume true; {832#(and (= (_ bv31 32) |hanoi_#res|) (= |hanoi_#in~n| (_ bv5 32)))} is VALID [2022-02-20 14:37:26,288 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {832#(and (= (_ bv31 32) |hanoi_#res|) (= |hanoi_#in~n| (_ bv5 32)))} {739#(= |hanoi_#in~n| hanoi_~n)} #30#return; {839#(and (= |hanoi_#t~ret4| (_ bv31 32)) (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv5 32)))} is VALID [2022-02-20 14:37:26,289 INFO L290 TraceCheckUtils]: 35: Hoare triple {839#(and (= |hanoi_#t~ret4| (_ bv31 32)) (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv5 32)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {843#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv5 32)) (= |hanoi_#res| (_ bv63 32)))} is VALID [2022-02-20 14:37:26,289 INFO L290 TraceCheckUtils]: 36: Hoare triple {843#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv5 32)) (= |hanoi_#res| (_ bv63 32)))} assume true; {843#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv5 32)) (= |hanoi_#res| (_ bv63 32)))} is VALID [2022-02-20 14:37:26,290 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {843#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv5 32)) (= |hanoi_#res| (_ bv63 32)))} {732#(not (bvslt |ULTIMATE.start_main_~n~0#1| (_ bv1 32)))} #32#return; {850#(and (= (_ bv63 32) |ULTIMATE.start_main_#t~ret6#1|) (= |ULTIMATE.start_main_~n~0#1| (_ bv6 32)))} is VALID [2022-02-20 14:37:26,290 INFO L290 TraceCheckUtils]: 38: Hoare triple {850#(and (= (_ bv63 32) |ULTIMATE.start_main_#t~ret6#1|) (= |ULTIMATE.start_main_~n~0#1| (_ bv6 32)))} main_~result~0#1 := main_#t~ret6#1;havoc main_#t~ret6#1; {854#(and (= |ULTIMATE.start_main_~result~0#1| (_ bv63 32)) (= |ULTIMATE.start_main_~n~0#1| (_ bv6 32)))} is VALID [2022-02-20 14:37:26,291 INFO L290 TraceCheckUtils]: 39: Hoare triple {854#(and (= |ULTIMATE.start_main_~result~0#1| (_ bv63 32)) (= |ULTIMATE.start_main_~n~0#1| (_ bv6 32)))} assume !(~bvugt32(~bvadd32(1bv32, main_~result~0#1), 0bv32) && ~bvadd32(1bv32, main_~result~0#1) == ~bvshl32(1bv32, main_~n~0#1)); {722#false} is VALID [2022-02-20 14:37:26,291 INFO L290 TraceCheckUtils]: 40: Hoare triple {722#false} assume !false; {722#false} is VALID [2022-02-20 14:37:26,291 INFO L134 CoverageAnalysis]: Checked inductivity of 80 backedges. 0 proven. 40 refuted. 0 times theorem prover too weak. 40 trivial. 0 not checked. [2022-02-20 14:37:26,291 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 14:37:29,891 INFO L290 TraceCheckUtils]: 40: Hoare triple {722#false} assume !false; {722#false} is VALID [2022-02-20 14:37:29,892 INFO L290 TraceCheckUtils]: 39: Hoare triple {864#(and (= (bvadd |ULTIMATE.start_main_~result~0#1| (_ bv1 32)) (bvshl (_ bv1 32) |ULTIMATE.start_main_~n~0#1|)) (bvugt (bvadd |ULTIMATE.start_main_~result~0#1| (_ bv1 32)) (_ bv0 32)))} assume !(~bvugt32(~bvadd32(1bv32, main_~result~0#1), 0bv32) && ~bvadd32(1bv32, main_~result~0#1) == ~bvshl32(1bv32, main_~n~0#1)); {722#false} is VALID [2022-02-20 14:37:29,892 INFO L290 TraceCheckUtils]: 38: Hoare triple {868#(and (bvugt (bvadd (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|) (_ bv0 32)) (= (bvadd (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|) (bvshl (_ bv1 32) |ULTIMATE.start_main_~n~0#1|)))} main_~result~0#1 := main_#t~ret6#1;havoc main_#t~ret6#1; {864#(and (= (bvadd |ULTIMATE.start_main_~result~0#1| (_ bv1 32)) (bvshl (_ bv1 32) |ULTIMATE.start_main_~n~0#1|)) (bvugt (bvadd |ULTIMATE.start_main_~result~0#1| (_ bv1 32)) (_ bv0 32)))} is VALID [2022-02-20 14:37:29,893 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {875#(and (bvugt (bvadd |hanoi_#res| (_ bv1 32)) (_ bv0 32)) (= (bvadd |hanoi_#res| (_ bv1 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} {721#true} #32#return; {868#(and (bvugt (bvadd (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|) (_ bv0 32)) (= (bvadd (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|) (bvshl (_ bv1 32) |ULTIMATE.start_main_~n~0#1|)))} is VALID [2022-02-20 14:37:29,894 INFO L290 TraceCheckUtils]: 36: Hoare triple {875#(and (bvugt (bvadd |hanoi_#res| (_ bv1 32)) (_ bv0 32)) (= (bvadd |hanoi_#res| (_ bv1 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} assume true; {875#(and (bvugt (bvadd |hanoi_#res| (_ bv1 32)) (_ bv0 32)) (= (bvadd |hanoi_#res| (_ bv1 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} is VALID [2022-02-20 14:37:29,900 INFO L290 TraceCheckUtils]: 35: Hoare triple {882#(and (bvugt (bvadd (bvmul |hanoi_#t~ret4| (_ bv2 32)) (_ bv2 32)) (_ bv0 32)) (= (bvadd (bvmul |hanoi_#t~ret4| (_ bv2 32)) (_ bv2 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {875#(and (bvugt (bvadd |hanoi_#res| (_ bv1 32)) (_ bv0 32)) (= (bvadd |hanoi_#res| (_ bv1 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} is VALID [2022-02-20 14:37:29,907 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {890#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (bvugt (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)))) (and (= |hanoi_#in~n| (_ bv5 32)) (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))))))} {886#(or (not (= (bvadd (_ bv4294967295 32) hanoi_~n) (_ bv5 32))) (= (_ bv64 32) (bvshl (_ bv1 32) |hanoi_#in~n|)))} #30#return; {882#(and (bvugt (bvadd (bvmul |hanoi_#t~ret4| (_ bv2 32)) (_ bv2 32)) (_ bv0 32)) (= (bvadd (bvmul |hanoi_#t~ret4| (_ bv2 32)) (_ bv2 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} is VALID [2022-02-20 14:37:29,909 INFO L290 TraceCheckUtils]: 33: Hoare triple {890#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (bvugt (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)))) (and (= |hanoi_#in~n| (_ bv5 32)) (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))))))} assume true; {890#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (bvugt (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)))) (and (= |hanoi_#in~n| (_ bv5 32)) (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))))))} is VALID [2022-02-20 14:37:29,919 INFO L290 TraceCheckUtils]: 32: Hoare triple {897#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv5 32)) (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32)))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (_ bv4 32) (bvmul |hanoi_#t~ret4| (_ bv4 32)))) (bvugt (bvadd (_ bv4 32) (bvmul |hanoi_#t~ret4| (_ bv4 32))) (_ bv0 32)))))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {890#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (bvugt (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)))) (and (= |hanoi_#in~n| (_ bv5 32)) (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))))))} is VALID [2022-02-20 14:37:29,922 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {905#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv4 32)) (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32)))) (and (bvugt (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|))))))} {901#(or (not (= hanoi_~n (_ bv5 32))) (= |hanoi_#in~n| (_ bv5 32)))} #30#return; {897#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv5 32)) (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32)))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (_ bv4 32) (bvmul |hanoi_#t~ret4| (_ bv4 32)))) (bvugt (bvadd (_ bv4 32) (bvmul |hanoi_#t~ret4| (_ bv4 32))) (_ bv0 32)))))} is VALID [2022-02-20 14:37:29,924 INFO L290 TraceCheckUtils]: 30: Hoare triple {905#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv4 32)) (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32)))) (and (bvugt (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|))))))} assume true; {905#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv4 32)) (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32)))) (and (bvugt (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|))))))} is VALID [2022-02-20 14:37:29,932 INFO L290 TraceCheckUtils]: 29: Hoare triple {912#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv4 32)) (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32)))) (and (bvugt (bvadd (_ bv8 32) (bvmul |hanoi_#t~ret4| (_ bv8 32))) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (_ bv8 32) (bvmul |hanoi_#t~ret4| (_ bv8 32)))))))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {905#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv4 32)) (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32)))) (and (bvugt (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|))))))} is VALID [2022-02-20 14:37:29,935 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {920#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32))) (bvugt (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32)) (_ bv0 32))) (and (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))) (= |hanoi_#in~n| (_ bv3 32)))))} {916#(or (not (= (_ bv4 32) hanoi_~n)) (= |hanoi_#in~n| (_ bv4 32)))} #30#return; {912#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv4 32)) (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32)))) (and (bvugt (bvadd (_ bv8 32) (bvmul |hanoi_#t~ret4| (_ bv8 32))) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (_ bv8 32) (bvmul |hanoi_#t~ret4| (_ bv8 32)))))))} is VALID [2022-02-20 14:37:29,936 INFO L290 TraceCheckUtils]: 27: Hoare triple {920#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32))) (bvugt (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32)) (_ bv0 32))) (and (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))) (= |hanoi_#in~n| (_ bv3 32)))))} assume true; {920#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32))) (bvugt (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32)) (_ bv0 32))) (and (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))) (= |hanoi_#in~n| (_ bv3 32)))))} is VALID [2022-02-20 14:37:29,942 INFO L290 TraceCheckUtils]: 26: Hoare triple {927#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))) (= |hanoi_#in~n| (_ bv3 32))) (and (bvugt (bvadd (bvmul (_ bv16 32) |hanoi_#t~ret4|) (_ bv16 32)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (bvmul (_ bv16 32) |hanoi_#t~ret4|) (_ bv16 32))))))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {920#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32))) (bvugt (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32)) (_ bv0 32))) (and (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))) (= |hanoi_#in~n| (_ bv3 32)))))} is VALID [2022-02-20 14:37:29,946 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {935#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))) (= |hanoi_#in~n| (_ bv2 32))) (and (bvugt (bvadd (_ bv16 32) (bvmul (_ bv16 32) |hanoi_#res|)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (_ bv16 32) (bvmul (_ bv16 32) |hanoi_#res|))))))} {931#(or (not (= hanoi_~n (_ bv3 32))) (= |hanoi_#in~n| (_ bv3 32)))} #30#return; {927#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))) (= |hanoi_#in~n| (_ bv3 32))) (and (bvugt (bvadd (bvmul (_ bv16 32) |hanoi_#t~ret4|) (_ bv16 32)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (bvmul (_ bv16 32) |hanoi_#t~ret4|) (_ bv16 32))))))} is VALID [2022-02-20 14:37:29,947 INFO L290 TraceCheckUtils]: 24: Hoare triple {935#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))) (= |hanoi_#in~n| (_ bv2 32))) (and (bvugt (bvadd (_ bv16 32) (bvmul (_ bv16 32) |hanoi_#res|)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (_ bv16 32) (bvmul (_ bv16 32) |hanoi_#res|))))))} assume true; {935#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))) (= |hanoi_#in~n| (_ bv2 32))) (and (bvugt (bvadd (_ bv16 32) (bvmul (_ bv16 32) |hanoi_#res|)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (_ bv16 32) (bvmul (_ bv16 32) |hanoi_#res|))))))} is VALID [2022-02-20 14:37:29,970 INFO L290 TraceCheckUtils]: 23: Hoare triple {942#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))) (= |hanoi_#in~n| (_ bv2 32))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (bvmul |hanoi_#t~ret4| (_ bv32 32)) (_ bv32 32))) (bvugt (bvadd (bvmul |hanoi_#t~ret4| (_ bv32 32)) (_ bv32 32)) (_ bv0 32)))))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {935#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))) (= |hanoi_#in~n| (_ bv2 32))) (and (bvugt (bvadd (_ bv16 32) (bvmul (_ bv16 32) |hanoi_#res|)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (_ bv16 32) (bvmul (_ bv16 32) |hanoi_#res|))))))} is VALID [2022-02-20 14:37:29,972 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {950#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))) (= |hanoi_#in~n| (_ bv1 32))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (bvmul |hanoi_#res| (_ bv32 32)) (_ bv32 32))) (bvugt (bvadd (bvmul |hanoi_#res| (_ bv32 32)) (_ bv32 32)) (_ bv0 32)))))} {946#(or (not (= hanoi_~n (_ bv2 32))) (= |hanoi_#in~n| (_ bv2 32)))} #30#return; {942#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))) (= |hanoi_#in~n| (_ bv2 32))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (bvmul |hanoi_#t~ret4| (_ bv32 32)) (_ bv32 32))) (bvugt (bvadd (bvmul |hanoi_#t~ret4| (_ bv32 32)) (_ bv32 32)) (_ bv0 32)))))} is VALID [2022-02-20 14:37:29,973 INFO L290 TraceCheckUtils]: 21: Hoare triple {950#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))) (= |hanoi_#in~n| (_ bv1 32))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (bvmul |hanoi_#res| (_ bv32 32)) (_ bv32 32))) (bvugt (bvadd (bvmul |hanoi_#res| (_ bv32 32)) (_ bv32 32)) (_ bv0 32)))))} assume true; {950#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))) (= |hanoi_#in~n| (_ bv1 32))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (bvmul |hanoi_#res| (_ bv32 32)) (_ bv32 32))) (bvugt (bvadd (bvmul |hanoi_#res| (_ bv32 32)) (_ bv32 32)) (_ bv0 32)))))} is VALID [2022-02-20 14:37:29,974 INFO L290 TraceCheckUtils]: 20: Hoare triple {957#(or (= |hanoi_#in~n| (_ bv1 32)) (not (= hanoi_~n (_ bv1 32))))} assume 1bv32 == ~n;#res := 1bv32; {950#(forall ((|v_hanoi_#in~n_BEFORE_CALL_14| (_ BitVec 32))) (or (and (not (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (_ bv64 32))) (= |hanoi_#in~n| (_ bv1 32))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_14|) (bvadd (bvmul |hanoi_#res| (_ bv32 32)) (_ bv32 32))) (bvugt (bvadd (bvmul |hanoi_#res| (_ bv32 32)) (_ bv32 32)) (_ bv0 32)))))} is VALID [2022-02-20 14:37:29,974 INFO L290 TraceCheckUtils]: 19: Hoare triple {721#true} ~n := #in~n; {957#(or (= |hanoi_#in~n| (_ bv1 32)) (not (= hanoi_~n (_ bv1 32))))} is VALID [2022-02-20 14:37:29,974 INFO L272 TraceCheckUtils]: 18: Hoare triple {946#(or (not (= hanoi_~n (_ bv2 32))) (= |hanoi_#in~n| (_ bv2 32)))} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {721#true} is VALID [2022-02-20 14:37:29,975 INFO L290 TraceCheckUtils]: 17: Hoare triple {946#(or (not (= hanoi_~n (_ bv2 32))) (= |hanoi_#in~n| (_ bv2 32)))} assume !(1bv32 == ~n); {946#(or (not (= hanoi_~n (_ bv2 32))) (= |hanoi_#in~n| (_ bv2 32)))} is VALID [2022-02-20 14:37:29,975 INFO L290 TraceCheckUtils]: 16: Hoare triple {721#true} ~n := #in~n; {946#(or (not (= hanoi_~n (_ bv2 32))) (= |hanoi_#in~n| (_ bv2 32)))} is VALID [2022-02-20 14:37:29,975 INFO L272 TraceCheckUtils]: 15: Hoare triple {931#(or (not (= hanoi_~n (_ bv3 32))) (= |hanoi_#in~n| (_ bv3 32)))} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {721#true} is VALID [2022-02-20 14:37:29,976 INFO L290 TraceCheckUtils]: 14: Hoare triple {931#(or (not (= hanoi_~n (_ bv3 32))) (= |hanoi_#in~n| (_ bv3 32)))} assume !(1bv32 == ~n); {931#(or (not (= hanoi_~n (_ bv3 32))) (= |hanoi_#in~n| (_ bv3 32)))} is VALID [2022-02-20 14:37:29,976 INFO L290 TraceCheckUtils]: 13: Hoare triple {721#true} ~n := #in~n; {931#(or (not (= hanoi_~n (_ bv3 32))) (= |hanoi_#in~n| (_ bv3 32)))} is VALID [2022-02-20 14:37:29,976 INFO L272 TraceCheckUtils]: 12: Hoare triple {916#(or (not (= (_ bv4 32) hanoi_~n)) (= |hanoi_#in~n| (_ bv4 32)))} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {721#true} is VALID [2022-02-20 14:37:29,977 INFO L290 TraceCheckUtils]: 11: Hoare triple {916#(or (not (= (_ bv4 32) hanoi_~n)) (= |hanoi_#in~n| (_ bv4 32)))} assume !(1bv32 == ~n); {916#(or (not (= (_ bv4 32) hanoi_~n)) (= |hanoi_#in~n| (_ bv4 32)))} is VALID [2022-02-20 14:37:29,977 INFO L290 TraceCheckUtils]: 10: Hoare triple {721#true} ~n := #in~n; {916#(or (not (= (_ bv4 32) hanoi_~n)) (= |hanoi_#in~n| (_ bv4 32)))} is VALID [2022-02-20 14:37:29,977 INFO L272 TraceCheckUtils]: 9: Hoare triple {901#(or (not (= hanoi_~n (_ bv5 32))) (= |hanoi_#in~n| (_ bv5 32)))} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {721#true} is VALID [2022-02-20 14:37:29,978 INFO L290 TraceCheckUtils]: 8: Hoare triple {901#(or (not (= hanoi_~n (_ bv5 32))) (= |hanoi_#in~n| (_ bv5 32)))} assume !(1bv32 == ~n); {901#(or (not (= hanoi_~n (_ bv5 32))) (= |hanoi_#in~n| (_ bv5 32)))} is VALID [2022-02-20 14:37:29,978 INFO L290 TraceCheckUtils]: 7: Hoare triple {721#true} ~n := #in~n; {901#(or (not (= hanoi_~n (_ bv5 32))) (= |hanoi_#in~n| (_ bv5 32)))} is VALID [2022-02-20 14:37:29,978 INFO L272 TraceCheckUtils]: 6: Hoare triple {886#(or (not (= (bvadd (_ bv4294967295 32) hanoi_~n) (_ bv5 32))) (= (_ bv64 32) (bvshl (_ bv1 32) |hanoi_#in~n|)))} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {721#true} is VALID [2022-02-20 14:37:29,979 INFO L290 TraceCheckUtils]: 5: Hoare triple {886#(or (not (= (bvadd (_ bv4294967295 32) hanoi_~n) (_ bv5 32))) (= (_ bv64 32) (bvshl (_ bv1 32) |hanoi_#in~n|)))} assume !(1bv32 == ~n); {886#(or (not (= (bvadd (_ bv4294967295 32) hanoi_~n) (_ bv5 32))) (= (_ bv64 32) (bvshl (_ bv1 32) |hanoi_#in~n|)))} is VALID [2022-02-20 14:37:29,980 INFO L290 TraceCheckUtils]: 4: Hoare triple {721#true} ~n := #in~n; {886#(or (not (= (bvadd (_ bv4294967295 32) hanoi_~n) (_ bv5 32))) (= (_ bv64 32) (bvshl (_ bv1 32) |hanoi_#in~n|)))} is VALID [2022-02-20 14:37:29,980 INFO L272 TraceCheckUtils]: 3: Hoare triple {721#true} call main_#t~ret6#1 := hanoi(main_~n~0#1); {721#true} is VALID [2022-02-20 14:37:29,980 INFO L290 TraceCheckUtils]: 2: Hoare triple {721#true} assume !~bvslt32(main_~n~0#1, 1bv32); {721#true} is VALID [2022-02-20 14:37:29,980 INFO L290 TraceCheckUtils]: 1: Hoare triple {721#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet5#1, main_#t~ret6#1, main_~n~0#1, main_~result~0#1;main_~n~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; {721#true} is VALID [2022-02-20 14:37:29,980 INFO L290 TraceCheckUtils]: 0: Hoare triple {721#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(15bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {721#true} is VALID [2022-02-20 14:37:29,981 INFO L134 CoverageAnalysis]: Checked inductivity of 80 backedges. 0 proven. 65 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-02-20 14:37:29,981 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 14:37:29,981 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [70878919] [2022-02-20 14:37:29,982 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [70878919] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 14:37:29,982 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 14:37:29,982 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 21] total 36 [2022-02-20 14:37:29,982 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1328124434] [2022-02-20 14:37:29,982 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 14:37:29,983 INFO L78 Accepts]: Start accepts. Automaton has has 36 states, 35 states have (on average 1.3142857142857143) internal successors, (46), 24 states have internal predecessors, (46), 8 states have call successors, (8), 1 states have call predecessors, (8), 12 states have return successors, (12), 12 states have call predecessors, (12), 8 states have call successors, (12) Word has length 41 [2022-02-20 14:37:30,227 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 14:37:30,228 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 36 states, 35 states have (on average 1.3142857142857143) internal successors, (46), 24 states have internal predecessors, (46), 8 states have call successors, (8), 1 states have call predecessors, (8), 12 states have return successors, (12), 12 states have call predecessors, (12), 8 states have call successors, (12) [2022-02-20 14:37:30,361 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 14:37:30,361 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 36 states [2022-02-20 14:37:30,362 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 14:37:30,362 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 36 interpolants. [2022-02-20 14:37:30,363 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=119, Invalid=1141, Unknown=0, NotChecked=0, Total=1260 [2022-02-20 14:37:30,363 INFO L87 Difference]: Start difference. First operand 28 states and 29 transitions. Second operand has 36 states, 35 states have (on average 1.3142857142857143) internal successors, (46), 24 states have internal predecessors, (46), 8 states have call successors, (8), 1 states have call predecessors, (8), 12 states have return successors, (12), 12 states have call predecessors, (12), 8 states have call successors, (12) [2022-02-20 14:37:31,716 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 14:37:31,717 INFO L93 Difference]: Finished difference Result 40 states and 42 transitions. [2022-02-20 14:37:31,717 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 21 states. [2022-02-20 14:37:31,717 INFO L78 Accepts]: Start accepts. Automaton has has 36 states, 35 states have (on average 1.3142857142857143) internal successors, (46), 24 states have internal predecessors, (46), 8 states have call successors, (8), 1 states have call predecessors, (8), 12 states have return successors, (12), 12 states have call predecessors, (12), 8 states have call successors, (12) Word has length 41 [2022-02-20 14:37:31,718 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 14:37:31,718 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 36 states, 35 states have (on average 1.3142857142857143) internal successors, (46), 24 states have internal predecessors, (46), 8 states have call successors, (8), 1 states have call predecessors, (8), 12 states have return successors, (12), 12 states have call predecessors, (12), 8 states have call successors, (12) [2022-02-20 14:37:31,720 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 21 states to 21 states and 42 transitions. [2022-02-20 14:37:31,721 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 36 states, 35 states have (on average 1.3142857142857143) internal successors, (46), 24 states have internal predecessors, (46), 8 states have call successors, (8), 1 states have call predecessors, (8), 12 states have return successors, (12), 12 states have call predecessors, (12), 8 states have call successors, (12) [2022-02-20 14:37:31,723 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 21 states to 21 states and 42 transitions. [2022-02-20 14:37:31,723 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 21 states and 42 transitions. [2022-02-20 14:37:31,791 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 14:37:31,793 INFO L225 Difference]: With dead ends: 40 [2022-02-20 14:37:31,793 INFO L226 Difference]: Without dead ends: 34 [2022-02-20 14:37:31,794 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 95 GetRequests, 46 SyntacticMatches, 0 SemanticMatches, 49 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 331 ImplicationChecksByTransitivity, 1.6s TimeCoverageRelationStatistics Valid=290, Invalid=2260, Unknown=0, NotChecked=0, Total=2550 [2022-02-20 14:37:31,795 INFO L933 BasicCegarLoop]: 13 mSDtfsCounter, 24 mSDsluCounter, 194 mSDsCounter, 0 mSdLazyCounter, 253 mSolverCounterSat, 28 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 35 SdHoareTripleChecker+Valid, 207 SdHoareTripleChecker+Invalid, 434 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 28 IncrementalHoareTripleChecker+Valid, 253 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 153 IncrementalHoareTripleChecker+Unchecked, 0.4s IncrementalHoareTripleChecker+Time [2022-02-20 14:37:31,795 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [35 Valid, 207 Invalid, 434 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [28 Valid, 253 Invalid, 0 Unknown, 153 Unchecked, 0.4s Time] [2022-02-20 14:37:31,796 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 34 states. [2022-02-20 14:37:31,799 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 34 to 34. [2022-02-20 14:37:31,800 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 14:37:31,800 INFO L82 GeneralOperation]: Start isEquivalent. First operand 34 states. Second operand has 34 states, 23 states have (on average 1.0434782608695652) internal successors, (24), 24 states have internal predecessors, (24), 2 states have call successors, (2), 1 states have call predecessors, (2), 8 states have return successors, (9), 8 states have call predecessors, (9), 2 states have call successors, (9) [2022-02-20 14:37:31,800 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand has 34 states, 23 states have (on average 1.0434782608695652) internal successors, (24), 24 states have internal predecessors, (24), 2 states have call successors, (2), 1 states have call predecessors, (2), 8 states have return successors, (9), 8 states have call predecessors, (9), 2 states have call successors, (9) [2022-02-20 14:37:31,801 INFO L87 Difference]: Start difference. First operand 34 states. Second operand has 34 states, 23 states have (on average 1.0434782608695652) internal successors, (24), 24 states have internal predecessors, (24), 2 states have call successors, (2), 1 states have call predecessors, (2), 8 states have return successors, (9), 8 states have call predecessors, (9), 2 states have call successors, (9) [2022-02-20 14:37:31,804 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 14:37:31,804 INFO L93 Difference]: Finished difference Result 34 states and 35 transitions. [2022-02-20 14:37:31,804 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 35 transitions. [2022-02-20 14:37:31,805 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 14:37:31,805 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 14:37:31,805 INFO L74 IsIncluded]: Start isIncluded. First operand has 34 states, 23 states have (on average 1.0434782608695652) internal successors, (24), 24 states have internal predecessors, (24), 2 states have call successors, (2), 1 states have call predecessors, (2), 8 states have return successors, (9), 8 states have call predecessors, (9), 2 states have call successors, (9) Second operand 34 states. [2022-02-20 14:37:31,806 INFO L87 Difference]: Start difference. First operand has 34 states, 23 states have (on average 1.0434782608695652) internal successors, (24), 24 states have internal predecessors, (24), 2 states have call successors, (2), 1 states have call predecessors, (2), 8 states have return successors, (9), 8 states have call predecessors, (9), 2 states have call successors, (9) Second operand 34 states. [2022-02-20 14:37:31,807 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 14:37:31,808 INFO L93 Difference]: Finished difference Result 34 states and 35 transitions. [2022-02-20 14:37:31,808 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 35 transitions. [2022-02-20 14:37:31,808 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 14:37:31,808 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 14:37:31,809 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 14:37:31,809 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 14:37:31,809 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 34 states, 23 states have (on average 1.0434782608695652) internal successors, (24), 24 states have internal predecessors, (24), 2 states have call successors, (2), 1 states have call predecessors, (2), 8 states have return successors, (9), 8 states have call predecessors, (9), 2 states have call successors, (9) [2022-02-20 14:37:31,811 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 35 transitions. [2022-02-20 14:37:31,811 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 35 transitions. Word has length 41 [2022-02-20 14:37:31,811 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 14:37:31,811 INFO L470 AbstractCegarLoop]: Abstraction has 34 states and 35 transitions. [2022-02-20 14:37:31,812 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 36 states, 35 states have (on average 1.3142857142857143) internal successors, (46), 24 states have internal predecessors, (46), 8 states have call successors, (8), 1 states have call predecessors, (8), 12 states have return successors, (12), 12 states have call predecessors, (12), 8 states have call successors, (12) [2022-02-20 14:37:31,812 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 35 transitions. [2022-02-20 14:37:31,813 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 54 [2022-02-20 14:37:31,813 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 14:37:31,813 INFO L514 BasicCegarLoop]: trace histogram [8, 8, 7, 7, 7, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 14:37:31,825 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (5)] Ended with exit code 0 [2022-02-20 14:37:32,022 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 5 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 14:37:32,022 INFO L402 AbstractCegarLoop]: === Iteration 5 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 14:37:32,023 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 14:37:32,023 INFO L85 PathProgramCache]: Analyzing trace with hash -1906255628, now seen corresponding path program 4 times [2022-02-20 14:37:32,023 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 14:37:32,023 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [265102276] [2022-02-20 14:37:32,024 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-02-20 14:37:32,024 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 14:37:32,024 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 14:37:32,025 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 14:37:32,027 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (6)] Waiting until timeout for monitored process [2022-02-20 14:37:32,074 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-02-20 14:37:32,074 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-02-20 14:37:32,077 INFO L263 TraceCheckSpWp]: Trace formula consists of 83 conjuncts, 36 conjunts are in the unsatisfiable core [2022-02-20 14:37:32,096 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 14:37:32,099 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 14:37:32,586 INFO L290 TraceCheckUtils]: 0: Hoare triple {1177#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(15bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {1177#true} is VALID [2022-02-20 14:37:32,586 INFO L290 TraceCheckUtils]: 1: Hoare triple {1177#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet5#1, main_#t~ret6#1, main_~n~0#1, main_~result~0#1;main_~n~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; {1177#true} is VALID [2022-02-20 14:37:32,587 INFO L290 TraceCheckUtils]: 2: Hoare triple {1177#true} assume !~bvslt32(main_~n~0#1, 1bv32); {1188#(not (bvslt |ULTIMATE.start_main_~n~0#1| (_ bv1 32)))} is VALID [2022-02-20 14:37:32,587 INFO L272 TraceCheckUtils]: 3: Hoare triple {1188#(not (bvslt |ULTIMATE.start_main_~n~0#1| (_ bv1 32)))} call main_#t~ret6#1 := hanoi(main_~n~0#1); {1177#true} is VALID [2022-02-20 14:37:32,587 INFO L290 TraceCheckUtils]: 4: Hoare triple {1177#true} ~n := #in~n; {1195#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:32,588 INFO L290 TraceCheckUtils]: 5: Hoare triple {1195#(= |hanoi_#in~n| hanoi_~n)} assume !(1bv32 == ~n); {1195#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:32,588 INFO L272 TraceCheckUtils]: 6: Hoare triple {1195#(= |hanoi_#in~n| hanoi_~n)} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {1177#true} is VALID [2022-02-20 14:37:32,588 INFO L290 TraceCheckUtils]: 7: Hoare triple {1177#true} ~n := #in~n; {1195#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:32,589 INFO L290 TraceCheckUtils]: 8: Hoare triple {1195#(= |hanoi_#in~n| hanoi_~n)} assume !(1bv32 == ~n); {1195#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:32,589 INFO L272 TraceCheckUtils]: 9: Hoare triple {1195#(= |hanoi_#in~n| hanoi_~n)} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {1177#true} is VALID [2022-02-20 14:37:32,589 INFO L290 TraceCheckUtils]: 10: Hoare triple {1177#true} ~n := #in~n; {1195#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:32,590 INFO L290 TraceCheckUtils]: 11: Hoare triple {1195#(= |hanoi_#in~n| hanoi_~n)} assume !(1bv32 == ~n); {1195#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:32,590 INFO L272 TraceCheckUtils]: 12: Hoare triple {1195#(= |hanoi_#in~n| hanoi_~n)} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {1177#true} is VALID [2022-02-20 14:37:32,590 INFO L290 TraceCheckUtils]: 13: Hoare triple {1177#true} ~n := #in~n; {1195#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:32,594 INFO L290 TraceCheckUtils]: 14: Hoare triple {1195#(= |hanoi_#in~n| hanoi_~n)} assume !(1bv32 == ~n); {1195#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:32,594 INFO L272 TraceCheckUtils]: 15: Hoare triple {1195#(= |hanoi_#in~n| hanoi_~n)} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {1177#true} is VALID [2022-02-20 14:37:32,594 INFO L290 TraceCheckUtils]: 16: Hoare triple {1177#true} ~n := #in~n; {1195#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:32,595 INFO L290 TraceCheckUtils]: 17: Hoare triple {1195#(= |hanoi_#in~n| hanoi_~n)} assume !(1bv32 == ~n); {1195#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:32,595 INFO L272 TraceCheckUtils]: 18: Hoare triple {1195#(= |hanoi_#in~n| hanoi_~n)} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {1177#true} is VALID [2022-02-20 14:37:32,595 INFO L290 TraceCheckUtils]: 19: Hoare triple {1177#true} ~n := #in~n; {1195#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:32,600 INFO L290 TraceCheckUtils]: 20: Hoare triple {1195#(= |hanoi_#in~n| hanoi_~n)} assume !(1bv32 == ~n); {1195#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:32,600 INFO L272 TraceCheckUtils]: 21: Hoare triple {1195#(= |hanoi_#in~n| hanoi_~n)} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {1177#true} is VALID [2022-02-20 14:37:32,600 INFO L290 TraceCheckUtils]: 22: Hoare triple {1177#true} ~n := #in~n; {1195#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:32,601 INFO L290 TraceCheckUtils]: 23: Hoare triple {1195#(= |hanoi_#in~n| hanoi_~n)} assume !(1bv32 == ~n); {1195#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:32,601 INFO L272 TraceCheckUtils]: 24: Hoare triple {1195#(= |hanoi_#in~n| hanoi_~n)} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {1177#true} is VALID [2022-02-20 14:37:32,601 INFO L290 TraceCheckUtils]: 25: Hoare triple {1177#true} ~n := #in~n; {1195#(= |hanoi_#in~n| hanoi_~n)} is VALID [2022-02-20 14:37:32,601 INFO L290 TraceCheckUtils]: 26: Hoare triple {1195#(= |hanoi_#in~n| hanoi_~n)} assume 1bv32 == ~n;#res := 1bv32; {1262#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} is VALID [2022-02-20 14:37:32,602 INFO L290 TraceCheckUtils]: 27: Hoare triple {1262#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} assume true; {1262#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} is VALID [2022-02-20 14:37:32,603 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {1262#(and (= |hanoi_#res| (_ bv1 32)) (= |hanoi_#in~n| (_ bv1 32)))} {1195#(= |hanoi_#in~n| hanoi_~n)} #30#return; {1269#(and (= |hanoi_#t~ret4| (_ bv1 32)) (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)))} is VALID [2022-02-20 14:37:32,603 INFO L290 TraceCheckUtils]: 29: Hoare triple {1269#(and (= |hanoi_#t~ret4| (_ bv1 32)) (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {1273#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)) (= (_ bv3 32) |hanoi_#res|))} is VALID [2022-02-20 14:37:32,604 INFO L290 TraceCheckUtils]: 30: Hoare triple {1273#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)) (= (_ bv3 32) |hanoi_#res|))} assume true; {1273#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)) (= (_ bv3 32) |hanoi_#res|))} is VALID [2022-02-20 14:37:32,604 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {1273#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv1 32)) (= (_ bv3 32) |hanoi_#res|))} {1195#(= |hanoi_#in~n| hanoi_~n)} #30#return; {1280#(and (= |hanoi_#t~ret4| (_ bv3 32)) (= |hanoi_#in~n| (_ bv3 32)))} is VALID [2022-02-20 14:37:32,605 INFO L290 TraceCheckUtils]: 32: Hoare triple {1280#(and (= |hanoi_#t~ret4| (_ bv3 32)) (= |hanoi_#in~n| (_ bv3 32)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {1284#(and (= |hanoi_#in~n| (_ bv3 32)) (= |hanoi_#res| (_ bv7 32)))} is VALID [2022-02-20 14:37:32,605 INFO L290 TraceCheckUtils]: 33: Hoare triple {1284#(and (= |hanoi_#in~n| (_ bv3 32)) (= |hanoi_#res| (_ bv7 32)))} assume true; {1284#(and (= |hanoi_#in~n| (_ bv3 32)) (= |hanoi_#res| (_ bv7 32)))} is VALID [2022-02-20 14:37:32,606 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {1284#(and (= |hanoi_#in~n| (_ bv3 32)) (= |hanoi_#res| (_ bv7 32)))} {1195#(= |hanoi_#in~n| hanoi_~n)} #30#return; {1291#(and (= |hanoi_#t~ret4| (_ bv7 32)) (= |hanoi_#in~n| (_ bv4 32)))} is VALID [2022-02-20 14:37:32,606 INFO L290 TraceCheckUtils]: 35: Hoare triple {1291#(and (= |hanoi_#t~ret4| (_ bv7 32)) (= |hanoi_#in~n| (_ bv4 32)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {1295#(and (= |hanoi_#res| (_ bv15 32)) (= |hanoi_#in~n| (_ bv4 32)))} is VALID [2022-02-20 14:37:32,607 INFO L290 TraceCheckUtils]: 36: Hoare triple {1295#(and (= |hanoi_#res| (_ bv15 32)) (= |hanoi_#in~n| (_ bv4 32)))} assume true; {1295#(and (= |hanoi_#res| (_ bv15 32)) (= |hanoi_#in~n| (_ bv4 32)))} is VALID [2022-02-20 14:37:32,611 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {1295#(and (= |hanoi_#res| (_ bv15 32)) (= |hanoi_#in~n| (_ bv4 32)))} {1195#(= |hanoi_#in~n| hanoi_~n)} #30#return; {1302#(and (= |hanoi_#t~ret4| (_ bv15 32)) (= |hanoi_#in~n| (_ bv5 32)))} is VALID [2022-02-20 14:37:32,612 INFO L290 TraceCheckUtils]: 38: Hoare triple {1302#(and (= |hanoi_#t~ret4| (_ bv15 32)) (= |hanoi_#in~n| (_ bv5 32)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {1306#(and (= (_ bv31 32) |hanoi_#res|) (= |hanoi_#in~n| (_ bv5 32)))} is VALID [2022-02-20 14:37:32,613 INFO L290 TraceCheckUtils]: 39: Hoare triple {1306#(and (= (_ bv31 32) |hanoi_#res|) (= |hanoi_#in~n| (_ bv5 32)))} assume true; {1306#(and (= (_ bv31 32) |hanoi_#res|) (= |hanoi_#in~n| (_ bv5 32)))} is VALID [2022-02-20 14:37:32,614 INFO L284 TraceCheckUtils]: 40: Hoare quadruple {1306#(and (= (_ bv31 32) |hanoi_#res|) (= |hanoi_#in~n| (_ bv5 32)))} {1195#(= |hanoi_#in~n| hanoi_~n)} #30#return; {1313#(and (= |hanoi_#t~ret4| (_ bv31 32)) (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv5 32)))} is VALID [2022-02-20 14:37:32,614 INFO L290 TraceCheckUtils]: 41: Hoare triple {1313#(and (= |hanoi_#t~ret4| (_ bv31 32)) (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv5 32)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {1317#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv5 32)) (= |hanoi_#res| (_ bv63 32)))} is VALID [2022-02-20 14:37:32,615 INFO L290 TraceCheckUtils]: 42: Hoare triple {1317#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv5 32)) (= |hanoi_#res| (_ bv63 32)))} assume true; {1317#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv5 32)) (= |hanoi_#res| (_ bv63 32)))} is VALID [2022-02-20 14:37:32,616 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {1317#(and (= (bvadd |hanoi_#in~n| (_ bv4294967295 32)) (_ bv5 32)) (= |hanoi_#res| (_ bv63 32)))} {1195#(= |hanoi_#in~n| hanoi_~n)} #30#return; {1324#(and (= |hanoi_#t~ret4| (_ bv63 32)) (= (_ bv5 32) (bvadd |hanoi_#in~n| (_ bv4294967294 32))))} is VALID [2022-02-20 14:37:32,616 INFO L290 TraceCheckUtils]: 44: Hoare triple {1324#(and (= |hanoi_#t~ret4| (_ bv63 32)) (= (_ bv5 32) (bvadd |hanoi_#in~n| (_ bv4294967294 32))))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {1328#(and (= (_ bv5 32) (bvadd |hanoi_#in~n| (_ bv4294967294 32))) (= (_ bv127 32) |hanoi_#res|))} is VALID [2022-02-20 14:37:32,617 INFO L290 TraceCheckUtils]: 45: Hoare triple {1328#(and (= (_ bv5 32) (bvadd |hanoi_#in~n| (_ bv4294967294 32))) (= (_ bv127 32) |hanoi_#res|))} assume true; {1328#(and (= (_ bv5 32) (bvadd |hanoi_#in~n| (_ bv4294967294 32))) (= (_ bv127 32) |hanoi_#res|))} is VALID [2022-02-20 14:37:32,618 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {1328#(and (= (_ bv5 32) (bvadd |hanoi_#in~n| (_ bv4294967294 32))) (= (_ bv127 32) |hanoi_#res|))} {1195#(= |hanoi_#in~n| hanoi_~n)} #30#return; {1335#(and (= |hanoi_#t~ret4| (_ bv127 32)) (= (bvadd |hanoi_#in~n| (_ bv4294967293 32)) (_ bv5 32)))} is VALID [2022-02-20 14:37:32,619 INFO L290 TraceCheckUtils]: 47: Hoare triple {1335#(and (= |hanoi_#t~ret4| (_ bv127 32)) (= (bvadd |hanoi_#in~n| (_ bv4294967293 32)) (_ bv5 32)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {1339#(and (= (bvadd |hanoi_#in~n| (_ bv4294967293 32)) (_ bv5 32)) (= |hanoi_#res| (_ bv255 32)))} is VALID [2022-02-20 14:37:32,619 INFO L290 TraceCheckUtils]: 48: Hoare triple {1339#(and (= (bvadd |hanoi_#in~n| (_ bv4294967293 32)) (_ bv5 32)) (= |hanoi_#res| (_ bv255 32)))} assume true; {1339#(and (= (bvadd |hanoi_#in~n| (_ bv4294967293 32)) (_ bv5 32)) (= |hanoi_#res| (_ bv255 32)))} is VALID [2022-02-20 14:37:32,620 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {1339#(and (= (bvadd |hanoi_#in~n| (_ bv4294967293 32)) (_ bv5 32)) (= |hanoi_#res| (_ bv255 32)))} {1188#(not (bvslt |ULTIMATE.start_main_~n~0#1| (_ bv1 32)))} #32#return; {1346#(and (= |ULTIMATE.start_main_~n~0#1| (_ bv8 32)) (= (_ bv255 32) |ULTIMATE.start_main_#t~ret6#1|))} is VALID [2022-02-20 14:37:32,621 INFO L290 TraceCheckUtils]: 50: Hoare triple {1346#(and (= |ULTIMATE.start_main_~n~0#1| (_ bv8 32)) (= (_ bv255 32) |ULTIMATE.start_main_#t~ret6#1|))} main_~result~0#1 := main_#t~ret6#1;havoc main_#t~ret6#1; {1350#(and (= |ULTIMATE.start_main_~result~0#1| (_ bv255 32)) (= |ULTIMATE.start_main_~n~0#1| (_ bv8 32)))} is VALID [2022-02-20 14:37:32,621 INFO L290 TraceCheckUtils]: 51: Hoare triple {1350#(and (= |ULTIMATE.start_main_~result~0#1| (_ bv255 32)) (= |ULTIMATE.start_main_~n~0#1| (_ bv8 32)))} assume !(~bvugt32(~bvadd32(1bv32, main_~result~0#1), 0bv32) && ~bvadd32(1bv32, main_~result~0#1) == ~bvshl32(1bv32, main_~n~0#1)); {1178#false} is VALID [2022-02-20 14:37:32,621 INFO L290 TraceCheckUtils]: 52: Hoare triple {1178#false} assume !false; {1178#false} is VALID [2022-02-20 14:37:32,622 INFO L134 CoverageAnalysis]: Checked inductivity of 154 backedges. 0 proven. 77 refuted. 0 times theorem prover too weak. 77 trivial. 0 not checked. [2022-02-20 14:37:32,622 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 14:37:37,915 INFO L290 TraceCheckUtils]: 52: Hoare triple {1178#false} assume !false; {1178#false} is VALID [2022-02-20 14:37:37,916 INFO L290 TraceCheckUtils]: 51: Hoare triple {1360#(and (= (bvadd |ULTIMATE.start_main_~result~0#1| (_ bv1 32)) (bvshl (_ bv1 32) |ULTIMATE.start_main_~n~0#1|)) (bvugt (bvadd |ULTIMATE.start_main_~result~0#1| (_ bv1 32)) (_ bv0 32)))} assume !(~bvugt32(~bvadd32(1bv32, main_~result~0#1), 0bv32) && ~bvadd32(1bv32, main_~result~0#1) == ~bvshl32(1bv32, main_~n~0#1)); {1178#false} is VALID [2022-02-20 14:37:37,917 INFO L290 TraceCheckUtils]: 50: Hoare triple {1364#(and (bvugt (bvadd (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|) (_ bv0 32)) (= (bvadd (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|) (bvshl (_ bv1 32) |ULTIMATE.start_main_~n~0#1|)))} main_~result~0#1 := main_#t~ret6#1;havoc main_#t~ret6#1; {1360#(and (= (bvadd |ULTIMATE.start_main_~result~0#1| (_ bv1 32)) (bvshl (_ bv1 32) |ULTIMATE.start_main_~n~0#1|)) (bvugt (bvadd |ULTIMATE.start_main_~result~0#1| (_ bv1 32)) (_ bv0 32)))} is VALID [2022-02-20 14:37:37,917 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {1371#(and (bvugt (bvadd |hanoi_#res| (_ bv1 32)) (_ bv0 32)) (= (bvadd |hanoi_#res| (_ bv1 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} {1177#true} #32#return; {1364#(and (bvugt (bvadd (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|) (_ bv0 32)) (= (bvadd (_ bv1 32) |ULTIMATE.start_main_#t~ret6#1|) (bvshl (_ bv1 32) |ULTIMATE.start_main_~n~0#1|)))} is VALID [2022-02-20 14:37:37,918 INFO L290 TraceCheckUtils]: 48: Hoare triple {1371#(and (bvugt (bvadd |hanoi_#res| (_ bv1 32)) (_ bv0 32)) (= (bvadd |hanoi_#res| (_ bv1 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} assume true; {1371#(and (bvugt (bvadd |hanoi_#res| (_ bv1 32)) (_ bv0 32)) (= (bvadd |hanoi_#res| (_ bv1 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} is VALID [2022-02-20 14:37:37,922 INFO L290 TraceCheckUtils]: 47: Hoare triple {1378#(and (bvugt (bvadd (bvmul |hanoi_#t~ret4| (_ bv2 32)) (_ bv2 32)) (_ bv0 32)) (= (bvadd (bvmul |hanoi_#t~ret4| (_ bv2 32)) (_ bv2 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {1371#(and (bvugt (bvadd |hanoi_#res| (_ bv1 32)) (_ bv0 32)) (= (bvadd |hanoi_#res| (_ bv1 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} is VALID [2022-02-20 14:37:37,928 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {1386#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv7 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32))) (bvugt (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (_ bv0 32)))))} {1382#(or (= (_ bv256 32) (bvshl (_ bv1 32) |hanoi_#in~n|)) (not (= (_ bv7 32) (bvadd (_ bv4294967295 32) hanoi_~n))))} #30#return; {1378#(and (bvugt (bvadd (bvmul |hanoi_#t~ret4| (_ bv2 32)) (_ bv2 32)) (_ bv0 32)) (= (bvadd (bvmul |hanoi_#t~ret4| (_ bv2 32)) (_ bv2 32)) (bvshl (_ bv1 32) |hanoi_#in~n|)))} is VALID [2022-02-20 14:37:37,936 INFO L290 TraceCheckUtils]: 45: Hoare triple {1386#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv7 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32))) (bvugt (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (_ bv0 32)))))} assume true; {1386#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv7 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32))) (bvugt (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (_ bv0 32)))))} is VALID [2022-02-20 14:37:37,943 INFO L290 TraceCheckUtils]: 44: Hoare triple {1393#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (_ bv4 32) (bvmul |hanoi_#t~ret4| (_ bv4 32)))) (bvugt (bvadd (_ bv4 32) (bvmul |hanoi_#t~ret4| (_ bv4 32))) (_ bv0 32))) (and (= |hanoi_#in~n| (_ bv7 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {1386#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv7 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32))) (bvugt (bvadd (bvmul (_ bv2 32) |hanoi_#res|) (_ bv2 32)) (_ bv0 32)))))} is VALID [2022-02-20 14:37:37,951 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {1401#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (bvugt (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (_ bv0 32)) (= (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))) (and (= |hanoi_#in~n| (_ bv6 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} {1397#(or (not (= hanoi_~n (_ bv7 32))) (= |hanoi_#in~n| (_ bv7 32)))} #30#return; {1393#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (_ bv4 32) (bvmul |hanoi_#t~ret4| (_ bv4 32)))) (bvugt (bvadd (_ bv4 32) (bvmul |hanoi_#t~ret4| (_ bv4 32))) (_ bv0 32))) (and (= |hanoi_#in~n| (_ bv7 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} is VALID [2022-02-20 14:37:37,957 INFO L290 TraceCheckUtils]: 42: Hoare triple {1401#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (bvugt (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (_ bv0 32)) (= (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))) (and (= |hanoi_#in~n| (_ bv6 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} assume true; {1401#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (bvugt (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (_ bv0 32)) (= (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))) (and (= |hanoi_#in~n| (_ bv6 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} is VALID [2022-02-20 14:37:37,963 INFO L290 TraceCheckUtils]: 41: Hoare triple {1408#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv6 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (bvugt (bvadd (_ bv8 32) (bvmul |hanoi_#t~ret4| (_ bv8 32))) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (_ bv8 32) (bvmul |hanoi_#t~ret4| (_ bv8 32)))))))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {1401#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (bvugt (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (_ bv0 32)) (= (bvadd (_ bv4 32) (bvmul (_ bv4 32) |hanoi_#res|)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))) (and (= |hanoi_#in~n| (_ bv6 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} is VALID [2022-02-20 14:37:37,965 INFO L284 TraceCheckUtils]: 40: Hoare quadruple {1416#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32))) (bvugt (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32)) (_ bv0 32))) (and (= |hanoi_#in~n| (_ bv5 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} {1412#(or (not (= hanoi_~n (_ bv6 32))) (= |hanoi_#in~n| (_ bv6 32)))} #30#return; {1408#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv6 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (bvugt (bvadd (_ bv8 32) (bvmul |hanoi_#t~ret4| (_ bv8 32))) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (_ bv8 32) (bvmul |hanoi_#t~ret4| (_ bv8 32)))))))} is VALID [2022-02-20 14:37:37,974 INFO L290 TraceCheckUtils]: 39: Hoare triple {1416#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32))) (bvugt (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32)) (_ bv0 32))) (and (= |hanoi_#in~n| (_ bv5 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} assume true; {1416#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32))) (bvugt (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32)) (_ bv0 32))) (and (= |hanoi_#in~n| (_ bv5 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} is VALID [2022-02-20 14:37:37,983 INFO L290 TraceCheckUtils]: 38: Hoare triple {1423#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv5 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (bvugt (bvadd (bvmul (_ bv16 32) |hanoi_#t~ret4|) (_ bv16 32)) (_ bv0 32)) (= (bvadd (bvmul (_ bv16 32) |hanoi_#t~ret4|) (_ bv16 32)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {1416#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32))) (bvugt (bvadd (bvmul (_ bv8 32) |hanoi_#res|) (_ bv8 32)) (_ bv0 32))) (and (= |hanoi_#in~n| (_ bv5 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} is VALID [2022-02-20 14:37:37,986 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {1431#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv4 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (bvugt (bvadd (_ bv16 32) (bvmul (_ bv16 32) |hanoi_#res|)) (_ bv0 32)) (= (bvadd (_ bv16 32) (bvmul (_ bv16 32) |hanoi_#res|)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))))} {1427#(or (not (= hanoi_~n (_ bv5 32))) (= |hanoi_#in~n| (_ bv5 32)))} #30#return; {1423#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv5 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (bvugt (bvadd (bvmul (_ bv16 32) |hanoi_#t~ret4|) (_ bv16 32)) (_ bv0 32)) (= (bvadd (bvmul (_ bv16 32) |hanoi_#t~ret4|) (_ bv16 32)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))))} is VALID [2022-02-20 14:37:37,987 INFO L290 TraceCheckUtils]: 36: Hoare triple {1431#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv4 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (bvugt (bvadd (_ bv16 32) (bvmul (_ bv16 32) |hanoi_#res|)) (_ bv0 32)) (= (bvadd (_ bv16 32) (bvmul (_ bv16 32) |hanoi_#res|)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))))} assume true; {1431#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv4 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (bvugt (bvadd (_ bv16 32) (bvmul (_ bv16 32) |hanoi_#res|)) (_ bv0 32)) (= (bvadd (_ bv16 32) (bvmul (_ bv16 32) |hanoi_#res|)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))))} is VALID [2022-02-20 14:37:37,994 INFO L290 TraceCheckUtils]: 35: Hoare triple {1438#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv4 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul |hanoi_#t~ret4| (_ bv32 32)) (_ bv32 32))) (bvugt (bvadd (bvmul |hanoi_#t~ret4| (_ bv32 32)) (_ bv32 32)) (_ bv0 32)))))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {1431#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv4 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (bvugt (bvadd (_ bv16 32) (bvmul (_ bv16 32) |hanoi_#res|)) (_ bv0 32)) (= (bvadd (_ bv16 32) (bvmul (_ bv16 32) |hanoi_#res|)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))))} is VALID [2022-02-20 14:37:37,996 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {1446#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul |hanoi_#res| (_ bv32 32)) (_ bv32 32))) (bvugt (bvadd (bvmul |hanoi_#res| (_ bv32 32)) (_ bv32 32)) (_ bv0 32))) (and (= |hanoi_#in~n| (_ bv3 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} {1442#(or (not (= (_ bv4 32) hanoi_~n)) (= |hanoi_#in~n| (_ bv4 32)))} #30#return; {1438#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv4 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul |hanoi_#t~ret4| (_ bv32 32)) (_ bv32 32))) (bvugt (bvadd (bvmul |hanoi_#t~ret4| (_ bv32 32)) (_ bv32 32)) (_ bv0 32)))))} is VALID [2022-02-20 14:37:37,997 INFO L290 TraceCheckUtils]: 33: Hoare triple {1446#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul |hanoi_#res| (_ bv32 32)) (_ bv32 32))) (bvugt (bvadd (bvmul |hanoi_#res| (_ bv32 32)) (_ bv32 32)) (_ bv0 32))) (and (= |hanoi_#in~n| (_ bv3 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} assume true; {1446#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul |hanoi_#res| (_ bv32 32)) (_ bv32 32))) (bvugt (bvadd (bvmul |hanoi_#res| (_ bv32 32)) (_ bv32 32)) (_ bv0 32))) (and (= |hanoi_#in~n| (_ bv3 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} is VALID [2022-02-20 14:37:38,006 INFO L290 TraceCheckUtils]: 32: Hoare triple {1453#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv3 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (bvugt (bvadd (bvmul |hanoi_#t~ret4| (_ bv64 32)) (_ bv64 32)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul |hanoi_#t~ret4| (_ bv64 32)) (_ bv64 32))))))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {1446#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul |hanoi_#res| (_ bv32 32)) (_ bv32 32))) (bvugt (bvadd (bvmul |hanoi_#res| (_ bv32 32)) (_ bv32 32)) (_ bv0 32))) (and (= |hanoi_#in~n| (_ bv3 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} is VALID [2022-02-20 14:37:38,009 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {1461#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (bvugt (bvadd (bvmul |hanoi_#res| (_ bv64 32)) (_ bv64 32)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul |hanoi_#res| (_ bv64 32)) (_ bv64 32)))) (and (= |hanoi_#in~n| (_ bv2 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} {1457#(or (not (= hanoi_~n (_ bv3 32))) (= |hanoi_#in~n| (_ bv3 32)))} #30#return; {1453#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv3 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (bvugt (bvadd (bvmul |hanoi_#t~ret4| (_ bv64 32)) (_ bv64 32)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul |hanoi_#t~ret4| (_ bv64 32)) (_ bv64 32))))))} is VALID [2022-02-20 14:37:38,009 INFO L290 TraceCheckUtils]: 30: Hoare triple {1461#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (bvugt (bvadd (bvmul |hanoi_#res| (_ bv64 32)) (_ bv64 32)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul |hanoi_#res| (_ bv64 32)) (_ bv64 32)))) (and (= |hanoi_#in~n| (_ bv2 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} assume true; {1461#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (bvugt (bvadd (bvmul |hanoi_#res| (_ bv64 32)) (_ bv64 32)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul |hanoi_#res| (_ bv64 32)) (_ bv64 32)))) (and (= |hanoi_#in~n| (_ bv2 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} is VALID [2022-02-20 14:37:38,025 INFO L290 TraceCheckUtils]: 29: Hoare triple {1468#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv2 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (bvugt (bvadd (_ bv128 32) (bvmul |hanoi_#t~ret4| (_ bv128 32))) (_ bv0 32)) (= (bvadd (_ bv128 32) (bvmul |hanoi_#t~ret4| (_ bv128 32))) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))))} #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret4));havoc #t~ret4; {1461#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (bvugt (bvadd (bvmul |hanoi_#res| (_ bv64 32)) (_ bv64 32)) (_ bv0 32)) (= (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|) (bvadd (bvmul |hanoi_#res| (_ bv64 32)) (_ bv64 32)))) (and (= |hanoi_#in~n| (_ bv2 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} is VALID [2022-02-20 14:37:38,027 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {1476#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (bvugt (bvadd (_ bv128 32) (bvmul (_ bv128 32) |hanoi_#res|)) (_ bv0 32)) (= (bvadd (_ bv128 32) (bvmul (_ bv128 32) |hanoi_#res|)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))) (and (= |hanoi_#in~n| (_ bv1 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} {1472#(or (not (= hanoi_~n (_ bv2 32))) (= |hanoi_#in~n| (_ bv2 32)))} #30#return; {1468#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (= |hanoi_#in~n| (_ bv2 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))) (and (bvugt (bvadd (_ bv128 32) (bvmul |hanoi_#t~ret4| (_ bv128 32))) (_ bv0 32)) (= (bvadd (_ bv128 32) (bvmul |hanoi_#t~ret4| (_ bv128 32))) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|)))))} is VALID [2022-02-20 14:37:38,031 INFO L290 TraceCheckUtils]: 27: Hoare triple {1476#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (bvugt (bvadd (_ bv128 32) (bvmul (_ bv128 32) |hanoi_#res|)) (_ bv0 32)) (= (bvadd (_ bv128 32) (bvmul (_ bv128 32) |hanoi_#res|)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))) (and (= |hanoi_#in~n| (_ bv1 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} assume true; {1476#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (bvugt (bvadd (_ bv128 32) (bvmul (_ bv128 32) |hanoi_#res|)) (_ bv0 32)) (= (bvadd (_ bv128 32) (bvmul (_ bv128 32) |hanoi_#res|)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))) (and (= |hanoi_#in~n| (_ bv1 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} is VALID [2022-02-20 14:37:38,032 INFO L290 TraceCheckUtils]: 26: Hoare triple {1483#(or (= |hanoi_#in~n| (_ bv1 32)) (not (= hanoi_~n (_ bv1 32))))} assume 1bv32 == ~n;#res := 1bv32; {1476#(forall ((|v_hanoi_#in~n_BEFORE_CALL_26| (_ BitVec 32))) (or (and (bvugt (bvadd (_ bv128 32) (bvmul (_ bv128 32) |hanoi_#res|)) (_ bv0 32)) (= (bvadd (_ bv128 32) (bvmul (_ bv128 32) |hanoi_#res|)) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))) (and (= |hanoi_#in~n| (_ bv1 32)) (not (= (_ bv256 32) (bvshl (_ bv1 32) |v_hanoi_#in~n_BEFORE_CALL_26|))))))} is VALID [2022-02-20 14:37:38,032 INFO L290 TraceCheckUtils]: 25: Hoare triple {1177#true} ~n := #in~n; {1483#(or (= |hanoi_#in~n| (_ bv1 32)) (not (= hanoi_~n (_ bv1 32))))} is VALID [2022-02-20 14:37:38,033 INFO L272 TraceCheckUtils]: 24: Hoare triple {1472#(or (not (= hanoi_~n (_ bv2 32))) (= |hanoi_#in~n| (_ bv2 32)))} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {1177#true} is VALID [2022-02-20 14:37:38,033 INFO L290 TraceCheckUtils]: 23: Hoare triple {1472#(or (not (= hanoi_~n (_ bv2 32))) (= |hanoi_#in~n| (_ bv2 32)))} assume !(1bv32 == ~n); {1472#(or (not (= hanoi_~n (_ bv2 32))) (= |hanoi_#in~n| (_ bv2 32)))} is VALID [2022-02-20 14:37:38,034 INFO L290 TraceCheckUtils]: 22: Hoare triple {1177#true} ~n := #in~n; {1472#(or (not (= hanoi_~n (_ bv2 32))) (= |hanoi_#in~n| (_ bv2 32)))} is VALID [2022-02-20 14:37:38,034 INFO L272 TraceCheckUtils]: 21: Hoare triple {1457#(or (not (= hanoi_~n (_ bv3 32))) (= |hanoi_#in~n| (_ bv3 32)))} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {1177#true} is VALID [2022-02-20 14:37:38,034 INFO L290 TraceCheckUtils]: 20: Hoare triple {1457#(or (not (= hanoi_~n (_ bv3 32))) (= |hanoi_#in~n| (_ bv3 32)))} assume !(1bv32 == ~n); {1457#(or (not (= hanoi_~n (_ bv3 32))) (= |hanoi_#in~n| (_ bv3 32)))} is VALID [2022-02-20 14:37:38,035 INFO L290 TraceCheckUtils]: 19: Hoare triple {1177#true} ~n := #in~n; {1457#(or (not (= hanoi_~n (_ bv3 32))) (= |hanoi_#in~n| (_ bv3 32)))} is VALID [2022-02-20 14:37:38,035 INFO L272 TraceCheckUtils]: 18: Hoare triple {1442#(or (not (= (_ bv4 32) hanoi_~n)) (= |hanoi_#in~n| (_ bv4 32)))} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {1177#true} is VALID [2022-02-20 14:37:38,035 INFO L290 TraceCheckUtils]: 17: Hoare triple {1442#(or (not (= (_ bv4 32) hanoi_~n)) (= |hanoi_#in~n| (_ bv4 32)))} assume !(1bv32 == ~n); {1442#(or (not (= (_ bv4 32) hanoi_~n)) (= |hanoi_#in~n| (_ bv4 32)))} is VALID [2022-02-20 14:37:38,035 INFO L290 TraceCheckUtils]: 16: Hoare triple {1177#true} ~n := #in~n; {1442#(or (not (= (_ bv4 32) hanoi_~n)) (= |hanoi_#in~n| (_ bv4 32)))} is VALID [2022-02-20 14:37:38,036 INFO L272 TraceCheckUtils]: 15: Hoare triple {1427#(or (not (= hanoi_~n (_ bv5 32))) (= |hanoi_#in~n| (_ bv5 32)))} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {1177#true} is VALID [2022-02-20 14:37:38,036 INFO L290 TraceCheckUtils]: 14: Hoare triple {1427#(or (not (= hanoi_~n (_ bv5 32))) (= |hanoi_#in~n| (_ bv5 32)))} assume !(1bv32 == ~n); {1427#(or (not (= hanoi_~n (_ bv5 32))) (= |hanoi_#in~n| (_ bv5 32)))} is VALID [2022-02-20 14:37:38,036 INFO L290 TraceCheckUtils]: 13: Hoare triple {1177#true} ~n := #in~n; {1427#(or (not (= hanoi_~n (_ bv5 32))) (= |hanoi_#in~n| (_ bv5 32)))} is VALID [2022-02-20 14:37:38,036 INFO L272 TraceCheckUtils]: 12: Hoare triple {1412#(or (not (= hanoi_~n (_ bv6 32))) (= |hanoi_#in~n| (_ bv6 32)))} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {1177#true} is VALID [2022-02-20 14:37:38,037 INFO L290 TraceCheckUtils]: 11: Hoare triple {1412#(or (not (= hanoi_~n (_ bv6 32))) (= |hanoi_#in~n| (_ bv6 32)))} assume !(1bv32 == ~n); {1412#(or (not (= hanoi_~n (_ bv6 32))) (= |hanoi_#in~n| (_ bv6 32)))} is VALID [2022-02-20 14:37:38,037 INFO L290 TraceCheckUtils]: 10: Hoare triple {1177#true} ~n := #in~n; {1412#(or (not (= hanoi_~n (_ bv6 32))) (= |hanoi_#in~n| (_ bv6 32)))} is VALID [2022-02-20 14:37:38,037 INFO L272 TraceCheckUtils]: 9: Hoare triple {1397#(or (not (= hanoi_~n (_ bv7 32))) (= |hanoi_#in~n| (_ bv7 32)))} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {1177#true} is VALID [2022-02-20 14:37:38,038 INFO L290 TraceCheckUtils]: 8: Hoare triple {1397#(or (not (= hanoi_~n (_ bv7 32))) (= |hanoi_#in~n| (_ bv7 32)))} assume !(1bv32 == ~n); {1397#(or (not (= hanoi_~n (_ bv7 32))) (= |hanoi_#in~n| (_ bv7 32)))} is VALID [2022-02-20 14:37:38,039 INFO L290 TraceCheckUtils]: 7: Hoare triple {1177#true} ~n := #in~n; {1397#(or (not (= hanoi_~n (_ bv7 32))) (= |hanoi_#in~n| (_ bv7 32)))} is VALID [2022-02-20 14:37:38,039 INFO L272 TraceCheckUtils]: 6: Hoare triple {1382#(or (= (_ bv256 32) (bvshl (_ bv1 32) |hanoi_#in~n|)) (not (= (_ bv7 32) (bvadd (_ bv4294967295 32) hanoi_~n))))} call #t~ret4 := hanoi(~bvsub32(~n, 1bv32)); {1177#true} is VALID [2022-02-20 14:37:38,039 INFO L290 TraceCheckUtils]: 5: Hoare triple {1382#(or (= (_ bv256 32) (bvshl (_ bv1 32) |hanoi_#in~n|)) (not (= (_ bv7 32) (bvadd (_ bv4294967295 32) hanoi_~n))))} assume !(1bv32 == ~n); {1382#(or (= (_ bv256 32) (bvshl (_ bv1 32) |hanoi_#in~n|)) (not (= (_ bv7 32) (bvadd (_ bv4294967295 32) hanoi_~n))))} is VALID [2022-02-20 14:37:38,039 INFO L290 TraceCheckUtils]: 4: Hoare triple {1177#true} ~n := #in~n; {1382#(or (= (_ bv256 32) (bvshl (_ bv1 32) |hanoi_#in~n|)) (not (= (_ bv7 32) (bvadd (_ bv4294967295 32) hanoi_~n))))} is VALID [2022-02-20 14:37:38,040 INFO L272 TraceCheckUtils]: 3: Hoare triple {1177#true} call main_#t~ret6#1 := hanoi(main_~n~0#1); {1177#true} is VALID [2022-02-20 14:37:38,040 INFO L290 TraceCheckUtils]: 2: Hoare triple {1177#true} assume !~bvslt32(main_~n~0#1, 1bv32); {1177#true} is VALID [2022-02-20 14:37:38,040 INFO L290 TraceCheckUtils]: 1: Hoare triple {1177#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet5#1, main_#t~ret6#1, main_~n~0#1, main_~result~0#1;main_~n~0#1 := main_#t~nondet5#1;havoc main_#t~nondet5#1; {1177#true} is VALID [2022-02-20 14:37:38,040 INFO L290 TraceCheckUtils]: 0: Hoare triple {1177#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(15bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {1177#true} is VALID [2022-02-20 14:37:38,040 INFO L134 CoverageAnalysis]: Checked inductivity of 154 backedges. 0 proven. 126 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2022-02-20 14:37:38,041 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 14:37:38,041 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [265102276] [2022-02-20 14:37:38,041 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [265102276] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 14:37:38,041 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 14:37:38,041 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 27] total 46 [2022-02-20 14:37:38,042 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [598668386] [2022-02-20 14:37:38,042 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 14:37:38,043 INFO L78 Accepts]: Start accepts. Automaton has has 46 states, 45 states have (on average 1.288888888888889) internal successors, (58), 30 states have internal predecessors, (58), 10 states have call successors, (10), 1 states have call predecessors, (10), 16 states have return successors, (16), 16 states have call predecessors, (16), 10 states have call successors, (16) Word has length 53