./Ultimate.py --spec ../../sv-benchmarks/c/properties/unreach-call.prp --file ../../sv-benchmarks/c/bitvector-regression/recHanoi03_false-unreach-call_true-termination.c --full-output --architecture 32bit -------------------------------------------------------------------------------- Checking for ERROR reachability Using default analysis Version aa418289 Calling Ultimate with: java -Dosgi.configuration.area=/tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/data/config -Xmx12G -Xms1G -jar /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/data -tc /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/config/KojakReach.xml -i ../../sv-benchmarks/c/bitvector-regression/recHanoi03_false-unreach-call_true-termination.c -s /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/config/svcomp-Reach-32bit-Kojak_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(__VERIFIER_error())) ) --witnessprinter.graph.data.producer Kojak --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash 9cd87c15c4637a3ecd407847e5a675763d5fece5 ............................................................................................................................................................................................................................................................................................................................................................................................................... Execution finished normally Using bit-precise analysis Retrying with bit-precise analysis Calling Ultimate with: java -Dosgi.configuration.area=/tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/data/config -Xmx12G -Xms1G -jar /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/data -tc /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/config/KojakReach.xml -i ../../sv-benchmarks/c/bitvector-regression/recHanoi03_false-unreach-call_true-termination.c -s /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/config/svcomp-Reach-32bit-Kojak_Bitvector.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(__VERIFIER_error())) ) --witnessprinter.graph.data.producer Kojak --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash 9cd87c15c4637a3ecd407847e5a675763d5fece5 ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ Execution finished normally Writing output log to file Ultimate.log Writing human readable error path to file UltimateCounterExample.errorpath Result: FALSE --- Real Ultimate output --- This is Ultimate 0.1.23-aa41828 [2018-11-23 14:39:30,591 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 14:39:30,592 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 14:39:30,603 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 14:39:30,603 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 14:39:30,604 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 14:39:30,605 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 14:39:30,607 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 14:39:30,608 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 14:39:30,609 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 14:39:30,610 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 14:39:30,610 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 14:39:30,611 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 14:39:30,612 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 14:39:30,613 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 14:39:30,613 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 14:39:30,614 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 14:39:30,616 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 14:39:30,617 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 14:39:30,619 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 14:39:30,620 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 14:39:30,621 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 14:39:30,623 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 14:39:30,623 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 14:39:30,623 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 14:39:30,624 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 14:39:30,625 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 14:39:30,626 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 14:39:30,626 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 14:39:30,627 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 14:39:30,627 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 14:39:30,628 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 14:39:30,628 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 14:39:30,628 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 14:39:30,629 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 14:39:30,630 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 14:39:30,630 INFO L98 SettingsManager]: Beginning loading settings from /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/config/svcomp-Reach-32bit-Kojak_Default.epf [2018-11-23 14:39:30,643 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 14:39:30,643 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 14:39:30,644 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 14:39:30,644 INFO L133 SettingsManager]: * ... to procedures called more than once=ALWAYS [2018-11-23 14:39:30,645 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-23 14:39:30,645 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-23 14:39:30,645 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 14:39:30,645 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 14:39:30,645 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-23 14:39:30,645 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 14:39:30,646 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 14:39:30,646 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 14:39:30,646 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 14:39:30,646 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 14:39:30,646 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 14:39:30,646 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 14:39:30,647 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 14:39:30,647 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 14:39:30,647 INFO L131 SettingsManager]: Preferences of CodeCheck differ from their defaults: [2018-11-23 14:39:30,647 INFO L133 SettingsManager]: * Timeout in seconds=1000000 [2018-11-23 14:39:30,647 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 14:39:30,648 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 14:39:30,648 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:10000 [2018-11-23 14:39:30,648 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 14:39:30,648 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 14:39:30,648 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 14:39:30,648 INFO L133 SettingsManager]: * Trace refinement strategy=PENGUIN [2018-11-23 14:39:30,649 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 14:39:30,649 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-23 14:39:30,649 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true 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 -> /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak 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(__VERIFIER_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Kojak 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 -> 9cd87c15c4637a3ecd407847e5a675763d5fece5 [2018-11-23 14:39:30,678 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 14:39:30,689 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 14:39:30,693 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 14:39:30,694 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 14:39:30,694 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 14:39:30,695 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/../../sv-benchmarks/c/bitvector-regression/recHanoi03_false-unreach-call_true-termination.c [2018-11-23 14:39:30,751 INFO L221 CDTParser]: Created temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/data/f9fd80a0e/bc829a4b9781432b9f5ab71ed4678cd4/FLAGb49eafa09 [2018-11-23 14:39:31,140 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 14:39:31,141 INFO L161 CDTParser]: Scanning /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/sv-benchmarks/c/bitvector-regression/recHanoi03_false-unreach-call_true-termination.c [2018-11-23 14:39:31,146 INFO L355 CDTParser]: About to delete temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/data/f9fd80a0e/bc829a4b9781432b9f5ab71ed4678cd4/FLAGb49eafa09 [2018-11-23 14:39:31,156 INFO L363 CDTParser]: Successfully deleted /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/data/f9fd80a0e/bc829a4b9781432b9f5ab71ed4678cd4 [2018-11-23 14:39:31,159 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 14:39:31,161 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 14:39:31,161 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 14:39:31,162 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 14:39:31,164 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 14:39:31,165 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 02:39:31" (1/1) ... [2018-11-23 14:39:31,167 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@29f375ad and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:31, skipping insertion in model container [2018-11-23 14:39:31,168 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 02:39:31" (1/1) ... [2018-11-23 14:39:31,176 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 14:39:31,195 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 14:39:31,333 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 14:39:31,335 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 14:39:31,346 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 14:39:31,355 INFO L195 MainTranslator]: Completed translation [2018-11-23 14:39:31,356 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:31 WrapperNode [2018-11-23 14:39:31,356 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 14:39:31,356 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 14:39:31,356 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 14:39:31,357 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 14:39:31,362 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:31" (1/1) ... [2018-11-23 14:39:31,366 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:31" (1/1) ... [2018-11-23 14:39:31,381 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 14:39:31,381 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 14:39:31,381 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 14:39:31,381 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 14:39:31,387 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:31" (1/1) ... [2018-11-23 14:39:31,388 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:31" (1/1) ... [2018-11-23 14:39:31,388 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:31" (1/1) ... [2018-11-23 14:39:31,388 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:31" (1/1) ... [2018-11-23 14:39:31,390 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:31" (1/1) ... [2018-11-23 14:39:31,392 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:31" (1/1) ... [2018-11-23 14:39:31,392 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:31" (1/1) ... [2018-11-23 14:39:31,393 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 14:39:31,393 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 14:39:31,393 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 14:39:31,394 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 14:39:31,394 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:31" (1/1) ... No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:10000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:10000 [2018-11-23 14:39:31,479 INFO L130 BoogieDeclarations]: Found specification of procedure hanoi [2018-11-23 14:39:31,479 INFO L138 BoogieDeclarations]: Found implementation of procedure hanoi [2018-11-23 14:39:31,480 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 14:39:31,480 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 14:39:31,594 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 14:39:31,594 INFO L280 CfgBuilder]: Removed 4 assue(true) statements. [2018-11-23 14:39:31,594 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 02:39:31 BoogieIcfgContainer [2018-11-23 14:39:31,595 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 14:39:31,595 INFO L113 PluginConnector]: ------------------------CodeCheck---------------------------- [2018-11-23 14:39:31,595 INFO L271 PluginConnector]: Initializing CodeCheck... [2018-11-23 14:39:31,604 INFO L276 PluginConnector]: CodeCheck initialized [2018-11-23 14:39:31,605 INFO L185 PluginConnector]: Executing the observer CodeCheckObserver from plugin CodeCheck for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 02:39:31" (1/1) ... [2018-11-23 14:39:31,615 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 14:39:31,636 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:31,642 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 15 states and 18 transitions. [2018-11-23 14:39:31,643 INFO L276 IsEmpty]: Start isEmpty. Operand 15 states and 18 transitions. [2018-11-23 14:39:31,647 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 11 [2018-11-23 14:39:31,647 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:31,716 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 14:39:31,724 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 14:39:31,747 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 14:39:31,752 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 14:39:31,757 WARN L493 CodeCheckObserver]: This program is UNSAFE, Check terminated with 1 iterations. ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder.RCFGBacktranslator [?] havoc main_#res;havoc main_#t~nondet1, main_#t~ret2, main_~n~0, main_~result~0;assume -2147483648 <= main_#t~nondet1 && main_#t~nondet1 <= 2147483647;main_~n~0 := main_#t~nondet1;havoc main_#t~nondet1; VAL [ULTIMATE.start_main_~n~0=1] [?] assume !(main_~n~0 < 1); VAL [ULTIMATE.start_main_~n~0=1] [?] CALL call main_#t~ret2 := hanoi(main_~n~0); VAL [|hanoi_#in~n|=1] [?] ~n := #in~n; VAL [hanoi_~n=1, |hanoi_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [hanoi_~n=1, |hanoi_#in~n|=1, |hanoi_#res|=1] [?] assume true; VAL [hanoi_~n=1, |hanoi_#in~n|=1, |hanoi_#res|=1] [?] RET #31#return; VAL [ULTIMATE.start_main_~n~0=1, |ULTIMATE.start_main_#t~ret2|=1] [?] main_~result~0 := main_#t~ret2;havoc main_#t~ret2; VAL [ULTIMATE.start_main_~n~0=1, ULTIMATE.start_main_~result~0=1] [?] assume !((1 + main_~result~0) % 4294967296 > 0 && (1 + main_~result~0) % 4294967296 == ~shiftLeft(1, main_~n~0) % 4294967296); VAL [ULTIMATE.start_main_~n~0=1, ULTIMATE.start_main_~result~0=1] [?] assume !false; VAL [ULTIMATE.start_main_~n~0=1, ULTIMATE.start_main_~result~0=1] [?] havoc main_#res; [?] havoc main_#t~nondet1, main_#t~ret2, main_~n~0, main_~result~0; [L25] assume -2147483648 <= main_#t~nondet1 && main_#t~nondet1 <= 2147483647; [L25] main_~n~0 := main_#t~nondet1; [L25] havoc main_#t~nondet1; VAL [main_~n~0=1] [L26-L28] assume !(main_~n~0 < 1); VAL [main_~n~0=1] [L29] CALL call main_#t~ret2 := hanoi(main_~n~0); VAL [#in~n=1] [L16-L21] ~n := #in~n; VAL [#in~n=1, ~n=1] [L17-L19] assume 1 == ~n; [L18] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L16-L21] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L29] RET call main_#t~ret2 := hanoi(main_~n~0); VAL [main_#t~ret2=1, main_~n~0=1] [L29] main_~result~0 := main_#t~ret2; [L29] havoc main_#t~ret2; VAL [main_~n~0=1, main_~result~0=1] [L31-L35] assume !((1 + main_~result~0) % 4294967296 > 0 && (1 + main_~result~0) % 4294967296 == ~shiftLeft(1, main_~n~0) % 4294967296); VAL [main_~n~0=1, main_~result~0=1] [L34] assert false; VAL [main_~n~0=1, main_~result~0=1] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.preprocessor.BoogiePreprocessorBacktranslator [?] havoc main_#res; [?] havoc main_#t~nondet1, main_#t~ret2, main_~n~0, main_~result~0; [L25] assume -2147483648 <= main_#t~nondet1 && main_#t~nondet1 <= 2147483647; [L25] main_~n~0 := main_#t~nondet1; [L25] havoc main_#t~nondet1; VAL [main_~n~0=1] [L26-L28] assume !(main_~n~0 < 1); VAL [main_~n~0=1] [L29] CALL call main_#t~ret2 := hanoi(main_~n~0); VAL [#in~n=1] [L16-L21] ~n := #in~n; VAL [#in~n=1, ~n=1] [L17-L19] assume 1 == ~n; [L18] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L16-L21] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L29] RET call main_#t~ret2 := hanoi(main_~n~0); VAL [main_#t~ret2=1, main_~n~0=1] [L29] main_~result~0 := main_#t~ret2; [L29] havoc main_#t~ret2; VAL [main_~n~0=1, main_~result~0=1] [L31-L35] assume !((1 + main_~result~0) % 4294967296 > 0 && (1 + main_~result~0) % 4294967296 == ~shiftLeft(1, main_~n~0) % 4294967296); VAL [main_~n~0=1, main_~result~0=1] [L34] assert false; VAL [main_~n~0=1, main_~result~0=1] [?] havoc main_#res; [?] havoc main_#t~nondet1, main_#t~ret2, main_~n~0, main_~result~0; [L25] assume -2147483648 <= main_#t~nondet1 && main_#t~nondet1 <= 2147483647; [L25] main_~n~0 := main_#t~nondet1; [L25] havoc main_#t~nondet1; VAL [main_~n~0=1] [L26] COND FALSE !(main_~n~0 < 1) VAL [main_~n~0=1] [L29] CALL call main_#t~ret2 := hanoi(main_~n~0); VAL [#in~n=1] [L16-L21] ~n := #in~n; VAL [#in~n=1, ~n=1] [L17] COND TRUE 1 == ~n [L18] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L29] RET call main_#t~ret2 := hanoi(main_~n~0); VAL [main_#t~ret2=1, main_~n~0=1] [L29] main_~result~0 := main_#t~ret2; [L29] havoc main_#t~ret2; VAL [main_~n~0=1, main_~result~0=1] [L31] COND FALSE !((1 + main_~result~0) % 4294967296 > 0 && (1 + main_~result~0) % 4294967296 == ~shiftLeft(1, main_~n~0) % 4294967296) VAL [main_~n~0=1, main_~result~0=1] [L34] assert false; VAL [main_~n~0=1, main_~result~0=1] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator [?] havoc main_#res; [?] havoc main_#t~nondet1, main_#t~ret2, main_~n~0, main_~result~0; [L25] assume -2147483648 <= main_#t~nondet1 && main_#t~nondet1 <= 2147483647; [L25] main_~n~0 := main_#t~nondet1; [L25] havoc main_#t~nondet1; VAL [main_~n~0=1] [L26] COND FALSE !(main_~n~0 < 1) VAL [main_~n~0=1] [L29] CALL call main_#t~ret2 := hanoi(main_~n~0); VAL [#in~n=1] [L16-L21] ~n := #in~n; VAL [#in~n=1, ~n=1] [L17] COND TRUE 1 == ~n [L18] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L29] RET call main_#t~ret2 := hanoi(main_~n~0); VAL [main_#t~ret2=1, main_~n~0=1] [L29] main_~result~0 := main_#t~ret2; [L29] havoc main_#t~ret2; VAL [main_~n~0=1, main_~result~0=1] [L31] COND FALSE !((1 + main_~result~0) % 4294967296 > 0 && (1 + main_~result~0) % 4294967296 == ~shiftLeft(1, main_~n~0) % 4294967296) VAL [main_~n~0=1, main_~result~0=1] [L34] assert false; VAL [main_~n~0=1, main_~result~0=1] [L25] assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647; [L25] ~n~0 := #t~nondet1; [L25] havoc #t~nondet1; [L26] COND FALSE !(~n~0 < 1) [L29] CALL call #t~ret2 := hanoi(~n~0); VAL [#in~n=1] [L16-L21] ~n := #in~n; VAL [#in~n=1, ~n=1] [L17] COND TRUE 1 == ~n [L18] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L29] RET call #t~ret2 := hanoi(~n~0); [L29] ~result~0 := #t~ret2; [L29] havoc #t~ret2; [L31] COND FALSE !((1 + ~result~0) % 4294967296 > 0 && (1 + ~result~0) % 4294967296 == ~shiftLeft(1, ~n~0) % 4294967296) [L34] assert false; ----- ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.CACSL2BoogieBacktranslator [L25] assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647; [L25] ~n~0 := #t~nondet1; [L25] havoc #t~nondet1; [L26] COND FALSE !(~n~0 < 1) [L29] CALL call #t~ret2 := hanoi(~n~0); VAL [#in~n=1] [L16-L21] ~n := #in~n; VAL [#in~n=1, ~n=1] [L17] COND TRUE 1 == ~n [L18] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L29] RET call #t~ret2 := hanoi(~n~0); [L29] ~result~0 := #t~ret2; [L29] havoc #t~ret2; [L31] COND FALSE !((1 + ~result~0) % 4294967296 > 0 && (1 + ~result~0) % 4294967296 == ~shiftLeft(1, ~n~0) % 4294967296) [L34] assert false; [L25] int n = __VERIFIER_nondet_int(); [L26] COND FALSE !(n < 1) [L29] CALL, EXPR hanoi(n) VAL [\old(n)=1] [L17] COND TRUE n == 1 [L18] return 1; VAL [\old(n)=1, \result=1, n=1] [L29] RET, EXPR hanoi(n) [L29] unsigned result = hanoi(n); [L31] COND FALSE !(result+1>0 && result+1 == 1<0 && result+1 == 1< main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak 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(__VERIFIER_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Kojak 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 -> 9cd87c15c4637a3ecd407847e5a675763d5fece5 [2018-11-23 14:39:33,561 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 14:39:33,572 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 14:39:33,575 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 14:39:33,577 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 14:39:33,577 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 14:39:33,578 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/../../sv-benchmarks/c/bitvector-regression/recHanoi03_false-unreach-call_true-termination.c [2018-11-23 14:39:33,632 INFO L221 CDTParser]: Created temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/data/f0250a804/e200a9c979e645258fce6c52420bd44e/FLAGd6e906b03 [2018-11-23 14:39:33,991 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 14:39:33,992 INFO L161 CDTParser]: Scanning /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/sv-benchmarks/c/bitvector-regression/recHanoi03_false-unreach-call_true-termination.c [2018-11-23 14:39:33,997 INFO L355 CDTParser]: About to delete temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/data/f0250a804/e200a9c979e645258fce6c52420bd44e/FLAGd6e906b03 [2018-11-23 14:39:34,008 INFO L363 CDTParser]: Successfully deleted /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/data/f0250a804/e200a9c979e645258fce6c52420bd44e [2018-11-23 14:39:34,011 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 14:39:34,012 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 14:39:34,013 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 14:39:34,013 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 14:39:34,015 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 14:39:34,016 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 02:39:34" (1/1) ... [2018-11-23 14:39:34,018 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@50e4942f and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:34, skipping insertion in model container [2018-11-23 14:39:34,018 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 02:39:34" (1/1) ... [2018-11-23 14:39:34,025 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 14:39:34,040 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 14:39:34,168 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 14:39:34,171 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 14:39:34,183 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 14:39:34,193 INFO L195 MainTranslator]: Completed translation [2018-11-23 14:39:34,194 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:34 WrapperNode [2018-11-23 14:39:34,194 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 14:39:34,194 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 14:39:34,195 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 14:39:34,195 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 14:39:34,201 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:34" (1/1) ... [2018-11-23 14:39:34,205 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:34" (1/1) ... [2018-11-23 14:39:34,217 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 14:39:34,217 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 14:39:34,217 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 14:39:34,217 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 14:39:34,224 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:34" (1/1) ... [2018-11-23 14:39:34,224 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:34" (1/1) ... [2018-11-23 14:39:34,225 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:34" (1/1) ... [2018-11-23 14:39:34,225 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:34" (1/1) ... [2018-11-23 14:39:34,228 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:34" (1/1) ... [2018-11-23 14:39:34,230 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:34" (1/1) ... [2018-11-23 14:39:34,230 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:34" (1/1) ... [2018-11-23 14:39:34,232 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 14:39:34,232 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 14:39:34,232 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 14:39:34,233 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 14:39:34,233 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 02:39:34" (1/1) ... No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_2630381b-ed42-4b3b-94ca-08dfccd9d28f/bin-2019/ukojak/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:10000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:10000 [2018-11-23 14:39:34,327 INFO L130 BoogieDeclarations]: Found specification of procedure hanoi [2018-11-23 14:39:34,327 INFO L138 BoogieDeclarations]: Found implementation of procedure hanoi [2018-11-23 14:39:34,328 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 14:39:34,328 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 14:39:34,443 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 14:39:34,444 INFO L280 CfgBuilder]: Removed 4 assue(true) statements. [2018-11-23 14:39:34,444 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 02:39:34 BoogieIcfgContainer [2018-11-23 14:39:34,444 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 14:39:34,444 INFO L113 PluginConnector]: ------------------------CodeCheck---------------------------- [2018-11-23 14:39:34,444 INFO L271 PluginConnector]: Initializing CodeCheck... [2018-11-23 14:39:34,455 INFO L276 PluginConnector]: CodeCheck initialized [2018-11-23 14:39:34,455 INFO L185 PluginConnector]: Executing the observer CodeCheckObserver from plugin CodeCheck for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 02:39:34" (1/1) ... [2018-11-23 14:39:34,466 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 14:39:34,489 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:34,496 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 15 states and 18 transitions. [2018-11-23 14:39:34,496 INFO L276 IsEmpty]: Start isEmpty. Operand 15 states and 18 transitions. [2018-11-23 14:39:34,501 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 11 [2018-11-23 14:39:34,501 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:34,539 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:39:34,553 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:39:34,561 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:39:34,677 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 14:39:34,862 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:34,862 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 24 states to 19 states and 23 transitions. [2018-11-23 14:39:34,862 INFO L276 IsEmpty]: Start isEmpty. Operand 19 states and 23 transitions. [2018-11-23 14:39:34,863 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 17 [2018-11-23 14:39:34,863 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:34,864 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:39:34,872 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:39:34,874 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:39:34,978 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2018-11-23 14:39:35,331 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:35,332 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 35 states to 24 states and 30 transitions. [2018-11-23 14:39:35,332 INFO L276 IsEmpty]: Start isEmpty. Operand 24 states and 30 transitions. [2018-11-23 14:39:35,333 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 23 [2018-11-23 14:39:35,333 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:35,334 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:39:35,345 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:39:35,347 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:39:35,518 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2018-11-23 14:39:36,017 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:36,018 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 29 states and 37 transitions. [2018-11-23 14:39:36,018 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 37 transitions. [2018-11-23 14:39:36,019 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 29 [2018-11-23 14:39:36,020 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:36,020 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:39:36,029 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:39:36,032 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:39:36,167 INFO L134 CoverageAnalysis]: Checked inductivity of 30 backedges. 0 proven. 15 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2018-11-23 14:39:36,741 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:36,741 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 53 states to 34 states and 44 transitions. [2018-11-23 14:39:36,741 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 44 transitions. [2018-11-23 14:39:36,742 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 35 [2018-11-23 14:39:36,742 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:36,743 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:39:36,752 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:39:36,755 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:39:36,932 INFO L134 CoverageAnalysis]: Checked inductivity of 52 backedges. 0 proven. 26 refuted. 0 times theorem prover too weak. 26 trivial. 0 not checked. [2018-11-23 14:39:37,563 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:37,564 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 62 states to 39 states and 51 transitions. [2018-11-23 14:39:37,564 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 51 transitions. [2018-11-23 14:39:37,565 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 41 [2018-11-23 14:39:37,565 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:37,566 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:39:37,576 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:39:37,579 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:39:37,768 INFO L134 CoverageAnalysis]: Checked inductivity of 80 backedges. 0 proven. 40 refuted. 0 times theorem prover too weak. 40 trivial. 0 not checked. [2018-11-23 14:39:38,542 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:38,543 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 44 states and 58 transitions. [2018-11-23 14:39:38,543 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 58 transitions. [2018-11-23 14:39:38,544 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 47 [2018-11-23 14:39:38,545 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:38,546 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:39:38,567 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:39:38,570 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:39:38,796 INFO L134 CoverageAnalysis]: Checked inductivity of 114 backedges. 0 proven. 57 refuted. 0 times theorem prover too weak. 57 trivial. 0 not checked. [2018-11-23 14:39:39,791 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:39,792 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 80 states to 49 states and 65 transitions. [2018-11-23 14:39:39,792 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 65 transitions. [2018-11-23 14:39:39,793 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 53 [2018-11-23 14:39:39,794 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:39,795 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:39:39,819 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:39:39,823 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:39:40,113 INFO L134 CoverageAnalysis]: Checked inductivity of 154 backedges. 0 proven. 77 refuted. 0 times theorem prover too weak. 77 trivial. 0 not checked. [2018-11-23 14:39:41,342 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:41,343 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 89 states to 54 states and 72 transitions. [2018-11-23 14:39:41,343 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 72 transitions. [2018-11-23 14:39:41,345 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 59 [2018-11-23 14:39:41,345 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:41,346 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:39:41,361 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:39:41,365 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:39:41,735 INFO L134 CoverageAnalysis]: Checked inductivity of 200 backedges. 0 proven. 100 refuted. 0 times theorem prover too weak. 100 trivial. 0 not checked. [2018-11-23 14:39:42,993 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:42,994 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 98 states to 59 states and 79 transitions. [2018-11-23 14:39:42,994 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 79 transitions. [2018-11-23 14:39:42,995 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 65 [2018-11-23 14:39:42,995 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:42,996 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:39:43,010 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:39:43,014 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:39:43,325 INFO L134 CoverageAnalysis]: Checked inductivity of 252 backedges. 0 proven. 126 refuted. 0 times theorem prover too weak. 126 trivial. 0 not checked. [2018-11-23 14:39:44,834 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:44,834 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 107 states to 64 states and 86 transitions. [2018-11-23 14:39:44,834 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 86 transitions. [2018-11-23 14:39:44,836 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 71 [2018-11-23 14:39:44,836 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:44,837 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:39:44,854 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:39:44,859 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:39:45,224 INFO L134 CoverageAnalysis]: Checked inductivity of 310 backedges. 0 proven. 155 refuted. 0 times theorem prover too weak. 155 trivial. 0 not checked. [2018-11-23 14:39:46,874 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:46,875 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 116 states to 69 states and 93 transitions. [2018-11-23 14:39:46,875 INFO L276 IsEmpty]: Start isEmpty. Operand 69 states and 93 transitions. [2018-11-23 14:39:46,876 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 77 [2018-11-23 14:39:46,876 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:46,876 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:39:46,894 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:39:46,898 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:39:47,300 INFO L134 CoverageAnalysis]: Checked inductivity of 374 backedges. 0 proven. 187 refuted. 0 times theorem prover too weak. 187 trivial. 0 not checked. [2018-11-23 14:39:49,119 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:49,120 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 125 states to 74 states and 100 transitions. [2018-11-23 14:39:49,120 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 100 transitions. [2018-11-23 14:39:49,121 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 83 [2018-11-23 14:39:49,121 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:49,122 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:39:49,139 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:39:49,144 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:39:49,559 INFO L134 CoverageAnalysis]: Checked inductivity of 444 backedges. 0 proven. 222 refuted. 0 times theorem prover too weak. 222 trivial. 0 not checked. [2018-11-23 14:39:51,602 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:51,603 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 134 states to 79 states and 107 transitions. [2018-11-23 14:39:51,603 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 107 transitions. [2018-11-23 14:39:51,604 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 89 [2018-11-23 14:39:51,604 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:51,605 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:39:51,623 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:39:51,628 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:39:52,066 INFO L134 CoverageAnalysis]: Checked inductivity of 520 backedges. 0 proven. 260 refuted. 0 times theorem prover too weak. 260 trivial. 0 not checked. [2018-11-23 14:39:54,397 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:54,397 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 143 states to 84 states and 114 transitions. [2018-11-23 14:39:54,398 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 114 transitions. [2018-11-23 14:39:54,398 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 95 [2018-11-23 14:39:54,398 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:54,399 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:39:54,419 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:39:54,424 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:39:54,924 INFO L134 CoverageAnalysis]: Checked inductivity of 602 backedges. 0 proven. 301 refuted. 0 times theorem prover too weak. 301 trivial. 0 not checked. [2018-11-23 14:39:57,405 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:39:57,405 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 152 states to 89 states and 121 transitions. [2018-11-23 14:39:57,405 INFO L276 IsEmpty]: Start isEmpty. Operand 89 states and 121 transitions. [2018-11-23 14:39:57,406 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 101 [2018-11-23 14:39:57,406 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:39:57,407 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:39:57,438 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:39:57,443 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:39:57,960 INFO L134 CoverageAnalysis]: Checked inductivity of 690 backedges. 0 proven. 345 refuted. 0 times theorem prover too weak. 345 trivial. 0 not checked. [2018-11-23 14:40:00,711 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:40:00,711 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 161 states to 94 states and 128 transitions. [2018-11-23 14:40:00,711 INFO L276 IsEmpty]: Start isEmpty. Operand 94 states and 128 transitions. [2018-11-23 14:40:00,712 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 107 [2018-11-23 14:40:00,712 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:40:00,713 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:40:00,736 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:40:00,742 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:40:01,300 INFO L134 CoverageAnalysis]: Checked inductivity of 784 backedges. 0 proven. 392 refuted. 0 times theorem prover too weak. 392 trivial. 0 not checked. [2018-11-23 14:40:04,286 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:40:04,287 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 170 states to 99 states and 135 transitions. [2018-11-23 14:40:04,287 INFO L276 IsEmpty]: Start isEmpty. Operand 99 states and 135 transitions. [2018-11-23 14:40:04,288 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 113 [2018-11-23 14:40:04,288 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:40:04,289 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:40:04,313 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:40:04,319 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:40:04,926 INFO L134 CoverageAnalysis]: Checked inductivity of 884 backedges. 0 proven. 442 refuted. 0 times theorem prover too weak. 442 trivial. 0 not checked. [2018-11-23 14:40:08,179 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:40:08,179 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 179 states to 104 states and 142 transitions. [2018-11-23 14:40:08,180 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 142 transitions. [2018-11-23 14:40:08,180 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 119 [2018-11-23 14:40:08,180 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:40:08,181 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:40:08,206 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:40:08,211 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:40:08,917 INFO L134 CoverageAnalysis]: Checked inductivity of 990 backedges. 0 proven. 495 refuted. 0 times theorem prover too weak. 495 trivial. 0 not checked. [2018-11-23 14:40:12,485 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:40:12,485 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 188 states to 109 states and 149 transitions. [2018-11-23 14:40:12,486 INFO L276 IsEmpty]: Start isEmpty. Operand 109 states and 149 transitions. [2018-11-23 14:40:12,487 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 125 [2018-11-23 14:40:12,487 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:40:12,488 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:40:12,513 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:40:12,519 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:40:13,207 INFO L134 CoverageAnalysis]: Checked inductivity of 1102 backedges. 0 proven. 551 refuted. 0 times theorem prover too weak. 551 trivial. 0 not checked. [2018-11-23 14:40:16,840 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:40:16,841 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 197 states to 114 states and 156 transitions. [2018-11-23 14:40:16,841 INFO L276 IsEmpty]: Start isEmpty. Operand 114 states and 156 transitions. [2018-11-23 14:40:16,842 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 131 [2018-11-23 14:40:16,842 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:40:16,843 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:40:16,866 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:40:16,872 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:40:17,498 INFO L134 CoverageAnalysis]: Checked inductivity of 1220 backedges. 0 proven. 610 refuted. 0 times theorem prover too weak. 610 trivial. 0 not checked. [2018-11-23 14:40:21,051 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:40:21,051 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 206 states to 119 states and 163 transitions. [2018-11-23 14:40:21,051 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 163 transitions. [2018-11-23 14:40:21,052 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 137 [2018-11-23 14:40:21,052 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:40:21,053 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:40:21,076 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:40:21,081 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:40:21,724 INFO L134 CoverageAnalysis]: Checked inductivity of 1344 backedges. 0 proven. 672 refuted. 0 times theorem prover too weak. 672 trivial. 0 not checked. [2018-11-23 14:40:24,986 WARN L180 SmtUtils]: Spent 102.00 ms on a formula simplification that was a NOOP. DAG size: 161 [2018-11-23 14:40:25,509 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:40:25,509 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 215 states to 124 states and 170 transitions. [2018-11-23 14:40:25,509 INFO L276 IsEmpty]: Start isEmpty. Operand 124 states and 170 transitions. [2018-11-23 14:40:25,510 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 143 [2018-11-23 14:40:25,510 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:40:25,511 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:40:25,535 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:40:25,540 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:40:26,240 INFO L134 CoverageAnalysis]: Checked inductivity of 1474 backedges. 0 proven. 737 refuted. 0 times theorem prover too weak. 737 trivial. 0 not checked. [2018-11-23 14:40:28,190 WARN L180 SmtUtils]: Spent 100.00 ms on a formula simplification that was a NOOP. DAG size: 181 [2018-11-23 14:40:28,716 WARN L180 SmtUtils]: Spent 104.00 ms on a formula simplification that was a NOOP. DAG size: 169 [2018-11-23 14:40:29,269 WARN L180 SmtUtils]: Spent 102.00 ms on a formula simplification that was a NOOP. DAG size: 170 [2018-11-23 14:40:29,717 WARN L180 SmtUtils]: Spent 102.00 ms on a formula simplification that was a NOOP. DAG size: 168 [2018-11-23 14:40:30,444 WARN L180 SmtUtils]: Spent 100.00 ms on a formula simplification that was a NOOP. DAG size: 169 [2018-11-23 14:40:30,457 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:40:30,458 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 224 states to 129 states and 177 transitions. [2018-11-23 14:40:30,458 INFO L276 IsEmpty]: Start isEmpty. Operand 129 states and 177 transitions. [2018-11-23 14:40:30,458 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 149 [2018-11-23 14:40:30,459 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:40:30,459 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:40:30,483 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:40:30,488 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:40:31,213 INFO L134 CoverageAnalysis]: Checked inductivity of 1610 backedges. 0 proven. 805 refuted. 0 times theorem prover too weak. 805 trivial. 0 not checked. [2018-11-23 14:40:32,905 WARN L180 SmtUtils]: Spent 106.00 ms on a formula simplification that was a NOOP. DAG size: 188 [2018-11-23 14:40:33,413 WARN L180 SmtUtils]: Spent 102.00 ms on a formula simplification that was a NOOP. DAG size: 189 [2018-11-23 14:40:33,974 WARN L180 SmtUtils]: Spent 107.00 ms on a formula simplification that was a NOOP. DAG size: 176 [2018-11-23 14:40:34,569 WARN L180 SmtUtils]: Spent 109.00 ms on a formula simplification that was a NOOP. DAG size: 177 [2018-11-23 14:40:35,063 WARN L180 SmtUtils]: Spent 103.00 ms on a formula simplification that was a NOOP. DAG size: 176 [2018-11-23 14:40:35,874 WARN L180 SmtUtils]: Spent 108.00 ms on a formula simplification that was a NOOP. DAG size: 177 [2018-11-23 14:40:35,888 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:40:35,888 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 233 states to 134 states and 184 transitions. [2018-11-23 14:40:35,888 INFO L276 IsEmpty]: Start isEmpty. Operand 134 states and 184 transitions. [2018-11-23 14:40:35,889 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 155 [2018-11-23 14:40:35,889 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:40:35,890 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:40:35,916 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:40:35,923 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:40:36,723 INFO L134 CoverageAnalysis]: Checked inductivity of 1752 backedges. 0 proven. 876 refuted. 0 times theorem prover too weak. 876 trivial. 0 not checked. [2018-11-23 14:40:37,222 WARN L180 SmtUtils]: Spent 104.00 ms on a formula simplification that was a NOOP. DAG size: 175 [2018-11-23 14:40:37,916 WARN L180 SmtUtils]: Spent 119.00 ms on a formula simplification that was a NOOP. DAG size: 176 [2018-11-23 14:40:38,581 WARN L180 SmtUtils]: Spent 115.00 ms on a formula simplification that was a NOOP. DAG size: 196 [2018-11-23 14:40:39,177 WARN L180 SmtUtils]: Spent 113.00 ms on a formula simplification that was a NOOP. DAG size: 197 [2018-11-23 14:40:39,823 WARN L180 SmtUtils]: Spent 119.00 ms on a formula simplification that was a NOOP. DAG size: 182 [2018-11-23 14:40:40,479 WARN L180 SmtUtils]: Spent 112.00 ms on a formula simplification that was a NOOP. DAG size: 183 [2018-11-23 14:40:41,034 WARN L180 SmtUtils]: Spent 127.00 ms on a formula simplification that was a NOOP. DAG size: 183 [2018-11-23 14:40:41,930 WARN L180 SmtUtils]: Spent 111.00 ms on a formula simplification that was a NOOP. DAG size: 184 [2018-11-23 14:40:41,944 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:40:41,944 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 242 states to 139 states and 191 transitions. [2018-11-23 14:40:41,944 INFO L276 IsEmpty]: Start isEmpty. Operand 139 states and 191 transitions. [2018-11-23 14:40:41,945 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 161 [2018-11-23 14:40:41,945 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:40:41,946 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:40:41,980 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:40:41,986 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:40:42,821 INFO L134 CoverageAnalysis]: Checked inductivity of 1900 backedges. 0 proven. 950 refuted. 0 times theorem prover too weak. 950 trivial. 0 not checked. [2018-11-23 14:40:43,339 WARN L180 SmtUtils]: Spent 119.00 ms on a formula simplification that was a NOOP. DAG size: 183 [2018-11-23 14:40:44,056 WARN L180 SmtUtils]: Spent 124.00 ms on a formula simplification that was a NOOP. DAG size: 184 [2018-11-23 14:40:44,730 WARN L180 SmtUtils]: Spent 124.00 ms on a formula simplification that was a NOOP. DAG size: 204 [2018-11-23 14:40:45,351 WARN L180 SmtUtils]: Spent 131.00 ms on a formula simplification that was a NOOP. DAG size: 205 [2018-11-23 14:40:45,978 WARN L180 SmtUtils]: Spent 118.00 ms on a formula simplification that was a NOOP. DAG size: 189 [2018-11-23 14:40:46,646 WARN L180 SmtUtils]: Spent 123.00 ms on a formula simplification that was a NOOP. DAG size: 190 [2018-11-23 14:40:47,214 WARN L180 SmtUtils]: Spent 124.00 ms on a formula simplification that was a NOOP. DAG size: 191 [2018-11-23 14:40:48,167 WARN L180 SmtUtils]: Spent 117.00 ms on a formula simplification that was a NOOP. DAG size: 192 [2018-11-23 14:40:48,181 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:40:48,182 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 251 states to 144 states and 198 transitions. [2018-11-23 14:40:48,182 INFO L276 IsEmpty]: Start isEmpty. Operand 144 states and 198 transitions. [2018-11-23 14:40:48,183 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 167 [2018-11-23 14:40:48,183 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:40:48,183 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:40:48,211 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:40:48,217 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:40:49,109 INFO L134 CoverageAnalysis]: Checked inductivity of 2054 backedges. 0 proven. 1027 refuted. 0 times theorem prover too weak. 1027 trivial. 0 not checked. [2018-11-23 14:40:49,845 WARN L180 SmtUtils]: Spent 119.00 ms on a formula simplification that was a NOOP. DAG size: 191 [2018-11-23 14:40:50,639 WARN L180 SmtUtils]: Spent 125.00 ms on a formula simplification that was a NOOP. DAG size: 192 [2018-11-23 14:40:51,436 WARN L180 SmtUtils]: Spent 163.00 ms on a formula simplification that was a NOOP. DAG size: 212 [2018-11-23 14:40:52,152 WARN L180 SmtUtils]: Spent 133.00 ms on a formula simplification that was a NOOP. DAG size: 213 [2018-11-23 14:40:52,854 WARN L180 SmtUtils]: Spent 139.00 ms on a formula simplification that was a NOOP. DAG size: 196 [2018-11-23 14:40:53,591 WARN L180 SmtUtils]: Spent 124.00 ms on a formula simplification that was a NOOP. DAG size: 197 [2018-11-23 14:40:54,193 WARN L180 SmtUtils]: Spent 139.00 ms on a formula simplification that was a NOOP. DAG size: 199 [2018-11-23 14:40:55,233 WARN L180 SmtUtils]: Spent 128.00 ms on a formula simplification that was a NOOP. DAG size: 200 [2018-11-23 14:40:55,247 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:40:55,247 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 260 states to 149 states and 205 transitions. [2018-11-23 14:40:55,247 INFO L276 IsEmpty]: Start isEmpty. Operand 149 states and 205 transitions. [2018-11-23 14:40:55,248 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 173 [2018-11-23 14:40:55,248 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:40:55,249 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:40:55,279 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:40:55,285 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:40:56,193 INFO L134 CoverageAnalysis]: Checked inductivity of 2214 backedges. 0 proven. 1107 refuted. 0 times theorem prover too weak. 1107 trivial. 0 not checked. [2018-11-23 14:40:56,783 WARN L180 SmtUtils]: Spent 133.00 ms on a formula simplification that was a NOOP. DAG size: 198 [2018-11-23 14:40:57,624 WARN L180 SmtUtils]: Spent 132.00 ms on a formula simplification that was a NOOP. DAG size: 199 [2018-11-23 14:40:58,402 WARN L180 SmtUtils]: Spent 135.00 ms on a formula simplification that was a NOOP. DAG size: 220 [2018-11-23 14:40:59,136 WARN L180 SmtUtils]: Spent 131.00 ms on a formula simplification that was a NOOP. DAG size: 221 [2018-11-23 14:40:59,841 WARN L180 SmtUtils]: Spent 141.00 ms on a formula simplification that was a NOOP. DAG size: 203 [2018-11-23 14:41:00,611 WARN L180 SmtUtils]: Spent 129.00 ms on a formula simplification that was a NOOP. DAG size: 204 [2018-11-23 14:41:01,232 WARN L180 SmtUtils]: Spent 136.00 ms on a formula simplification that was a NOOP. DAG size: 207 [2018-11-23 14:41:02,347 WARN L180 SmtUtils]: Spent 134.00 ms on a formula simplification that was a NOOP. DAG size: 208 [2018-11-23 14:41:02,362 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:41:02,363 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 269 states to 154 states and 212 transitions. [2018-11-23 14:41:02,363 INFO L276 IsEmpty]: Start isEmpty. Operand 154 states and 212 transitions. [2018-11-23 14:41:02,363 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 179 [2018-11-23 14:41:02,363 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:41:02,364 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:41:02,395 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:41:02,402 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:41:03,439 INFO L134 CoverageAnalysis]: Checked inductivity of 2380 backedges. 0 proven. 1190 refuted. 0 times theorem prover too weak. 1190 trivial. 0 not checked. [2018-11-23 14:41:04,044 WARN L180 SmtUtils]: Spent 140.00 ms on a formula simplification that was a NOOP. DAG size: 205 [2018-11-23 14:41:04,722 WARN L180 SmtUtils]: Spent 129.00 ms on a formula simplification that was a NOOP. DAG size: 206 [2018-11-23 14:41:05,513 WARN L180 SmtUtils]: Spent 139.00 ms on a formula simplification that was a NOOP. DAG size: 228 [2018-11-23 14:41:06,279 WARN L180 SmtUtils]: Spent 141.00 ms on a formula simplification that was a NOOP. DAG size: 229 [2018-11-23 14:41:07,018 WARN L180 SmtUtils]: Spent 146.00 ms on a formula simplification that was a NOOP. DAG size: 210 [2018-11-23 14:41:07,835 WARN L180 SmtUtils]: Spent 142.00 ms on a formula simplification that was a NOOP. DAG size: 211 [2018-11-23 14:41:08,485 WARN L180 SmtUtils]: Spent 147.00 ms on a formula simplification that was a NOOP. DAG size: 213 [2018-11-23 14:41:09,655 WARN L180 SmtUtils]: Spent 145.00 ms on a formula simplification that was a NOOP. DAG size: 214 [2018-11-23 14:41:09,671 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:41:09,672 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 278 states to 159 states and 219 transitions. [2018-11-23 14:41:09,672 INFO L276 IsEmpty]: Start isEmpty. Operand 159 states and 219 transitions. [2018-11-23 14:41:09,673 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 185 [2018-11-23 14:41:09,673 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:41:09,673 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:41:09,704 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:41:09,711 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:41:10,703 INFO L134 CoverageAnalysis]: Checked inductivity of 2552 backedges. 0 proven. 1276 refuted. 0 times theorem prover too weak. 1276 trivial. 0 not checked. [2018-11-23 14:41:11,334 WARN L180 SmtUtils]: Spent 136.00 ms on a formula simplification that was a NOOP. DAG size: 212 [2018-11-23 14:41:12,073 WARN L180 SmtUtils]: Spent 156.00 ms on a formula simplification that was a NOOP. DAG size: 213 [2018-11-23 14:41:12,906 WARN L180 SmtUtils]: Spent 149.00 ms on a formula simplification that was a NOOP. DAG size: 236 [2018-11-23 14:41:13,695 WARN L180 SmtUtils]: Spent 149.00 ms on a formula simplification that was a NOOP. DAG size: 237 [2018-11-23 14:41:14,469 WARN L180 SmtUtils]: Spent 154.00 ms on a formula simplification that was a NOOP. DAG size: 217 [2018-11-23 14:41:15,328 WARN L180 SmtUtils]: Spent 156.00 ms on a formula simplification that was a NOOP. DAG size: 218 [2018-11-23 14:41:16,002 WARN L180 SmtUtils]: Spent 144.00 ms on a formula simplification that was a NOOP. DAG size: 220 [2018-11-23 14:41:17,242 WARN L180 SmtUtils]: Spent 153.00 ms on a formula simplification that was a NOOP. DAG size: 221 [2018-11-23 14:41:17,260 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:41:17,260 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 287 states to 164 states and 226 transitions. [2018-11-23 14:41:17,260 INFO L276 IsEmpty]: Start isEmpty. Operand 164 states and 226 transitions. [2018-11-23 14:41:17,261 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 191 [2018-11-23 14:41:17,261 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:41:17,262 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:41:17,296 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 14:41:17,303 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 14:41:18,355 INFO L134 CoverageAnalysis]: Checked inductivity of 2730 backedges. 0 proven. 1365 refuted. 0 times theorem prover too weak. 1365 trivial. 0 not checked. [2018-11-23 14:41:19,009 WARN L180 SmtUtils]: Spent 148.00 ms on a formula simplification that was a NOOP. DAG size: 219 [2018-11-23 14:41:19,779 WARN L180 SmtUtils]: Spent 145.00 ms on a formula simplification that was a NOOP. DAG size: 220 [2018-11-23 14:41:20,674 WARN L180 SmtUtils]: Spent 162.00 ms on a formula simplification that was a NOOP. DAG size: 243 [2018-11-23 14:41:21,544 WARN L180 SmtUtils]: Spent 161.00 ms on a formula simplification that was a NOOP. DAG size: 244 [2018-11-23 14:41:22,406 WARN L180 SmtUtils]: Spent 177.00 ms on a formula simplification that was a NOOP. DAG size: 224 [2018-11-23 14:41:23,310 WARN L180 SmtUtils]: Spent 156.00 ms on a formula simplification that was a NOOP. DAG size: 225 [2018-11-23 14:41:24,031 WARN L180 SmtUtils]: Spent 161.00 ms on a formula simplification that was a NOOP. DAG size: 226 [2018-11-23 14:41:25,363 WARN L180 SmtUtils]: Spent 155.00 ms on a formula simplification that was a NOOP. DAG size: 227 [2018-11-23 14:41:25,378 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 14:41:25,379 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 296 states to 169 states and 233 transitions. [2018-11-23 14:41:25,379 INFO L276 IsEmpty]: Start isEmpty. Operand 169 states and 233 transitions. [2018-11-23 14:41:25,379 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 197 [2018-11-23 14:41:25,379 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 14:41:25,380 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 14:41:25,414 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 14:41:25,451 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 14:41:25,479 WARN L493 CodeCheckObserver]: This program is UNSAFE, Check terminated with 32 iterations. ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder.RCFGBacktranslator [?] havoc main_#res;havoc main_#t~nondet1, main_#t~ret2, main_~n~0, main_~result~0;main_~n~0 := main_#t~nondet1;havoc main_#t~nondet1; [?] assume !~bvslt32(main_~n~0, 1bv32); VAL [ULTIMATE.start_main_~n~0=#x00000020] [?] CALL call main_#t~ret2 := hanoi(main_~n~0); VAL [|hanoi_#in~n|=#x00000020] [?] ~n := #in~n; VAL [hanoi_~n=#x00000020, |hanoi_#in~n|=#x00000020] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000020, |hanoi_#in~n|=#x00000020] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x0000001f] [?] ~n := #in~n; VAL [hanoi_~n=#x0000001f, |hanoi_#in~n|=#x0000001f] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x0000001f, |hanoi_#in~n|=#x0000001f] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x0000001e] [?] ~n := #in~n; VAL [hanoi_~n=#x0000001e, |hanoi_#in~n|=#x0000001e] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x0000001e, |hanoi_#in~n|=#x0000001e] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x0000001d] [?] ~n := #in~n; VAL [hanoi_~n=#x0000001d, |hanoi_#in~n|=#x0000001d] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x0000001d, |hanoi_#in~n|=#x0000001d] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x0000001c] [?] ~n := #in~n; VAL [hanoi_~n=#x0000001c, |hanoi_#in~n|=#x0000001c] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x0000001c, |hanoi_#in~n|=#x0000001c] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x0000001b] [?] ~n := #in~n; VAL [hanoi_~n=#x0000001b, |hanoi_#in~n|=#x0000001b] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x0000001b, |hanoi_#in~n|=#x0000001b] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x0000001a] [?] ~n := #in~n; VAL [hanoi_~n=#x0000001a, |hanoi_#in~n|=#x0000001a] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x0000001a, |hanoi_#in~n|=#x0000001a] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000019] [?] ~n := #in~n; VAL [hanoi_~n=#x00000019, |hanoi_#in~n|=#x00000019] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000019, |hanoi_#in~n|=#x00000019] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000018] [?] ~n := #in~n; VAL [hanoi_~n=#x00000018, |hanoi_#in~n|=#x00000018] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000018, |hanoi_#in~n|=#x00000018] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000017] [?] ~n := #in~n; VAL [hanoi_~n=#x00000017, |hanoi_#in~n|=#x00000017] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000017, |hanoi_#in~n|=#x00000017] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000016] [?] ~n := #in~n; VAL [hanoi_~n=#x00000016, |hanoi_#in~n|=#x00000016] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000016, |hanoi_#in~n|=#x00000016] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000015] [?] ~n := #in~n; VAL [hanoi_~n=#x00000015, |hanoi_#in~n|=#x00000015] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000015, |hanoi_#in~n|=#x00000015] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000014] [?] ~n := #in~n; VAL [hanoi_~n=#x00000014, |hanoi_#in~n|=#x00000014] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000014, |hanoi_#in~n|=#x00000014] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000013] [?] ~n := #in~n; VAL [hanoi_~n=#x00000013, |hanoi_#in~n|=#x00000013] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000013, |hanoi_#in~n|=#x00000013] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000012] [?] ~n := #in~n; VAL [hanoi_~n=#x00000012, |hanoi_#in~n|=#x00000012] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000012, |hanoi_#in~n|=#x00000012] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000011] [?] ~n := #in~n; VAL [hanoi_~n=#x00000011, |hanoi_#in~n|=#x00000011] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000011, |hanoi_#in~n|=#x00000011] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000010] [?] ~n := #in~n; VAL [hanoi_~n=#x00000010, |hanoi_#in~n|=#x00000010] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000010, |hanoi_#in~n|=#x00000010] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x0000000f] [?] ~n := #in~n; VAL [hanoi_~n=#x0000000f, |hanoi_#in~n|=#x0000000f] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x0000000f, |hanoi_#in~n|=#x0000000f] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x0000000e] [?] ~n := #in~n; VAL [hanoi_~n=#x0000000e, |hanoi_#in~n|=#x0000000e] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x0000000e, |hanoi_#in~n|=#x0000000e] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x0000000d] [?] ~n := #in~n; VAL [hanoi_~n=#x0000000d, |hanoi_#in~n|=#x0000000d] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x0000000d, |hanoi_#in~n|=#x0000000d] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x0000000c] [?] ~n := #in~n; VAL [hanoi_~n=#x0000000c, |hanoi_#in~n|=#x0000000c] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x0000000c, |hanoi_#in~n|=#x0000000c] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x0000000b] [?] ~n := #in~n; VAL [hanoi_~n=#x0000000b, |hanoi_#in~n|=#x0000000b] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x0000000b, |hanoi_#in~n|=#x0000000b] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x0000000a] [?] ~n := #in~n; VAL [hanoi_~n=#x0000000a, |hanoi_#in~n|=#x0000000a] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x0000000a, |hanoi_#in~n|=#x0000000a] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000009] [?] ~n := #in~n; VAL [hanoi_~n=#x00000009, |hanoi_#in~n|=#x00000009] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000009, |hanoi_#in~n|=#x00000009] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000008] [?] ~n := #in~n; VAL [hanoi_~n=#x00000008, |hanoi_#in~n|=#x00000008] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000008, |hanoi_#in~n|=#x00000008] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000007] [?] ~n := #in~n; VAL [hanoi_~n=#x00000007, |hanoi_#in~n|=#x00000007] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000007, |hanoi_#in~n|=#x00000007] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000006] [?] ~n := #in~n; VAL [hanoi_~n=#x00000006, |hanoi_#in~n|=#x00000006] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000006, |hanoi_#in~n|=#x00000006] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000005] [?] ~n := #in~n; VAL [hanoi_~n=#x00000005, |hanoi_#in~n|=#x00000005] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000005, |hanoi_#in~n|=#x00000005] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000004] [?] ~n := #in~n; VAL [hanoi_~n=#x00000004, |hanoi_#in~n|=#x00000004] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000004, |hanoi_#in~n|=#x00000004] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000003] [?] ~n := #in~n; VAL [hanoi_~n=#x00000003, |hanoi_#in~n|=#x00000003] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000003, |hanoi_#in~n|=#x00000003] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000002] [?] ~n := #in~n; VAL [hanoi_~n=#x00000002, |hanoi_#in~n|=#x00000002] [?] assume !(1bv32 == ~n); VAL [hanoi_~n=#x00000002, |hanoi_#in~n|=#x00000002] [?] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [|hanoi_#in~n|=#x00000001] [?] ~n := #in~n; VAL [hanoi_~n=#x00000001, |hanoi_#in~n|=#x00000001] [?] assume 1bv32 == ~n;#res := 1bv32; VAL [hanoi_~n=#x00000001, |hanoi_#in~n|=#x00000001, |hanoi_#res|=#x00000001] [?] assume true; VAL [hanoi_~n=#x00000001, |hanoi_#in~n|=#x00000001, |hanoi_#res|=#x00000001] [?] RET #29#return; VAL [hanoi_~n=#x00000002, |hanoi_#in~n|=#x00000002, |hanoi_#t~ret0|=#x00000001] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000002, |hanoi_#in~n|=#x00000002, |hanoi_#res|=#x00000003] [?] assume true; VAL [hanoi_~n=#x00000002, |hanoi_#in~n|=#x00000002, |hanoi_#res|=#x00000003] [?] RET #29#return; VAL [hanoi_~n=#x00000003, |hanoi_#in~n|=#x00000003, |hanoi_#t~ret0|=#x00000003] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000003, |hanoi_#in~n|=#x00000003, |hanoi_#res|=#x00000007] [?] assume true; VAL [hanoi_~n=#x00000003, |hanoi_#in~n|=#x00000003, |hanoi_#res|=#x00000007] [?] RET #29#return; VAL [hanoi_~n=#x00000004, |hanoi_#in~n|=#x00000004, |hanoi_#t~ret0|=#x00000007] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000004, |hanoi_#in~n|=#x00000004, |hanoi_#res|=#x0000000f] [?] assume true; VAL [hanoi_~n=#x00000004, |hanoi_#in~n|=#x00000004, |hanoi_#res|=#x0000000f] [?] RET #29#return; VAL [hanoi_~n=#x00000005, |hanoi_#in~n|=#x00000005, |hanoi_#t~ret0|=#x0000000f] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000005, |hanoi_#in~n|=#x00000005, |hanoi_#res|=#x0000001f] [?] assume true; VAL [hanoi_~n=#x00000005, |hanoi_#in~n|=#x00000005, |hanoi_#res|=#x0000001f] [?] RET #29#return; VAL [hanoi_~n=#x00000006, |hanoi_#in~n|=#x00000006, |hanoi_#t~ret0|=#x0000001f] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000006, |hanoi_#in~n|=#x00000006, |hanoi_#res|=#x0000003f] [?] assume true; VAL [hanoi_~n=#x00000006, |hanoi_#in~n|=#x00000006, |hanoi_#res|=#x0000003f] [?] RET #29#return; VAL [hanoi_~n=#x00000007, |hanoi_#in~n|=#x00000007, |hanoi_#t~ret0|=#x0000003f] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000007, |hanoi_#in~n|=#x00000007, |hanoi_#res|=#x0000007f] [?] assume true; VAL [hanoi_~n=#x00000007, |hanoi_#in~n|=#x00000007, |hanoi_#res|=#x0000007f] [?] RET #29#return; VAL [hanoi_~n=#x00000008, |hanoi_#in~n|=#x00000008, |hanoi_#t~ret0|=#x0000007f] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000008, |hanoi_#in~n|=#x00000008, |hanoi_#res|=#x000000ff] [?] assume true; VAL [hanoi_~n=#x00000008, |hanoi_#in~n|=#x00000008, |hanoi_#res|=#x000000ff] [?] RET #29#return; VAL [hanoi_~n=#x00000009, |hanoi_#in~n|=#x00000009, |hanoi_#t~ret0|=#x000000ff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000009, |hanoi_#in~n|=#x00000009, |hanoi_#res|=#x000001ff] [?] assume true; VAL [hanoi_~n=#x00000009, |hanoi_#in~n|=#x00000009, |hanoi_#res|=#x000001ff] [?] RET #29#return; VAL [hanoi_~n=#x0000000a, |hanoi_#in~n|=#x0000000a, |hanoi_#t~ret0|=#x000001ff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x0000000a, |hanoi_#in~n|=#x0000000a, |hanoi_#res|=#x000003ff] [?] assume true; VAL [hanoi_~n=#x0000000a, |hanoi_#in~n|=#x0000000a, |hanoi_#res|=#x000003ff] [?] RET #29#return; VAL [hanoi_~n=#x0000000b, |hanoi_#in~n|=#x0000000b, |hanoi_#t~ret0|=#x000003ff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x0000000b, |hanoi_#in~n|=#x0000000b, |hanoi_#res|=#x000007ff] [?] assume true; VAL [hanoi_~n=#x0000000b, |hanoi_#in~n|=#x0000000b, |hanoi_#res|=#x000007ff] [?] RET #29#return; VAL [hanoi_~n=#x0000000c, |hanoi_#in~n|=#x0000000c, |hanoi_#t~ret0|=#x000007ff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x0000000c, |hanoi_#in~n|=#x0000000c, |hanoi_#res|=#x00000fff] [?] assume true; VAL [hanoi_~n=#x0000000c, |hanoi_#in~n|=#x0000000c, |hanoi_#res|=#x00000fff] [?] RET #29#return; VAL [hanoi_~n=#x0000000d, |hanoi_#in~n|=#x0000000d, |hanoi_#t~ret0|=#x00000fff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x0000000d, |hanoi_#in~n|=#x0000000d, |hanoi_#res|=#x00001fff] [?] assume true; VAL [hanoi_~n=#x0000000d, |hanoi_#in~n|=#x0000000d, |hanoi_#res|=#x00001fff] [?] RET #29#return; VAL [hanoi_~n=#x0000000e, |hanoi_#in~n|=#x0000000e, |hanoi_#t~ret0|=#x00001fff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x0000000e, |hanoi_#in~n|=#x0000000e, |hanoi_#res|=#x00003fff] [?] assume true; VAL [hanoi_~n=#x0000000e, |hanoi_#in~n|=#x0000000e, |hanoi_#res|=#x00003fff] [?] RET #29#return; VAL [hanoi_~n=#x0000000f, |hanoi_#in~n|=#x0000000f, |hanoi_#t~ret0|=#x00003fff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x0000000f, |hanoi_#in~n|=#x0000000f, |hanoi_#res|=#x00007fff] [?] assume true; VAL [hanoi_~n=#x0000000f, |hanoi_#in~n|=#x0000000f, |hanoi_#res|=#x00007fff] [?] RET #29#return; VAL [hanoi_~n=#x00000010, |hanoi_#in~n|=#x00000010, |hanoi_#t~ret0|=#x00007fff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000010, |hanoi_#in~n|=#x00000010, |hanoi_#res|=#x0000ffff] [?] assume true; VAL [hanoi_~n=#x00000010, |hanoi_#in~n|=#x00000010, |hanoi_#res|=#x0000ffff] [?] RET #29#return; VAL [hanoi_~n=#x00000011, |hanoi_#in~n|=#x00000011, |hanoi_#t~ret0|=#x0000ffff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000011, |hanoi_#in~n|=#x00000011, |hanoi_#res|=#x0001ffff] [?] assume true; VAL [hanoi_~n=#x00000011, |hanoi_#in~n|=#x00000011, |hanoi_#res|=#x0001ffff] [?] RET #29#return; VAL [hanoi_~n=#x00000012, |hanoi_#in~n|=#x00000012, |hanoi_#t~ret0|=#x0001ffff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000012, |hanoi_#in~n|=#x00000012, |hanoi_#res|=#x0003ffff] [?] assume true; VAL [hanoi_~n=#x00000012, |hanoi_#in~n|=#x00000012, |hanoi_#res|=#x0003ffff] [?] RET #29#return; VAL [hanoi_~n=#x00000013, |hanoi_#in~n|=#x00000013, |hanoi_#t~ret0|=#x0003ffff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000013, |hanoi_#in~n|=#x00000013, |hanoi_#res|=#x0007ffff] [?] assume true; VAL [hanoi_~n=#x00000013, |hanoi_#in~n|=#x00000013, |hanoi_#res|=#x0007ffff] [?] RET #29#return; VAL [hanoi_~n=#x00000014, |hanoi_#in~n|=#x00000014, |hanoi_#t~ret0|=#x0007ffff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000014, |hanoi_#in~n|=#x00000014, |hanoi_#res|=#x000fffff] [?] assume true; VAL [hanoi_~n=#x00000014, |hanoi_#in~n|=#x00000014, |hanoi_#res|=#x000fffff] [?] RET #29#return; VAL [hanoi_~n=#x00000015, |hanoi_#in~n|=#x00000015, |hanoi_#t~ret0|=#x000fffff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000015, |hanoi_#in~n|=#x00000015, |hanoi_#res|=#x001fffff] [?] assume true; VAL [hanoi_~n=#x00000015, |hanoi_#in~n|=#x00000015, |hanoi_#res|=#x001fffff] [?] RET #29#return; VAL [hanoi_~n=#x00000016, |hanoi_#in~n|=#x00000016, |hanoi_#t~ret0|=#x001fffff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000016, |hanoi_#in~n|=#x00000016, |hanoi_#res|=#x003fffff] [?] assume true; VAL [hanoi_~n=#x00000016, |hanoi_#in~n|=#x00000016, |hanoi_#res|=#x003fffff] [?] RET #29#return; VAL [hanoi_~n=#x00000017, |hanoi_#in~n|=#x00000017, |hanoi_#t~ret0|=#x003fffff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000017, |hanoi_#in~n|=#x00000017, |hanoi_#res|=#x007fffff] [?] assume true; VAL [hanoi_~n=#x00000017, |hanoi_#in~n|=#x00000017, |hanoi_#res|=#x007fffff] [?] RET #29#return; VAL [hanoi_~n=#x00000018, |hanoi_#in~n|=#x00000018, |hanoi_#t~ret0|=#x007fffff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000018, |hanoi_#in~n|=#x00000018, |hanoi_#res|=#x00ffffff] [?] assume true; VAL [hanoi_~n=#x00000018, |hanoi_#in~n|=#x00000018, |hanoi_#res|=#x00ffffff] [?] RET #29#return; VAL [hanoi_~n=#x00000019, |hanoi_#in~n|=#x00000019, |hanoi_#t~ret0|=#x00ffffff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000019, |hanoi_#in~n|=#x00000019, |hanoi_#res|=#x01ffffff] [?] assume true; VAL [hanoi_~n=#x00000019, |hanoi_#in~n|=#x00000019, |hanoi_#res|=#x01ffffff] [?] RET #29#return; VAL [hanoi_~n=#x0000001a, |hanoi_#in~n|=#x0000001a, |hanoi_#t~ret0|=#x01ffffff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x0000001a, |hanoi_#in~n|=#x0000001a, |hanoi_#res|=#x03ffffff] [?] assume true; VAL [hanoi_~n=#x0000001a, |hanoi_#in~n|=#x0000001a, |hanoi_#res|=#x03ffffff] [?] RET #29#return; VAL [hanoi_~n=#x0000001b, |hanoi_#in~n|=#x0000001b, |hanoi_#t~ret0|=#x03ffffff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x0000001b, |hanoi_#in~n|=#x0000001b, |hanoi_#res|=#x07ffffff] [?] assume true; VAL [hanoi_~n=#x0000001b, |hanoi_#in~n|=#x0000001b, |hanoi_#res|=#x07ffffff] [?] RET #29#return; VAL [hanoi_~n=#x0000001c, |hanoi_#in~n|=#x0000001c, |hanoi_#t~ret0|=#x07ffffff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x0000001c, |hanoi_#in~n|=#x0000001c, |hanoi_#res|=#x0fffffff] [?] assume true; VAL [hanoi_~n=#x0000001c, |hanoi_#in~n|=#x0000001c, |hanoi_#res|=#x0fffffff] [?] RET #29#return; VAL [hanoi_~n=#x0000001d, |hanoi_#in~n|=#x0000001d, |hanoi_#t~ret0|=#x0fffffff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x0000001d, |hanoi_#in~n|=#x0000001d, |hanoi_#res|=#x1fffffff] [?] assume true; VAL [hanoi_~n=#x0000001d, |hanoi_#in~n|=#x0000001d, |hanoi_#res|=#x1fffffff] [?] RET #29#return; VAL [hanoi_~n=#x0000001e, |hanoi_#in~n|=#x0000001e, |hanoi_#t~ret0|=#x1fffffff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x0000001e, |hanoi_#in~n|=#x0000001e, |hanoi_#res|=#x3fffffff] [?] assume true; VAL [hanoi_~n=#x0000001e, |hanoi_#in~n|=#x0000001e, |hanoi_#res|=#x3fffffff] [?] RET #29#return; VAL [hanoi_~n=#x0000001f, |hanoi_#in~n|=#x0000001f, |hanoi_#t~ret0|=#x3fffffff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x0000001f, |hanoi_#in~n|=#x0000001f, |hanoi_#res|=#x7fffffff] [?] assume true; VAL [hanoi_~n=#x0000001f, |hanoi_#in~n|=#x0000001f, |hanoi_#res|=#x7fffffff] [?] RET #29#return; VAL [hanoi_~n=#x00000020, |hanoi_#in~n|=#x00000020, |hanoi_#t~ret0|=#x7fffffff] [?] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0));havoc #t~ret0; VAL [hanoi_~n=#x00000020, |hanoi_#in~n|=#x00000020, |hanoi_#res|=#xffffffff] [?] assume true; VAL [hanoi_~n=#x00000020, |hanoi_#in~n|=#x00000020, |hanoi_#res|=#xffffffff] [?] RET #31#return; VAL [ULTIMATE.start_main_~n~0=#x00000020, |ULTIMATE.start_main_#t~ret2|=#xffffffff] [?] main_~result~0 := main_#t~ret2;havoc main_#t~ret2; VAL [ULTIMATE.start_main_~n~0=#x00000020, ULTIMATE.start_main_~result~0=#xffffffff] [?] assume !(~bvugt32(~bvadd32(1bv32, main_~result~0), 0bv32) && ~bvadd32(1bv32, main_~result~0) == ~bvshl32(1bv32, main_~n~0)); VAL [ULTIMATE.start_main_~n~0=#x00000020, ULTIMATE.start_main_~result~0=#xffffffff] [?] assume !false; VAL [ULTIMATE.start_main_~n~0=#x00000020, ULTIMATE.start_main_~result~0=#xffffffff] [?] havoc main_#res; [?] havoc main_#t~nondet1, main_#t~ret2, main_~n~0, main_~result~0; [L25] main_~n~0 := main_#t~nondet1; [L25] havoc main_#t~nondet1; [L26-L28] assume !~bvslt32(main_~n~0, 1bv32); VAL [main_~n~0=32bv32] [L29] CALL call main_#t~ret2 := hanoi(main_~n~0); VAL [#in~n=32bv32] [L16-L21] ~n := #in~n; VAL [#in~n=32bv32, ~n=32bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=32bv32, ~n=32bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=31bv32] [L16-L21] ~n := #in~n; VAL [#in~n=31bv32, ~n=31bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=31bv32, ~n=31bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=30bv32] [L16-L21] ~n := #in~n; VAL [#in~n=30bv32, ~n=30bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=30bv32, ~n=30bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=29bv32] [L16-L21] ~n := #in~n; VAL [#in~n=29bv32, ~n=29bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=29bv32, ~n=29bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=28bv32] [L16-L21] ~n := #in~n; VAL [#in~n=28bv32, ~n=28bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=28bv32, ~n=28bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=27bv32] [L16-L21] ~n := #in~n; VAL [#in~n=27bv32, ~n=27bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=27bv32, ~n=27bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=26bv32] [L16-L21] ~n := #in~n; VAL [#in~n=26bv32, ~n=26bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=26bv32, ~n=26bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=25bv32] [L16-L21] ~n := #in~n; VAL [#in~n=25bv32, ~n=25bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=25bv32, ~n=25bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=24bv32] [L16-L21] ~n := #in~n; VAL [#in~n=24bv32, ~n=24bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=24bv32, ~n=24bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=23bv32] [L16-L21] ~n := #in~n; VAL [#in~n=23bv32, ~n=23bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=23bv32, ~n=23bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=22bv32] [L16-L21] ~n := #in~n; VAL [#in~n=22bv32, ~n=22bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=22bv32, ~n=22bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=21bv32] [L16-L21] ~n := #in~n; VAL [#in~n=21bv32, ~n=21bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=21bv32, ~n=21bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=20bv32] [L16-L21] ~n := #in~n; VAL [#in~n=20bv32, ~n=20bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=20bv32, ~n=20bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=19bv32] [L16-L21] ~n := #in~n; VAL [#in~n=19bv32, ~n=19bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=19bv32, ~n=19bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=18bv32] [L16-L21] ~n := #in~n; VAL [#in~n=18bv32, ~n=18bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=18bv32, ~n=18bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=17bv32] [L16-L21] ~n := #in~n; VAL [#in~n=17bv32, ~n=17bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=17bv32, ~n=17bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=16bv32] [L16-L21] ~n := #in~n; VAL [#in~n=16bv32, ~n=16bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=16bv32, ~n=16bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=15bv32] [L16-L21] ~n := #in~n; VAL [#in~n=15bv32, ~n=15bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=15bv32, ~n=15bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=14bv32] [L16-L21] ~n := #in~n; VAL [#in~n=14bv32, ~n=14bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=14bv32, ~n=14bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=13bv32] [L16-L21] ~n := #in~n; VAL [#in~n=13bv32, ~n=13bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=13bv32, ~n=13bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=12bv32] [L16-L21] ~n := #in~n; VAL [#in~n=12bv32, ~n=12bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=12bv32, ~n=12bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=11bv32] [L16-L21] ~n := #in~n; VAL [#in~n=11bv32, ~n=11bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=11bv32, ~n=11bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=10bv32] [L16-L21] ~n := #in~n; VAL [#in~n=10bv32, ~n=10bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=10bv32, ~n=10bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=9bv32] [L16-L21] ~n := #in~n; VAL [#in~n=9bv32, ~n=9bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=9bv32, ~n=9bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=8bv32] [L16-L21] ~n := #in~n; VAL [#in~n=8bv32, ~n=8bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=8bv32, ~n=8bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=7bv32] [L16-L21] ~n := #in~n; VAL [#in~n=7bv32, ~n=7bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=7bv32, ~n=7bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=6bv32] [L16-L21] ~n := #in~n; VAL [#in~n=6bv32, ~n=6bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=6bv32, ~n=6bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=5bv32] [L16-L21] ~n := #in~n; VAL [#in~n=5bv32, ~n=5bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=5bv32, ~n=5bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=4bv32] [L16-L21] ~n := #in~n; VAL [#in~n=4bv32, ~n=4bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=4bv32, ~n=4bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=3bv32] [L16-L21] ~n := #in~n; VAL [#in~n=3bv32, ~n=3bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=3bv32, ~n=3bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=2bv32] [L16-L21] ~n := #in~n; VAL [#in~n=2bv32, ~n=2bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=2bv32, ~n=2bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=1bv32] [L16-L21] ~n := #in~n; VAL [#in~n=1bv32, ~n=1bv32] [L17-L19] assume 1bv32 == ~n; [L18] #res := 1bv32; VAL [#in~n=1bv32, #res=1bv32, ~n=1bv32] [L16-L21] ensures true; VAL [#in~n=1bv32, #res=1bv32, ~n=1bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=2bv32, #t~ret0=1bv32, ~n=2bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=2bv32, #res=3bv32, ~n=2bv32] [L16-L21] ensures true; VAL [#in~n=2bv32, #res=3bv32, ~n=2bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=3bv32, #t~ret0=3bv32, ~n=3bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=3bv32, #res=7bv32, ~n=3bv32] [L16-L21] ensures true; VAL [#in~n=3bv32, #res=7bv32, ~n=3bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=4bv32, #t~ret0=7bv32, ~n=4bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=4bv32, #res=15bv32, ~n=4bv32] [L16-L21] ensures true; VAL [#in~n=4bv32, #res=15bv32, ~n=4bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=5bv32, #t~ret0=15bv32, ~n=5bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=5bv32, #res=31bv32, ~n=5bv32] [L16-L21] ensures true; VAL [#in~n=5bv32, #res=31bv32, ~n=5bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=6bv32, #t~ret0=31bv32, ~n=6bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=6bv32, #res=63bv32, ~n=6bv32] [L16-L21] ensures true; VAL [#in~n=6bv32, #res=63bv32, ~n=6bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=7bv32, #t~ret0=63bv32, ~n=7bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=7bv32, #res=127bv32, ~n=7bv32] [L16-L21] ensures true; VAL [#in~n=7bv32, #res=127bv32, ~n=7bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=8bv32, #t~ret0=127bv32, ~n=8bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=8bv32, #res=255bv32, ~n=8bv32] [L16-L21] ensures true; VAL [#in~n=8bv32, #res=255bv32, ~n=8bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=9bv32, #t~ret0=255bv32, ~n=9bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=9bv32, #res=511bv32, ~n=9bv32] [L16-L21] ensures true; VAL [#in~n=9bv32, #res=511bv32, ~n=9bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=10bv32, #t~ret0=511bv32, ~n=10bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=10bv32, #res=1023bv32, ~n=10bv32] [L16-L21] ensures true; VAL [#in~n=10bv32, #res=1023bv32, ~n=10bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=11bv32, #t~ret0=1023bv32, ~n=11bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=11bv32, #res=2047bv32, ~n=11bv32] [L16-L21] ensures true; VAL [#in~n=11bv32, #res=2047bv32, ~n=11bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=12bv32, #t~ret0=2047bv32, ~n=12bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=12bv32, #res=4095bv32, ~n=12bv32] [L16-L21] ensures true; VAL [#in~n=12bv32, #res=4095bv32, ~n=12bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=13bv32, #t~ret0=4095bv32, ~n=13bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=13bv32, #res=8191bv32, ~n=13bv32] [L16-L21] ensures true; VAL [#in~n=13bv32, #res=8191bv32, ~n=13bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=14bv32, #t~ret0=8191bv32, ~n=14bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=14bv32, #res=16383bv32, ~n=14bv32] [L16-L21] ensures true; VAL [#in~n=14bv32, #res=16383bv32, ~n=14bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=15bv32, #t~ret0=16383bv32, ~n=15bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=15bv32, #res=32767bv32, ~n=15bv32] [L16-L21] ensures true; VAL [#in~n=15bv32, #res=32767bv32, ~n=15bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=16bv32, #t~ret0=32767bv32, ~n=16bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=16bv32, #res=65535bv32, ~n=16bv32] [L16-L21] ensures true; VAL [#in~n=16bv32, #res=65535bv32, ~n=16bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=17bv32, #t~ret0=65535bv32, ~n=17bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=17bv32, #res=131071bv32, ~n=17bv32] [L16-L21] ensures true; VAL [#in~n=17bv32, #res=131071bv32, ~n=17bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=18bv32, #t~ret0=131071bv32, ~n=18bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=18bv32, #res=262143bv32, ~n=18bv32] [L16-L21] ensures true; VAL [#in~n=18bv32, #res=262143bv32, ~n=18bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=19bv32, #t~ret0=262143bv32, ~n=19bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=19bv32, #res=524287bv32, ~n=19bv32] [L16-L21] ensures true; VAL [#in~n=19bv32, #res=524287bv32, ~n=19bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=20bv32, #t~ret0=524287bv32, ~n=20bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=20bv32, #res=1048575bv32, ~n=20bv32] [L16-L21] ensures true; VAL [#in~n=20bv32, #res=1048575bv32, ~n=20bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=21bv32, #t~ret0=1048575bv32, ~n=21bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=21bv32, #res=2097151bv32, ~n=21bv32] [L16-L21] ensures true; VAL [#in~n=21bv32, #res=2097151bv32, ~n=21bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=22bv32, #t~ret0=2097151bv32, ~n=22bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=22bv32, #res=4194303bv32, ~n=22bv32] [L16-L21] ensures true; VAL [#in~n=22bv32, #res=4194303bv32, ~n=22bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=23bv32, #t~ret0=4194303bv32, ~n=23bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=23bv32, #res=8388607bv32, ~n=23bv32] [L16-L21] ensures true; VAL [#in~n=23bv32, #res=8388607bv32, ~n=23bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=24bv32, #t~ret0=8388607bv32, ~n=24bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=24bv32, #res=16777215bv32, ~n=24bv32] [L16-L21] ensures true; VAL [#in~n=24bv32, #res=16777215bv32, ~n=24bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=25bv32, #t~ret0=16777215bv32, ~n=25bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=25bv32, #res=33554431bv32, ~n=25bv32] [L16-L21] ensures true; VAL [#in~n=25bv32, #res=33554431bv32, ~n=25bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=26bv32, #t~ret0=33554431bv32, ~n=26bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=26bv32, #res=67108863bv32, ~n=26bv32] [L16-L21] ensures true; VAL [#in~n=26bv32, #res=67108863bv32, ~n=26bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=27bv32, #t~ret0=67108863bv32, ~n=27bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=27bv32, #res=134217727bv32, ~n=27bv32] [L16-L21] ensures true; VAL [#in~n=27bv32, #res=134217727bv32, ~n=27bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=28bv32, #t~ret0=134217727bv32, ~n=28bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=28bv32, #res=268435455bv32, ~n=28bv32] [L16-L21] ensures true; VAL [#in~n=28bv32, #res=268435455bv32, ~n=28bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=29bv32, #t~ret0=268435455bv32, ~n=29bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=29bv32, #res=536870911bv32, ~n=29bv32] [L16-L21] ensures true; VAL [#in~n=29bv32, #res=536870911bv32, ~n=29bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=30bv32, #t~ret0=536870911bv32, ~n=30bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=30bv32, #res=1073741823bv32, ~n=30bv32] [L16-L21] ensures true; VAL [#in~n=30bv32, #res=1073741823bv32, ~n=30bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=31bv32, #t~ret0=1073741823bv32, ~n=31bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=31bv32, #res=2147483647bv32, ~n=31bv32] [L16-L21] ensures true; VAL [#in~n=31bv32, #res=2147483647bv32, ~n=31bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=32bv32, #t~ret0=2147483647bv32, ~n=32bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=32bv32, #res=4294967295bv32, ~n=32bv32] [L16-L21] ensures true; VAL [#in~n=32bv32, #res=4294967295bv32, ~n=32bv32] [L29] RET call main_#t~ret2 := hanoi(main_~n~0); VAL [main_#t~ret2=4294967295bv32, main_~n~0=32bv32] [L29] main_~result~0 := main_#t~ret2; [L29] havoc main_#t~ret2; VAL [main_~n~0=32bv32, main_~result~0=4294967295bv32] [L31-L35] assume !(~bvugt32(~bvadd32(1bv32, main_~result~0), 0bv32) && ~bvadd32(1bv32, main_~result~0) == ~bvshl32(1bv32, main_~n~0)); VAL [main_~n~0=32bv32, main_~result~0=4294967295bv32] [L34] assert false; VAL [main_~n~0=32bv32, main_~result~0=4294967295bv32] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.preprocessor.BoogiePreprocessorBacktranslator [?] havoc main_#res; [?] havoc main_#t~nondet1, main_#t~ret2, main_~n~0, main_~result~0; [L25] main_~n~0 := main_#t~nondet1; [L25] havoc main_#t~nondet1; [L26-L28] assume !~bvslt32(main_~n~0, 1bv32); VAL [main_~n~0=32bv32] [L29] CALL call main_#t~ret2 := hanoi(main_~n~0); VAL [#in~n=32bv32] [L16-L21] ~n := #in~n; VAL [#in~n=32bv32, ~n=32bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=32bv32, ~n=32bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=31bv32] [L16-L21] ~n := #in~n; VAL [#in~n=31bv32, ~n=31bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=31bv32, ~n=31bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=30bv32] [L16-L21] ~n := #in~n; VAL [#in~n=30bv32, ~n=30bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=30bv32, ~n=30bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=29bv32] [L16-L21] ~n := #in~n; VAL [#in~n=29bv32, ~n=29bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=29bv32, ~n=29bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=28bv32] [L16-L21] ~n := #in~n; VAL [#in~n=28bv32, ~n=28bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=28bv32, ~n=28bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=27bv32] [L16-L21] ~n := #in~n; VAL [#in~n=27bv32, ~n=27bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=27bv32, ~n=27bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=26bv32] [L16-L21] ~n := #in~n; VAL [#in~n=26bv32, ~n=26bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=26bv32, ~n=26bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=25bv32] [L16-L21] ~n := #in~n; VAL [#in~n=25bv32, ~n=25bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=25bv32, ~n=25bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=24bv32] [L16-L21] ~n := #in~n; VAL [#in~n=24bv32, ~n=24bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=24bv32, ~n=24bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=23bv32] [L16-L21] ~n := #in~n; VAL [#in~n=23bv32, ~n=23bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=23bv32, ~n=23bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=22bv32] [L16-L21] ~n := #in~n; VAL [#in~n=22bv32, ~n=22bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=22bv32, ~n=22bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=21bv32] [L16-L21] ~n := #in~n; VAL [#in~n=21bv32, ~n=21bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=21bv32, ~n=21bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=20bv32] [L16-L21] ~n := #in~n; VAL [#in~n=20bv32, ~n=20bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=20bv32, ~n=20bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=19bv32] [L16-L21] ~n := #in~n; VAL [#in~n=19bv32, ~n=19bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=19bv32, ~n=19bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=18bv32] [L16-L21] ~n := #in~n; VAL [#in~n=18bv32, ~n=18bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=18bv32, ~n=18bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=17bv32] [L16-L21] ~n := #in~n; VAL [#in~n=17bv32, ~n=17bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=17bv32, ~n=17bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=16bv32] [L16-L21] ~n := #in~n; VAL [#in~n=16bv32, ~n=16bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=16bv32, ~n=16bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=15bv32] [L16-L21] ~n := #in~n; VAL [#in~n=15bv32, ~n=15bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=15bv32, ~n=15bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=14bv32] [L16-L21] ~n := #in~n; VAL [#in~n=14bv32, ~n=14bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=14bv32, ~n=14bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=13bv32] [L16-L21] ~n := #in~n; VAL [#in~n=13bv32, ~n=13bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=13bv32, ~n=13bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=12bv32] [L16-L21] ~n := #in~n; VAL [#in~n=12bv32, ~n=12bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=12bv32, ~n=12bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=11bv32] [L16-L21] ~n := #in~n; VAL [#in~n=11bv32, ~n=11bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=11bv32, ~n=11bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=10bv32] [L16-L21] ~n := #in~n; VAL [#in~n=10bv32, ~n=10bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=10bv32, ~n=10bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=9bv32] [L16-L21] ~n := #in~n; VAL [#in~n=9bv32, ~n=9bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=9bv32, ~n=9bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=8bv32] [L16-L21] ~n := #in~n; VAL [#in~n=8bv32, ~n=8bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=8bv32, ~n=8bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=7bv32] [L16-L21] ~n := #in~n; VAL [#in~n=7bv32, ~n=7bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=7bv32, ~n=7bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=6bv32] [L16-L21] ~n := #in~n; VAL [#in~n=6bv32, ~n=6bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=6bv32, ~n=6bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=5bv32] [L16-L21] ~n := #in~n; VAL [#in~n=5bv32, ~n=5bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=5bv32, ~n=5bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=4bv32] [L16-L21] ~n := #in~n; VAL [#in~n=4bv32, ~n=4bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=4bv32, ~n=4bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=3bv32] [L16-L21] ~n := #in~n; VAL [#in~n=3bv32, ~n=3bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=3bv32, ~n=3bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=2bv32] [L16-L21] ~n := #in~n; VAL [#in~n=2bv32, ~n=2bv32] [L17-L19] assume !(1bv32 == ~n); VAL [#in~n=2bv32, ~n=2bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=1bv32] [L16-L21] ~n := #in~n; VAL [#in~n=1bv32, ~n=1bv32] [L17-L19] assume 1bv32 == ~n; [L18] #res := 1bv32; VAL [#in~n=1bv32, #res=1bv32, ~n=1bv32] [L16-L21] ensures true; VAL [#in~n=1bv32, #res=1bv32, ~n=1bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=2bv32, #t~ret0=1bv32, ~n=2bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=2bv32, #res=3bv32, ~n=2bv32] [L16-L21] ensures true; VAL [#in~n=2bv32, #res=3bv32, ~n=2bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=3bv32, #t~ret0=3bv32, ~n=3bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=3bv32, #res=7bv32, ~n=3bv32] [L16-L21] ensures true; VAL [#in~n=3bv32, #res=7bv32, ~n=3bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=4bv32, #t~ret0=7bv32, ~n=4bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=4bv32, #res=15bv32, ~n=4bv32] [L16-L21] ensures true; VAL [#in~n=4bv32, #res=15bv32, ~n=4bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=5bv32, #t~ret0=15bv32, ~n=5bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=5bv32, #res=31bv32, ~n=5bv32] [L16-L21] ensures true; VAL [#in~n=5bv32, #res=31bv32, ~n=5bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=6bv32, #t~ret0=31bv32, ~n=6bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=6bv32, #res=63bv32, ~n=6bv32] [L16-L21] ensures true; VAL [#in~n=6bv32, #res=63bv32, ~n=6bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=7bv32, #t~ret0=63bv32, ~n=7bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=7bv32, #res=127bv32, ~n=7bv32] [L16-L21] ensures true; VAL [#in~n=7bv32, #res=127bv32, ~n=7bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=8bv32, #t~ret0=127bv32, ~n=8bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=8bv32, #res=255bv32, ~n=8bv32] [L16-L21] ensures true; VAL [#in~n=8bv32, #res=255bv32, ~n=8bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=9bv32, #t~ret0=255bv32, ~n=9bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=9bv32, #res=511bv32, ~n=9bv32] [L16-L21] ensures true; VAL [#in~n=9bv32, #res=511bv32, ~n=9bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=10bv32, #t~ret0=511bv32, ~n=10bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=10bv32, #res=1023bv32, ~n=10bv32] [L16-L21] ensures true; VAL [#in~n=10bv32, #res=1023bv32, ~n=10bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=11bv32, #t~ret0=1023bv32, ~n=11bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=11bv32, #res=2047bv32, ~n=11bv32] [L16-L21] ensures true; VAL [#in~n=11bv32, #res=2047bv32, ~n=11bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=12bv32, #t~ret0=2047bv32, ~n=12bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=12bv32, #res=4095bv32, ~n=12bv32] [L16-L21] ensures true; VAL [#in~n=12bv32, #res=4095bv32, ~n=12bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=13bv32, #t~ret0=4095bv32, ~n=13bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=13bv32, #res=8191bv32, ~n=13bv32] [L16-L21] ensures true; VAL [#in~n=13bv32, #res=8191bv32, ~n=13bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=14bv32, #t~ret0=8191bv32, ~n=14bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=14bv32, #res=16383bv32, ~n=14bv32] [L16-L21] ensures true; VAL [#in~n=14bv32, #res=16383bv32, ~n=14bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=15bv32, #t~ret0=16383bv32, ~n=15bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=15bv32, #res=32767bv32, ~n=15bv32] [L16-L21] ensures true; VAL [#in~n=15bv32, #res=32767bv32, ~n=15bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=16bv32, #t~ret0=32767bv32, ~n=16bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=16bv32, #res=65535bv32, ~n=16bv32] [L16-L21] ensures true; VAL [#in~n=16bv32, #res=65535bv32, ~n=16bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=17bv32, #t~ret0=65535bv32, ~n=17bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=17bv32, #res=131071bv32, ~n=17bv32] [L16-L21] ensures true; VAL [#in~n=17bv32, #res=131071bv32, ~n=17bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=18bv32, #t~ret0=131071bv32, ~n=18bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=18bv32, #res=262143bv32, ~n=18bv32] [L16-L21] ensures true; VAL [#in~n=18bv32, #res=262143bv32, ~n=18bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=19bv32, #t~ret0=262143bv32, ~n=19bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=19bv32, #res=524287bv32, ~n=19bv32] [L16-L21] ensures true; VAL [#in~n=19bv32, #res=524287bv32, ~n=19bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=20bv32, #t~ret0=524287bv32, ~n=20bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=20bv32, #res=1048575bv32, ~n=20bv32] [L16-L21] ensures true; VAL [#in~n=20bv32, #res=1048575bv32, ~n=20bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=21bv32, #t~ret0=1048575bv32, ~n=21bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=21bv32, #res=2097151bv32, ~n=21bv32] [L16-L21] ensures true; VAL [#in~n=21bv32, #res=2097151bv32, ~n=21bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=22bv32, #t~ret0=2097151bv32, ~n=22bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=22bv32, #res=4194303bv32, ~n=22bv32] [L16-L21] ensures true; VAL [#in~n=22bv32, #res=4194303bv32, ~n=22bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=23bv32, #t~ret0=4194303bv32, ~n=23bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=23bv32, #res=8388607bv32, ~n=23bv32] [L16-L21] ensures true; VAL [#in~n=23bv32, #res=8388607bv32, ~n=23bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=24bv32, #t~ret0=8388607bv32, ~n=24bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=24bv32, #res=16777215bv32, ~n=24bv32] [L16-L21] ensures true; VAL [#in~n=24bv32, #res=16777215bv32, ~n=24bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=25bv32, #t~ret0=16777215bv32, ~n=25bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=25bv32, #res=33554431bv32, ~n=25bv32] [L16-L21] ensures true; VAL [#in~n=25bv32, #res=33554431bv32, ~n=25bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=26bv32, #t~ret0=33554431bv32, ~n=26bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=26bv32, #res=67108863bv32, ~n=26bv32] [L16-L21] ensures true; VAL [#in~n=26bv32, #res=67108863bv32, ~n=26bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=27bv32, #t~ret0=67108863bv32, ~n=27bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=27bv32, #res=134217727bv32, ~n=27bv32] [L16-L21] ensures true; VAL [#in~n=27bv32, #res=134217727bv32, ~n=27bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=28bv32, #t~ret0=134217727bv32, ~n=28bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=28bv32, #res=268435455bv32, ~n=28bv32] [L16-L21] ensures true; VAL [#in~n=28bv32, #res=268435455bv32, ~n=28bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=29bv32, #t~ret0=268435455bv32, ~n=29bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=29bv32, #res=536870911bv32, ~n=29bv32] [L16-L21] ensures true; VAL [#in~n=29bv32, #res=536870911bv32, ~n=29bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=30bv32, #t~ret0=536870911bv32, ~n=30bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=30bv32, #res=1073741823bv32, ~n=30bv32] [L16-L21] ensures true; VAL [#in~n=30bv32, #res=1073741823bv32, ~n=30bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=31bv32, #t~ret0=1073741823bv32, ~n=31bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=31bv32, #res=2147483647bv32, ~n=31bv32] [L16-L21] ensures true; VAL [#in~n=31bv32, #res=2147483647bv32, ~n=31bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=32bv32, #t~ret0=2147483647bv32, ~n=32bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=32bv32, #res=4294967295bv32, ~n=32bv32] [L16-L21] ensures true; VAL [#in~n=32bv32, #res=4294967295bv32, ~n=32bv32] [L29] RET call main_#t~ret2 := hanoi(main_~n~0); VAL [main_#t~ret2=4294967295bv32, main_~n~0=32bv32] [L29] main_~result~0 := main_#t~ret2; [L29] havoc main_#t~ret2; VAL [main_~n~0=32bv32, main_~result~0=4294967295bv32] [L31-L35] assume !(~bvugt32(~bvadd32(1bv32, main_~result~0), 0bv32) && ~bvadd32(1bv32, main_~result~0) == ~bvshl32(1bv32, main_~n~0)); VAL [main_~n~0=32bv32, main_~result~0=4294967295bv32] [L34] assert false; VAL [main_~n~0=32bv32, main_~result~0=4294967295bv32] [?] havoc main_#res; [?] havoc main_#t~nondet1, main_#t~ret2, main_~n~0, main_~result~0; [L25] main_~n~0 := main_#t~nondet1; [L25] havoc main_#t~nondet1; [L26] COND FALSE !(~bvslt32(main_~n~0, 1bv32)) VAL [main_~n~0=32bv32] [L29] CALL call main_#t~ret2 := hanoi(main_~n~0); VAL [#in~n=32bv32] [L16-L21] ~n := #in~n; VAL [#in~n=32bv32, ~n=32bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=32bv32, ~n=32bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=31bv32] [L16-L21] ~n := #in~n; VAL [#in~n=31bv32, ~n=31bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=31bv32, ~n=31bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=30bv32] [L16-L21] ~n := #in~n; VAL [#in~n=30bv32, ~n=30bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=30bv32, ~n=30bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=29bv32] [L16-L21] ~n := #in~n; VAL [#in~n=29bv32, ~n=29bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=29bv32, ~n=29bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=28bv32] [L16-L21] ~n := #in~n; VAL [#in~n=28bv32, ~n=28bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=28bv32, ~n=28bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=27bv32] [L16-L21] ~n := #in~n; VAL [#in~n=27bv32, ~n=27bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=27bv32, ~n=27bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=26bv32] [L16-L21] ~n := #in~n; VAL [#in~n=26bv32, ~n=26bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=26bv32, ~n=26bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=25bv32] [L16-L21] ~n := #in~n; VAL [#in~n=25bv32, ~n=25bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=25bv32, ~n=25bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=24bv32] [L16-L21] ~n := #in~n; VAL [#in~n=24bv32, ~n=24bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=24bv32, ~n=24bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=23bv32] [L16-L21] ~n := #in~n; VAL [#in~n=23bv32, ~n=23bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=23bv32, ~n=23bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=22bv32] [L16-L21] ~n := #in~n; VAL [#in~n=22bv32, ~n=22bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=22bv32, ~n=22bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=21bv32] [L16-L21] ~n := #in~n; VAL [#in~n=21bv32, ~n=21bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=21bv32, ~n=21bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=20bv32] [L16-L21] ~n := #in~n; VAL [#in~n=20bv32, ~n=20bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=20bv32, ~n=20bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=19bv32] [L16-L21] ~n := #in~n; VAL [#in~n=19bv32, ~n=19bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=19bv32, ~n=19bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=18bv32] [L16-L21] ~n := #in~n; VAL [#in~n=18bv32, ~n=18bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=18bv32, ~n=18bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=17bv32] [L16-L21] ~n := #in~n; VAL [#in~n=17bv32, ~n=17bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=17bv32, ~n=17bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=16bv32] [L16-L21] ~n := #in~n; VAL [#in~n=16bv32, ~n=16bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=16bv32, ~n=16bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=15bv32] [L16-L21] ~n := #in~n; VAL [#in~n=15bv32, ~n=15bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=15bv32, ~n=15bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=14bv32] [L16-L21] ~n := #in~n; VAL [#in~n=14bv32, ~n=14bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=14bv32, ~n=14bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=13bv32] [L16-L21] ~n := #in~n; VAL [#in~n=13bv32, ~n=13bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=13bv32, ~n=13bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=12bv32] [L16-L21] ~n := #in~n; VAL [#in~n=12bv32, ~n=12bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=12bv32, ~n=12bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=11bv32] [L16-L21] ~n := #in~n; VAL [#in~n=11bv32, ~n=11bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=11bv32, ~n=11bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=10bv32] [L16-L21] ~n := #in~n; VAL [#in~n=10bv32, ~n=10bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=10bv32, ~n=10bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=9bv32] [L16-L21] ~n := #in~n; VAL [#in~n=9bv32, ~n=9bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=9bv32, ~n=9bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=8bv32] [L16-L21] ~n := #in~n; VAL [#in~n=8bv32, ~n=8bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=8bv32, ~n=8bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=7bv32] [L16-L21] ~n := #in~n; VAL [#in~n=7bv32, ~n=7bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=7bv32, ~n=7bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=6bv32] [L16-L21] ~n := #in~n; VAL [#in~n=6bv32, ~n=6bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=6bv32, ~n=6bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=5bv32] [L16-L21] ~n := #in~n; VAL [#in~n=5bv32, ~n=5bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=5bv32, ~n=5bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=4bv32] [L16-L21] ~n := #in~n; VAL [#in~n=4bv32, ~n=4bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=4bv32, ~n=4bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=3bv32] [L16-L21] ~n := #in~n; VAL [#in~n=3bv32, ~n=3bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=3bv32, ~n=3bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=2bv32] [L16-L21] ~n := #in~n; VAL [#in~n=2bv32, ~n=2bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=2bv32, ~n=2bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=1bv32] [L16-L21] ~n := #in~n; VAL [#in~n=1bv32, ~n=1bv32] [L17] COND TRUE 1bv32 == ~n [L18] #res := 1bv32; VAL [#in~n=1bv32, #res=1bv32, ~n=1bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=2bv32, #t~ret0=1bv32, ~n=2bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=2bv32, #res=3bv32, ~n=2bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=3bv32, #t~ret0=3bv32, ~n=3bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=3bv32, #res=7bv32, ~n=3bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=4bv32, #t~ret0=7bv32, ~n=4bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=4bv32, #res=15bv32, ~n=4bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=5bv32, #t~ret0=15bv32, ~n=5bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=5bv32, #res=31bv32, ~n=5bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=6bv32, #t~ret0=31bv32, ~n=6bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=6bv32, #res=63bv32, ~n=6bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=7bv32, #t~ret0=63bv32, ~n=7bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=7bv32, #res=127bv32, ~n=7bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=8bv32, #t~ret0=127bv32, ~n=8bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=8bv32, #res=255bv32, ~n=8bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=9bv32, #t~ret0=255bv32, ~n=9bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=9bv32, #res=511bv32, ~n=9bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=10bv32, #t~ret0=511bv32, ~n=10bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=10bv32, #res=1023bv32, ~n=10bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=11bv32, #t~ret0=1023bv32, ~n=11bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=11bv32, #res=2047bv32, ~n=11bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=12bv32, #t~ret0=2047bv32, ~n=12bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=12bv32, #res=4095bv32, ~n=12bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=13bv32, #t~ret0=4095bv32, ~n=13bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=13bv32, #res=8191bv32, ~n=13bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=14bv32, #t~ret0=8191bv32, ~n=14bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=14bv32, #res=16383bv32, ~n=14bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=15bv32, #t~ret0=16383bv32, ~n=15bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=15bv32, #res=32767bv32, ~n=15bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=16bv32, #t~ret0=32767bv32, ~n=16bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=16bv32, #res=65535bv32, ~n=16bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=17bv32, #t~ret0=65535bv32, ~n=17bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=17bv32, #res=131071bv32, ~n=17bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=18bv32, #t~ret0=131071bv32, ~n=18bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=18bv32, #res=262143bv32, ~n=18bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=19bv32, #t~ret0=262143bv32, ~n=19bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=19bv32, #res=524287bv32, ~n=19bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=20bv32, #t~ret0=524287bv32, ~n=20bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=20bv32, #res=1048575bv32, ~n=20bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=21bv32, #t~ret0=1048575bv32, ~n=21bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=21bv32, #res=2097151bv32, ~n=21bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=22bv32, #t~ret0=2097151bv32, ~n=22bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=22bv32, #res=4194303bv32, ~n=22bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=23bv32, #t~ret0=4194303bv32, ~n=23bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=23bv32, #res=8388607bv32, ~n=23bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=24bv32, #t~ret0=8388607bv32, ~n=24bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=24bv32, #res=16777215bv32, ~n=24bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=25bv32, #t~ret0=16777215bv32, ~n=25bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=25bv32, #res=33554431bv32, ~n=25bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=26bv32, #t~ret0=33554431bv32, ~n=26bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=26bv32, #res=67108863bv32, ~n=26bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=27bv32, #t~ret0=67108863bv32, ~n=27bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=27bv32, #res=134217727bv32, ~n=27bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=28bv32, #t~ret0=134217727bv32, ~n=28bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=28bv32, #res=268435455bv32, ~n=28bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=29bv32, #t~ret0=268435455bv32, ~n=29bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=29bv32, #res=536870911bv32, ~n=29bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=30bv32, #t~ret0=536870911bv32, ~n=30bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=30bv32, #res=1073741823bv32, ~n=30bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=31bv32, #t~ret0=1073741823bv32, ~n=31bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=31bv32, #res=2147483647bv32, ~n=31bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=32bv32, #t~ret0=2147483647bv32, ~n=32bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=32bv32, #res=4294967295bv32, ~n=32bv32] [L29] RET call main_#t~ret2 := hanoi(main_~n~0); VAL [main_#t~ret2=4294967295bv32, main_~n~0=32bv32] [L29] main_~result~0 := main_#t~ret2; [L29] havoc main_#t~ret2; VAL [main_~n~0=32bv32, main_~result~0=4294967295bv32] [L31] COND FALSE !(~bvugt32(~bvadd32(1bv32, main_~result~0), 0bv32) && ~bvadd32(1bv32, main_~result~0) == ~bvshl32(1bv32, main_~n~0)) VAL [main_~n~0=32bv32, main_~result~0=4294967295bv32] [L34] assert false; VAL [main_~n~0=32bv32, main_~result~0=4294967295bv32] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator [?] havoc main_#res; [?] havoc main_#t~nondet1, main_#t~ret2, main_~n~0, main_~result~0; [L25] main_~n~0 := main_#t~nondet1; [L25] havoc main_#t~nondet1; [L26] COND FALSE !(~bvslt32(main_~n~0, 1bv32)) VAL [main_~n~0=32bv32] [L29] CALL call main_#t~ret2 := hanoi(main_~n~0); VAL [#in~n=32bv32] [L16-L21] ~n := #in~n; VAL [#in~n=32bv32, ~n=32bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=32bv32, ~n=32bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=31bv32] [L16-L21] ~n := #in~n; VAL [#in~n=31bv32, ~n=31bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=31bv32, ~n=31bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=30bv32] [L16-L21] ~n := #in~n; VAL [#in~n=30bv32, ~n=30bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=30bv32, ~n=30bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=29bv32] [L16-L21] ~n := #in~n; VAL [#in~n=29bv32, ~n=29bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=29bv32, ~n=29bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=28bv32] [L16-L21] ~n := #in~n; VAL [#in~n=28bv32, ~n=28bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=28bv32, ~n=28bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=27bv32] [L16-L21] ~n := #in~n; VAL [#in~n=27bv32, ~n=27bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=27bv32, ~n=27bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=26bv32] [L16-L21] ~n := #in~n; VAL [#in~n=26bv32, ~n=26bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=26bv32, ~n=26bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=25bv32] [L16-L21] ~n := #in~n; VAL [#in~n=25bv32, ~n=25bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=25bv32, ~n=25bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=24bv32] [L16-L21] ~n := #in~n; VAL [#in~n=24bv32, ~n=24bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=24bv32, ~n=24bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=23bv32] [L16-L21] ~n := #in~n; VAL [#in~n=23bv32, ~n=23bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=23bv32, ~n=23bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=22bv32] [L16-L21] ~n := #in~n; VAL [#in~n=22bv32, ~n=22bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=22bv32, ~n=22bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=21bv32] [L16-L21] ~n := #in~n; VAL [#in~n=21bv32, ~n=21bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=21bv32, ~n=21bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=20bv32] [L16-L21] ~n := #in~n; VAL [#in~n=20bv32, ~n=20bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=20bv32, ~n=20bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=19bv32] [L16-L21] ~n := #in~n; VAL [#in~n=19bv32, ~n=19bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=19bv32, ~n=19bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=18bv32] [L16-L21] ~n := #in~n; VAL [#in~n=18bv32, ~n=18bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=18bv32, ~n=18bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=17bv32] [L16-L21] ~n := #in~n; VAL [#in~n=17bv32, ~n=17bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=17bv32, ~n=17bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=16bv32] [L16-L21] ~n := #in~n; VAL [#in~n=16bv32, ~n=16bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=16bv32, ~n=16bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=15bv32] [L16-L21] ~n := #in~n; VAL [#in~n=15bv32, ~n=15bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=15bv32, ~n=15bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=14bv32] [L16-L21] ~n := #in~n; VAL [#in~n=14bv32, ~n=14bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=14bv32, ~n=14bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=13bv32] [L16-L21] ~n := #in~n; VAL [#in~n=13bv32, ~n=13bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=13bv32, ~n=13bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=12bv32] [L16-L21] ~n := #in~n; VAL [#in~n=12bv32, ~n=12bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=12bv32, ~n=12bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=11bv32] [L16-L21] ~n := #in~n; VAL [#in~n=11bv32, ~n=11bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=11bv32, ~n=11bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=10bv32] [L16-L21] ~n := #in~n; VAL [#in~n=10bv32, ~n=10bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=10bv32, ~n=10bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=9bv32] [L16-L21] ~n := #in~n; VAL [#in~n=9bv32, ~n=9bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=9bv32, ~n=9bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=8bv32] [L16-L21] ~n := #in~n; VAL [#in~n=8bv32, ~n=8bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=8bv32, ~n=8bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=7bv32] [L16-L21] ~n := #in~n; VAL [#in~n=7bv32, ~n=7bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=7bv32, ~n=7bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=6bv32] [L16-L21] ~n := #in~n; VAL [#in~n=6bv32, ~n=6bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=6bv32, ~n=6bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=5bv32] [L16-L21] ~n := #in~n; VAL [#in~n=5bv32, ~n=5bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=5bv32, ~n=5bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=4bv32] [L16-L21] ~n := #in~n; VAL [#in~n=4bv32, ~n=4bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=4bv32, ~n=4bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=3bv32] [L16-L21] ~n := #in~n; VAL [#in~n=3bv32, ~n=3bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=3bv32, ~n=3bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=2bv32] [L16-L21] ~n := #in~n; VAL [#in~n=2bv32, ~n=2bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=2bv32, ~n=2bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=1bv32] [L16-L21] ~n := #in~n; VAL [#in~n=1bv32, ~n=1bv32] [L17] COND TRUE 1bv32 == ~n [L18] #res := 1bv32; VAL [#in~n=1bv32, #res=1bv32, ~n=1bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=2bv32, #t~ret0=1bv32, ~n=2bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=2bv32, #res=3bv32, ~n=2bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=3bv32, #t~ret0=3bv32, ~n=3bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=3bv32, #res=7bv32, ~n=3bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=4bv32, #t~ret0=7bv32, ~n=4bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=4bv32, #res=15bv32, ~n=4bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=5bv32, #t~ret0=15bv32, ~n=5bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=5bv32, #res=31bv32, ~n=5bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=6bv32, #t~ret0=31bv32, ~n=6bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=6bv32, #res=63bv32, ~n=6bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=7bv32, #t~ret0=63bv32, ~n=7bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=7bv32, #res=127bv32, ~n=7bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=8bv32, #t~ret0=127bv32, ~n=8bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=8bv32, #res=255bv32, ~n=8bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=9bv32, #t~ret0=255bv32, ~n=9bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=9bv32, #res=511bv32, ~n=9bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=10bv32, #t~ret0=511bv32, ~n=10bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=10bv32, #res=1023bv32, ~n=10bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=11bv32, #t~ret0=1023bv32, ~n=11bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=11bv32, #res=2047bv32, ~n=11bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=12bv32, #t~ret0=2047bv32, ~n=12bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=12bv32, #res=4095bv32, ~n=12bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=13bv32, #t~ret0=4095bv32, ~n=13bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=13bv32, #res=8191bv32, ~n=13bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=14bv32, #t~ret0=8191bv32, ~n=14bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=14bv32, #res=16383bv32, ~n=14bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=15bv32, #t~ret0=16383bv32, ~n=15bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=15bv32, #res=32767bv32, ~n=15bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=16bv32, #t~ret0=32767bv32, ~n=16bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=16bv32, #res=65535bv32, ~n=16bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=17bv32, #t~ret0=65535bv32, ~n=17bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=17bv32, #res=131071bv32, ~n=17bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=18bv32, #t~ret0=131071bv32, ~n=18bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=18bv32, #res=262143bv32, ~n=18bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=19bv32, #t~ret0=262143bv32, ~n=19bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=19bv32, #res=524287bv32, ~n=19bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=20bv32, #t~ret0=524287bv32, ~n=20bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=20bv32, #res=1048575bv32, ~n=20bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=21bv32, #t~ret0=1048575bv32, ~n=21bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=21bv32, #res=2097151bv32, ~n=21bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=22bv32, #t~ret0=2097151bv32, ~n=22bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=22bv32, #res=4194303bv32, ~n=22bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=23bv32, #t~ret0=4194303bv32, ~n=23bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=23bv32, #res=8388607bv32, ~n=23bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=24bv32, #t~ret0=8388607bv32, ~n=24bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=24bv32, #res=16777215bv32, ~n=24bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=25bv32, #t~ret0=16777215bv32, ~n=25bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=25bv32, #res=33554431bv32, ~n=25bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=26bv32, #t~ret0=33554431bv32, ~n=26bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=26bv32, #res=67108863bv32, ~n=26bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=27bv32, #t~ret0=67108863bv32, ~n=27bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=27bv32, #res=134217727bv32, ~n=27bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=28bv32, #t~ret0=134217727bv32, ~n=28bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=28bv32, #res=268435455bv32, ~n=28bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=29bv32, #t~ret0=268435455bv32, ~n=29bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=29bv32, #res=536870911bv32, ~n=29bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=30bv32, #t~ret0=536870911bv32, ~n=30bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=30bv32, #res=1073741823bv32, ~n=30bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=31bv32, #t~ret0=1073741823bv32, ~n=31bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=31bv32, #res=2147483647bv32, ~n=31bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=32bv32, #t~ret0=2147483647bv32, ~n=32bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=32bv32, #res=4294967295bv32, ~n=32bv32] [L29] RET call main_#t~ret2 := hanoi(main_~n~0); VAL [main_#t~ret2=4294967295bv32, main_~n~0=32bv32] [L29] main_~result~0 := main_#t~ret2; [L29] havoc main_#t~ret2; VAL [main_~n~0=32bv32, main_~result~0=4294967295bv32] [L31] COND FALSE !(~bvugt32(~bvadd32(1bv32, main_~result~0), 0bv32) && ~bvadd32(1bv32, main_~result~0) == ~bvshl32(1bv32, main_~n~0)) VAL [main_~n~0=32bv32, main_~result~0=4294967295bv32] [L34] assert false; VAL [main_~n~0=32bv32, main_~result~0=4294967295bv32] [L25] ~n~0 := #t~nondet1; [L25] havoc #t~nondet1; [L26] COND FALSE !(~bvslt32(~n~0, 1bv32)) [L29] CALL call #t~ret2 := hanoi(~n~0); VAL [#in~n=32bv32] [L16-L21] ~n := #in~n; VAL [#in~n=32bv32, ~n=32bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=32bv32, ~n=32bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=31bv32] [L16-L21] ~n := #in~n; VAL [#in~n=31bv32, ~n=31bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=31bv32, ~n=31bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=30bv32] [L16-L21] ~n := #in~n; VAL [#in~n=30bv32, ~n=30bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=30bv32, ~n=30bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=29bv32] [L16-L21] ~n := #in~n; VAL [#in~n=29bv32, ~n=29bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=29bv32, ~n=29bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=28bv32] [L16-L21] ~n := #in~n; VAL [#in~n=28bv32, ~n=28bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=28bv32, ~n=28bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=27bv32] [L16-L21] ~n := #in~n; VAL [#in~n=27bv32, ~n=27bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=27bv32, ~n=27bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=26bv32] [L16-L21] ~n := #in~n; VAL [#in~n=26bv32, ~n=26bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=26bv32, ~n=26bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=25bv32] [L16-L21] ~n := #in~n; VAL [#in~n=25bv32, ~n=25bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=25bv32, ~n=25bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=24bv32] [L16-L21] ~n := #in~n; VAL [#in~n=24bv32, ~n=24bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=24bv32, ~n=24bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=23bv32] [L16-L21] ~n := #in~n; VAL [#in~n=23bv32, ~n=23bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=23bv32, ~n=23bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=22bv32] [L16-L21] ~n := #in~n; VAL [#in~n=22bv32, ~n=22bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=22bv32, ~n=22bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=21bv32] [L16-L21] ~n := #in~n; VAL [#in~n=21bv32, ~n=21bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=21bv32, ~n=21bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=20bv32] [L16-L21] ~n := #in~n; VAL [#in~n=20bv32, ~n=20bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=20bv32, ~n=20bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=19bv32] [L16-L21] ~n := #in~n; VAL [#in~n=19bv32, ~n=19bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=19bv32, ~n=19bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=18bv32] [L16-L21] ~n := #in~n; VAL [#in~n=18bv32, ~n=18bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=18bv32, ~n=18bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=17bv32] [L16-L21] ~n := #in~n; VAL [#in~n=17bv32, ~n=17bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=17bv32, ~n=17bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=16bv32] [L16-L21] ~n := #in~n; VAL [#in~n=16bv32, ~n=16bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=16bv32, ~n=16bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=15bv32] [L16-L21] ~n := #in~n; VAL [#in~n=15bv32, ~n=15bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=15bv32, ~n=15bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=14bv32] [L16-L21] ~n := #in~n; VAL [#in~n=14bv32, ~n=14bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=14bv32, ~n=14bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=13bv32] [L16-L21] ~n := #in~n; VAL [#in~n=13bv32, ~n=13bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=13bv32, ~n=13bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=12bv32] [L16-L21] ~n := #in~n; VAL [#in~n=12bv32, ~n=12bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=12bv32, ~n=12bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=11bv32] [L16-L21] ~n := #in~n; VAL [#in~n=11bv32, ~n=11bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=11bv32, ~n=11bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=10bv32] [L16-L21] ~n := #in~n; VAL [#in~n=10bv32, ~n=10bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=10bv32, ~n=10bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=9bv32] [L16-L21] ~n := #in~n; VAL [#in~n=9bv32, ~n=9bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=9bv32, ~n=9bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=8bv32] [L16-L21] ~n := #in~n; VAL [#in~n=8bv32, ~n=8bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=8bv32, ~n=8bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=7bv32] [L16-L21] ~n := #in~n; VAL [#in~n=7bv32, ~n=7bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=7bv32, ~n=7bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=6bv32] [L16-L21] ~n := #in~n; VAL [#in~n=6bv32, ~n=6bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=6bv32, ~n=6bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=5bv32] [L16-L21] ~n := #in~n; VAL [#in~n=5bv32, ~n=5bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=5bv32, ~n=5bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=4bv32] [L16-L21] ~n := #in~n; VAL [#in~n=4bv32, ~n=4bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=4bv32, ~n=4bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=3bv32] [L16-L21] ~n := #in~n; VAL [#in~n=3bv32, ~n=3bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=3bv32, ~n=3bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=2bv32] [L16-L21] ~n := #in~n; VAL [#in~n=2bv32, ~n=2bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=2bv32, ~n=2bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=1bv32] [L16-L21] ~n := #in~n; VAL [#in~n=1bv32, ~n=1bv32] [L17] COND TRUE 1bv32 == ~n [L18] #res := 1bv32; VAL [#in~n=1bv32, #res=1bv32, ~n=1bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=2bv32, #t~ret0=1bv32, ~n=2bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=2bv32, #res=3bv32, ~n=2bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=3bv32, #t~ret0=3bv32, ~n=3bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=3bv32, #res=7bv32, ~n=3bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=4bv32, #t~ret0=7bv32, ~n=4bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=4bv32, #res=15bv32, ~n=4bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=5bv32, #t~ret0=15bv32, ~n=5bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=5bv32, #res=31bv32, ~n=5bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=6bv32, #t~ret0=31bv32, ~n=6bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=6bv32, #res=63bv32, ~n=6bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=7bv32, #t~ret0=63bv32, ~n=7bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=7bv32, #res=127bv32, ~n=7bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=8bv32, #t~ret0=127bv32, ~n=8bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=8bv32, #res=255bv32, ~n=8bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=9bv32, #t~ret0=255bv32, ~n=9bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=9bv32, #res=511bv32, ~n=9bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=10bv32, #t~ret0=511bv32, ~n=10bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=10bv32, #res=1023bv32, ~n=10bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=11bv32, #t~ret0=1023bv32, ~n=11bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=11bv32, #res=2047bv32, ~n=11bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=12bv32, #t~ret0=2047bv32, ~n=12bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=12bv32, #res=4095bv32, ~n=12bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=13bv32, #t~ret0=4095bv32, ~n=13bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=13bv32, #res=8191bv32, ~n=13bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=14bv32, #t~ret0=8191bv32, ~n=14bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=14bv32, #res=16383bv32, ~n=14bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=15bv32, #t~ret0=16383bv32, ~n=15bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=15bv32, #res=32767bv32, ~n=15bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=16bv32, #t~ret0=32767bv32, ~n=16bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=16bv32, #res=65535bv32, ~n=16bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=17bv32, #t~ret0=65535bv32, ~n=17bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=17bv32, #res=131071bv32, ~n=17bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=18bv32, #t~ret0=131071bv32, ~n=18bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=18bv32, #res=262143bv32, ~n=18bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=19bv32, #t~ret0=262143bv32, ~n=19bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=19bv32, #res=524287bv32, ~n=19bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=20bv32, #t~ret0=524287bv32, ~n=20bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=20bv32, #res=1048575bv32, ~n=20bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=21bv32, #t~ret0=1048575bv32, ~n=21bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=21bv32, #res=2097151bv32, ~n=21bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=22bv32, #t~ret0=2097151bv32, ~n=22bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=22bv32, #res=4194303bv32, ~n=22bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=23bv32, #t~ret0=4194303bv32, ~n=23bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=23bv32, #res=8388607bv32, ~n=23bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=24bv32, #t~ret0=8388607bv32, ~n=24bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=24bv32, #res=16777215bv32, ~n=24bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=25bv32, #t~ret0=16777215bv32, ~n=25bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=25bv32, #res=33554431bv32, ~n=25bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=26bv32, #t~ret0=33554431bv32, ~n=26bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=26bv32, #res=67108863bv32, ~n=26bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=27bv32, #t~ret0=67108863bv32, ~n=27bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=27bv32, #res=134217727bv32, ~n=27bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=28bv32, #t~ret0=134217727bv32, ~n=28bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=28bv32, #res=268435455bv32, ~n=28bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=29bv32, #t~ret0=268435455bv32, ~n=29bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=29bv32, #res=536870911bv32, ~n=29bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=30bv32, #t~ret0=536870911bv32, ~n=30bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=30bv32, #res=1073741823bv32, ~n=30bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=31bv32, #t~ret0=1073741823bv32, ~n=31bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=31bv32, #res=2147483647bv32, ~n=31bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=32bv32, #t~ret0=2147483647bv32, ~n=32bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=32bv32, #res=4294967295bv32, ~n=32bv32] [L29] RET call #t~ret2 := hanoi(~n~0); [L29] ~result~0 := #t~ret2; [L29] havoc #t~ret2; [L31] COND FALSE !(~bvugt32(~bvadd32(1bv32, ~result~0), 0bv32) && ~bvadd32(1bv32, ~result~0) == ~bvshl32(1bv32, ~n~0)) [L34] assert false; ----- ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.CACSL2BoogieBacktranslator [L25] ~n~0 := #t~nondet1; [L25] havoc #t~nondet1; [L26] COND FALSE !(~bvslt32(~n~0, 1bv32)) [L29] CALL call #t~ret2 := hanoi(~n~0); VAL [#in~n=32bv32] [L16-L21] ~n := #in~n; VAL [#in~n=32bv32, ~n=32bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=32bv32, ~n=32bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=31bv32] [L16-L21] ~n := #in~n; VAL [#in~n=31bv32, ~n=31bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=31bv32, ~n=31bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=30bv32] [L16-L21] ~n := #in~n; VAL [#in~n=30bv32, ~n=30bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=30bv32, ~n=30bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=29bv32] [L16-L21] ~n := #in~n; VAL [#in~n=29bv32, ~n=29bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=29bv32, ~n=29bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=28bv32] [L16-L21] ~n := #in~n; VAL [#in~n=28bv32, ~n=28bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=28bv32, ~n=28bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=27bv32] [L16-L21] ~n := #in~n; VAL [#in~n=27bv32, ~n=27bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=27bv32, ~n=27bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=26bv32] [L16-L21] ~n := #in~n; VAL [#in~n=26bv32, ~n=26bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=26bv32, ~n=26bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=25bv32] [L16-L21] ~n := #in~n; VAL [#in~n=25bv32, ~n=25bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=25bv32, ~n=25bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=24bv32] [L16-L21] ~n := #in~n; VAL [#in~n=24bv32, ~n=24bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=24bv32, ~n=24bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=23bv32] [L16-L21] ~n := #in~n; VAL [#in~n=23bv32, ~n=23bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=23bv32, ~n=23bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=22bv32] [L16-L21] ~n := #in~n; VAL [#in~n=22bv32, ~n=22bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=22bv32, ~n=22bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=21bv32] [L16-L21] ~n := #in~n; VAL [#in~n=21bv32, ~n=21bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=21bv32, ~n=21bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=20bv32] [L16-L21] ~n := #in~n; VAL [#in~n=20bv32, ~n=20bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=20bv32, ~n=20bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=19bv32] [L16-L21] ~n := #in~n; VAL [#in~n=19bv32, ~n=19bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=19bv32, ~n=19bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=18bv32] [L16-L21] ~n := #in~n; VAL [#in~n=18bv32, ~n=18bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=18bv32, ~n=18bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=17bv32] [L16-L21] ~n := #in~n; VAL [#in~n=17bv32, ~n=17bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=17bv32, ~n=17bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=16bv32] [L16-L21] ~n := #in~n; VAL [#in~n=16bv32, ~n=16bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=16bv32, ~n=16bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=15bv32] [L16-L21] ~n := #in~n; VAL [#in~n=15bv32, ~n=15bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=15bv32, ~n=15bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=14bv32] [L16-L21] ~n := #in~n; VAL [#in~n=14bv32, ~n=14bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=14bv32, ~n=14bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=13bv32] [L16-L21] ~n := #in~n; VAL [#in~n=13bv32, ~n=13bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=13bv32, ~n=13bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=12bv32] [L16-L21] ~n := #in~n; VAL [#in~n=12bv32, ~n=12bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=12bv32, ~n=12bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=11bv32] [L16-L21] ~n := #in~n; VAL [#in~n=11bv32, ~n=11bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=11bv32, ~n=11bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=10bv32] [L16-L21] ~n := #in~n; VAL [#in~n=10bv32, ~n=10bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=10bv32, ~n=10bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=9bv32] [L16-L21] ~n := #in~n; VAL [#in~n=9bv32, ~n=9bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=9bv32, ~n=9bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=8bv32] [L16-L21] ~n := #in~n; VAL [#in~n=8bv32, ~n=8bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=8bv32, ~n=8bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=7bv32] [L16-L21] ~n := #in~n; VAL [#in~n=7bv32, ~n=7bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=7bv32, ~n=7bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=6bv32] [L16-L21] ~n := #in~n; VAL [#in~n=6bv32, ~n=6bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=6bv32, ~n=6bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=5bv32] [L16-L21] ~n := #in~n; VAL [#in~n=5bv32, ~n=5bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=5bv32, ~n=5bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=4bv32] [L16-L21] ~n := #in~n; VAL [#in~n=4bv32, ~n=4bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=4bv32, ~n=4bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=3bv32] [L16-L21] ~n := #in~n; VAL [#in~n=3bv32, ~n=3bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=3bv32, ~n=3bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=2bv32] [L16-L21] ~n := #in~n; VAL [#in~n=2bv32, ~n=2bv32] [L17] COND FALSE !(1bv32 == ~n) VAL [#in~n=2bv32, ~n=2bv32] [L20] CALL call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=1bv32] [L16-L21] ~n := #in~n; VAL [#in~n=1bv32, ~n=1bv32] [L17] COND TRUE 1bv32 == ~n [L18] #res := 1bv32; VAL [#in~n=1bv32, #res=1bv32, ~n=1bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=2bv32, #t~ret0=1bv32, ~n=2bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=2bv32, #res=3bv32, ~n=2bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=3bv32, #t~ret0=3bv32, ~n=3bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=3bv32, #res=7bv32, ~n=3bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=4bv32, #t~ret0=7bv32, ~n=4bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=4bv32, #res=15bv32, ~n=4bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=5bv32, #t~ret0=15bv32, ~n=5bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=5bv32, #res=31bv32, ~n=5bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=6bv32, #t~ret0=31bv32, ~n=6bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=6bv32, #res=63bv32, ~n=6bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=7bv32, #t~ret0=63bv32, ~n=7bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=7bv32, #res=127bv32, ~n=7bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=8bv32, #t~ret0=127bv32, ~n=8bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=8bv32, #res=255bv32, ~n=8bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=9bv32, #t~ret0=255bv32, ~n=9bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=9bv32, #res=511bv32, ~n=9bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=10bv32, #t~ret0=511bv32, ~n=10bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=10bv32, #res=1023bv32, ~n=10bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=11bv32, #t~ret0=1023bv32, ~n=11bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=11bv32, #res=2047bv32, ~n=11bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=12bv32, #t~ret0=2047bv32, ~n=12bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=12bv32, #res=4095bv32, ~n=12bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=13bv32, #t~ret0=4095bv32, ~n=13bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=13bv32, #res=8191bv32, ~n=13bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=14bv32, #t~ret0=8191bv32, ~n=14bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=14bv32, #res=16383bv32, ~n=14bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=15bv32, #t~ret0=16383bv32, ~n=15bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=15bv32, #res=32767bv32, ~n=15bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=16bv32, #t~ret0=32767bv32, ~n=16bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=16bv32, #res=65535bv32, ~n=16bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=17bv32, #t~ret0=65535bv32, ~n=17bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=17bv32, #res=131071bv32, ~n=17bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=18bv32, #t~ret0=131071bv32, ~n=18bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=18bv32, #res=262143bv32, ~n=18bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=19bv32, #t~ret0=262143bv32, ~n=19bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=19bv32, #res=524287bv32, ~n=19bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=20bv32, #t~ret0=524287bv32, ~n=20bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=20bv32, #res=1048575bv32, ~n=20bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=21bv32, #t~ret0=1048575bv32, ~n=21bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=21bv32, #res=2097151bv32, ~n=21bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=22bv32, #t~ret0=2097151bv32, ~n=22bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=22bv32, #res=4194303bv32, ~n=22bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=23bv32, #t~ret0=4194303bv32, ~n=23bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=23bv32, #res=8388607bv32, ~n=23bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=24bv32, #t~ret0=8388607bv32, ~n=24bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=24bv32, #res=16777215bv32, ~n=24bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=25bv32, #t~ret0=16777215bv32, ~n=25bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=25bv32, #res=33554431bv32, ~n=25bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=26bv32, #t~ret0=33554431bv32, ~n=26bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=26bv32, #res=67108863bv32, ~n=26bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=27bv32, #t~ret0=67108863bv32, ~n=27bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=27bv32, #res=134217727bv32, ~n=27bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=28bv32, #t~ret0=134217727bv32, ~n=28bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=28bv32, #res=268435455bv32, ~n=28bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=29bv32, #t~ret0=268435455bv32, ~n=29bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=29bv32, #res=536870911bv32, ~n=29bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=30bv32, #t~ret0=536870911bv32, ~n=30bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=30bv32, #res=1073741823bv32, ~n=30bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=31bv32, #t~ret0=1073741823bv32, ~n=31bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=31bv32, #res=2147483647bv32, ~n=31bv32] [L20] RET call #t~ret0 := hanoi(~bvsub32(~n, 1bv32)); VAL [#in~n=32bv32, #t~ret0=2147483647bv32, ~n=32bv32] [L20] #res := ~bvadd32(1bv32, ~bvmul32(2bv32, #t~ret0)); [L20] havoc #t~ret0; VAL [#in~n=32bv32, #res=4294967295bv32, ~n=32bv32] [L29] RET call #t~ret2 := hanoi(~n~0); [L29] ~result~0 := #t~ret2; [L29] havoc #t~ret2; [L31] COND FALSE !(~bvugt32(~bvadd32(1bv32, ~result~0), 0bv32) && ~bvadd32(1bv32, ~result~0) == ~bvshl32(1bv32, ~n~0)) [L34] assert false; [L25] int n = __VERIFIER_nondet_int(); [L26] COND FALSE !(n < 1) [L29] CALL, EXPR hanoi(n) VAL [\old(n)=32] [L17] COND FALSE !(n == 1) VAL [\old(n)=32, n=32] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=31] [L17] COND FALSE !(n == 1) VAL [\old(n)=31, n=31] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=30] [L17] COND FALSE !(n == 1) VAL [\old(n)=30, n=30] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=29] [L17] COND FALSE !(n == 1) VAL [\old(n)=29, n=29] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=28] [L17] COND FALSE !(n == 1) VAL [\old(n)=28, n=28] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=27] [L17] COND FALSE !(n == 1) VAL [\old(n)=27, n=27] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=26] [L17] COND FALSE !(n == 1) VAL [\old(n)=26, n=26] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=25] [L17] COND FALSE !(n == 1) VAL [\old(n)=25, n=25] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=24] [L17] COND FALSE !(n == 1) VAL [\old(n)=24, n=24] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=23] [L17] COND FALSE !(n == 1) VAL [\old(n)=23, n=23] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=22] [L17] COND FALSE !(n == 1) VAL [\old(n)=22, n=22] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=21] [L17] COND FALSE !(n == 1) VAL [\old(n)=21, n=21] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=20] [L17] COND FALSE !(n == 1) VAL [\old(n)=20, n=20] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=19] [L17] COND FALSE !(n == 1) VAL [\old(n)=19, n=19] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=18] [L17] COND FALSE !(n == 1) VAL [\old(n)=18, n=18] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=17] [L17] COND FALSE !(n == 1) VAL [\old(n)=17, n=17] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=16] [L17] COND FALSE !(n == 1) VAL [\old(n)=16, n=16] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=15] [L17] COND FALSE !(n == 1) VAL [\old(n)=15, n=15] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=14] [L17] COND FALSE !(n == 1) VAL [\old(n)=14, n=14] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=13] [L17] COND FALSE !(n == 1) VAL [\old(n)=13, n=13] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=12] [L17] COND FALSE !(n == 1) VAL [\old(n)=12, n=12] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=11] [L17] COND FALSE !(n == 1) VAL [\old(n)=11, n=11] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=10] [L17] COND FALSE !(n == 1) VAL [\old(n)=10, n=10] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=9] [L17] COND FALSE !(n == 1) VAL [\old(n)=9, n=9] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=8] [L17] COND FALSE !(n == 1) VAL [\old(n)=8, n=8] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=7] [L17] COND FALSE !(n == 1) VAL [\old(n)=7, n=7] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=6] [L17] COND FALSE !(n == 1) VAL [\old(n)=6, n=6] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=5] [L17] COND FALSE !(n == 1) VAL [\old(n)=5, n=5] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=4] [L17] COND FALSE !(n == 1) VAL [\old(n)=4, n=4] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=3] [L17] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=2] [L17] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L20] CALL, EXPR hanoi(n-1) VAL [\old(n)=1] [L17] COND TRUE n == 1 [L18] return 1; VAL [\old(n)=1, \result=1, n=1] [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=2, hanoi(n-1)=1, n=2] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=3, hanoi(n-1)=3, n=3] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=4, hanoi(n-1)=7, n=4] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=5, hanoi(n-1)=15, n=5] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=6, hanoi(n-1)=31, n=6] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=7, hanoi(n-1)=63, n=7] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=8, hanoi(n-1)=127, n=8] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=9, hanoi(n-1)=255, n=9] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=10, hanoi(n-1)=511, n=10] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=11, hanoi(n-1)=1023, n=11] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=12, hanoi(n-1)=2047, n=12] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=13, hanoi(n-1)=4095, n=13] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=14, hanoi(n-1)=8191, n=14] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=15, hanoi(n-1)=16383, n=15] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=16, hanoi(n-1)=32767, n=16] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=17, hanoi(n-1)=65535, n=17] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=18, hanoi(n-1)=131071, n=18] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=19, hanoi(n-1)=262143, n=19] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=20, hanoi(n-1)=524287, n=20] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=21, hanoi(n-1)=1048575, n=21] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=22, hanoi(n-1)=2097151, n=22] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=23, hanoi(n-1)=4194303, n=23] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=24, hanoi(n-1)=8388607, n=24] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=25, hanoi(n-1)=16777215, n=25] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=26, hanoi(n-1)=33554431, n=26] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=27, hanoi(n-1)=67108863, n=27] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=28, hanoi(n-1)=134217727, n=28] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=29, hanoi(n-1)=268435455, n=29] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=30, hanoi(n-1)=536870911, n=30] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=31, hanoi(n-1)=1073741823, n=31] [L20] return 2 * (hanoi(n-1)) + 1; [L20] RET, EXPR hanoi(n-1) VAL [\old(n)=32, hanoi(n-1)=2147483647, n=32] [L20] return 2 * (hanoi(n-1)) + 1; [L29] RET, EXPR hanoi(n) [L29] unsigned result = hanoi(n); [L31] COND FALSE !(result+1>0 && result+1 == 1<0 && result+1 == 1<0 && result+1 == 1<