./Ultimate.py --spec ../../sv-benchmarks/c/properties/unreach-call.prp --file ../../sv-benchmarks/c/recursive-simple/fibo_2calls_8_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_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/data/config -Xmx12G -Xms1G -jar /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/data -tc /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/config/TaipanReach.xml -i ../../sv-benchmarks/c/recursive-simple/fibo_2calls_8_false-unreach-call_true-termination.c -s /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/config/svcomp-Reach-32bit-Taipan_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan --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 Taipan --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash e21c3699338992ddad7e6d15f4351c8cc3315b0b ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. 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 03:49:11,017 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 03:49:11,018 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 03:49:11,025 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 03:49:11,026 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 03:49:11,026 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 03:49:11,027 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 03:49:11,028 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 03:49:11,028 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 03:49:11,029 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 03:49:11,029 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 03:49:11,029 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 03:49:11,030 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 03:49:11,031 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 03:49:11,031 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 03:49:11,032 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 03:49:11,032 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 03:49:11,033 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 03:49:11,035 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 03:49:11,035 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 03:49:11,036 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 03:49:11,037 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 03:49:11,038 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 03:49:11,038 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 03:49:11,038 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 03:49:11,039 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 03:49:11,040 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 03:49:11,040 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 03:49:11,041 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 03:49:11,042 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 03:49:11,042 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 03:49:11,042 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 03:49:11,043 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 03:49:11,043 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 03:49:11,043 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 03:49:11,044 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 03:49:11,044 INFO L98 SettingsManager]: Beginning loading settings from /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/config/svcomp-Reach-32bit-Taipan_Default.epf [2018-11-23 03:49:11,053 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 03:49:11,053 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 03:49:11,054 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 03:49:11,054 INFO L133 SettingsManager]: * ... calls to implemented procedures=ONLY_FOR_CONCURRENT_PROGRAMS [2018-11-23 03:49:11,054 INFO L133 SettingsManager]: * User list type=DISABLED [2018-11-23 03:49:11,054 INFO L131 SettingsManager]: Preferences of Abstract Interpretation differ from their defaults: [2018-11-23 03:49:11,054 INFO L133 SettingsManager]: * Explicit value domain=true [2018-11-23 03:49:11,055 INFO L133 SettingsManager]: * Abstract domain for RCFG-of-the-future=PoormanAbstractDomain [2018-11-23 03:49:11,055 INFO L133 SettingsManager]: * Octagon Domain=false [2018-11-23 03:49:11,055 INFO L133 SettingsManager]: * Abstract domain=CompoundDomain [2018-11-23 03:49:11,055 INFO L133 SettingsManager]: * Check feasibility of abstract posts with an SMT solver=true [2018-11-23 03:49:11,055 INFO L133 SettingsManager]: * Use the RCFG-of-the-future interface=true [2018-11-23 03:49:11,055 INFO L133 SettingsManager]: * Interval Domain=false [2018-11-23 03:49:11,056 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 03:49:11,056 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 03:49:11,056 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-23 03:49:11,056 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 03:49:11,056 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 03:49:11,056 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 03:49:11,057 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 03:49:11,057 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 03:49:11,057 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 03:49:11,057 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 03:49:11,057 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 03:49:11,057 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 03:49:11,057 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 03:49:11,057 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-23 03:49:11,058 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 03:49:11,058 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-23 03:49:11,058 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 03:49:11,058 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 03:49:11,058 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 03:49:11,058 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 03:49:11,058 INFO L133 SettingsManager]: * Trace refinement strategy=TAIPAN [2018-11-23 03:49:11,058 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 03:49:11,058 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-23 03:49:11,059 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-11-23 03:49:11,059 INFO L133 SettingsManager]: * Abstract interpretation Mode=USE_PREDICATES 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_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan 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 -> Taipan 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 -> e21c3699338992ddad7e6d15f4351c8cc3315b0b [2018-11-23 03:49:11,083 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 03:49:11,092 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 03:49:11,095 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 03:49:11,096 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 03:49:11,096 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 03:49:11,097 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/../../sv-benchmarks/c/recursive-simple/fibo_2calls_8_false-unreach-call_true-termination.c [2018-11-23 03:49:11,143 INFO L221 CDTParser]: Created temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/data/9eb8086bd/91f92a13c9c340688d8fec5f2f5a026c/FLAG76885c7f0 [2018-11-23 03:49:11,443 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 03:49:11,443 INFO L161 CDTParser]: Scanning /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/sv-benchmarks/c/recursive-simple/fibo_2calls_8_false-unreach-call_true-termination.c [2018-11-23 03:49:11,448 INFO L355 CDTParser]: About to delete temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/data/9eb8086bd/91f92a13c9c340688d8fec5f2f5a026c/FLAG76885c7f0 [2018-11-23 03:49:11,458 INFO L363 CDTParser]: Successfully deleted /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/data/9eb8086bd/91f92a13c9c340688d8fec5f2f5a026c [2018-11-23 03:49:11,460 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 03:49:11,461 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 03:49:11,462 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 03:49:11,462 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 03:49:11,465 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 03:49:11,466 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 03:49:11" (1/1) ... [2018-11-23 03:49:11,468 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@a9989bb and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:49:11, skipping insertion in model container [2018-11-23 03:49:11,468 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 03:49:11" (1/1) ... [2018-11-23 03:49:11,477 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 03:49:11,492 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 03:49:11,609 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 03:49:11,611 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 03:49:11,621 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 03:49:11,629 INFO L195 MainTranslator]: Completed translation [2018-11-23 03:49:11,629 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:49:11 WrapperNode [2018-11-23 03:49:11,629 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 03:49:11,630 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 03:49:11,630 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 03:49:11,630 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 03:49:11,635 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:49:11" (1/1) ... [2018-11-23 03:49:11,638 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:49:11" (1/1) ... [2018-11-23 03:49:11,641 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 03:49:11,641 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 03:49:11,641 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 03:49:11,642 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 03:49:11,647 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:49:11" (1/1) ... [2018-11-23 03:49:11,647 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:49:11" (1/1) ... [2018-11-23 03:49:11,647 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:49:11" (1/1) ... [2018-11-23 03:49:11,647 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:49:11" (1/1) ... [2018-11-23 03:49:11,649 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:49:11" (1/1) ... [2018-11-23 03:49:11,651 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:49:11" (1/1) ... [2018-11-23 03:49:11,651 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:49:11" (1/1) ... [2018-11-23 03:49:11,652 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 03:49:11,653 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 03:49:11,653 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 03:49:11,653 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 03:49:11,653 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:49:11" (1/1) ... No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 03:49:11,729 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-23 03:49:11,729 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-23 03:49:11,729 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 03:49:11,729 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 03:49:11,729 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-23 03:49:11,730 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-23 03:49:11,730 INFO L130 BoogieDeclarations]: Found specification of procedure fibo2 [2018-11-23 03:49:11,730 INFO L138 BoogieDeclarations]: Found implementation of procedure fibo2 [2018-11-23 03:49:11,730 INFO L130 BoogieDeclarations]: Found specification of procedure fibo1 [2018-11-23 03:49:11,730 INFO L138 BoogieDeclarations]: Found implementation of procedure fibo1 [2018-11-23 03:49:11,844 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 03:49:11,845 INFO L280 CfgBuilder]: Removed 0 assue(true) statements. [2018-11-23 03:49:11,845 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 03:49:11 BoogieIcfgContainer [2018-11-23 03:49:11,845 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 03:49:11,846 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-23 03:49:11,846 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-23 03:49:11,847 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-23 03:49:11,848 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 23.11 03:49:11" (1/3) ... [2018-11-23 03:49:11,848 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@22b5bbb6 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 03:49:11, skipping insertion in model container [2018-11-23 03:49:11,848 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 03:49:11" (2/3) ... [2018-11-23 03:49:11,849 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@22b5bbb6 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 03:49:11, skipping insertion in model container [2018-11-23 03:49:11,849 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 03:49:11" (3/3) ... [2018-11-23 03:49:11,850 INFO L112 eAbstractionObserver]: Analyzing ICFG fibo_2calls_8_false-unreach-call_true-termination.c [2018-11-23 03:49:11,858 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-23 03:49:11,864 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-23 03:49:11,875 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-23 03:49:11,900 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-23 03:49:11,901 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-23 03:49:11,901 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-23 03:49:11,901 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-23 03:49:11,901 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-23 03:49:11,901 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-23 03:49:11,901 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-23 03:49:11,901 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-23 03:49:11,916 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states. [2018-11-23 03:49:11,919 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 14 [2018-11-23 03:49:11,920 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:11,920 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:11,921 INFO L423 AbstractCegarLoop]: === Iteration 1 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:11,924 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:11,925 INFO L82 PathProgramCache]: Analyzing trace with hash 1464461757, now seen corresponding path program 1 times [2018-11-23 03:49:11,926 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:11,962 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:11,962 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:11,962 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:11,962 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:11,984 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:12,037 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 03:49:12,038 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 03:49:12,039 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-23 03:49:12,039 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 03:49:12,042 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-23 03:49:12,053 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-23 03:49:12,054 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2018-11-23 03:49:12,056 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 5 states. [2018-11-23 03:49:12,130 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:12,131 INFO L93 Difference]: Finished difference Result 44 states and 53 transitions. [2018-11-23 03:49:12,131 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 03:49:12,132 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 13 [2018-11-23 03:49:12,132 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:12,138 INFO L225 Difference]: With dead ends: 44 [2018-11-23 03:49:12,138 INFO L226 Difference]: Without dead ends: 30 [2018-11-23 03:49:12,140 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 4 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=11, Invalid=19, Unknown=0, NotChecked=0, Total=30 [2018-11-23 03:49:12,150 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 30 states. [2018-11-23 03:49:12,166 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 30 to 30. [2018-11-23 03:49:12,167 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2018-11-23 03:49:12,168 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 37 transitions. [2018-11-23 03:49:12,169 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 37 transitions. Word has length 13 [2018-11-23 03:49:12,169 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:12,169 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 37 transitions. [2018-11-23 03:49:12,169 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-23 03:49:12,169 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 37 transitions. [2018-11-23 03:49:12,170 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 15 [2018-11-23 03:49:12,170 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:12,171 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:12,171 INFO L423 AbstractCegarLoop]: === Iteration 2 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:12,171 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:12,171 INFO L82 PathProgramCache]: Analyzing trace with hash -1134800479, now seen corresponding path program 1 times [2018-11-23 03:49:12,171 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:12,172 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:12,172 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:12,172 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:12,172 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:12,177 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:12,215 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 03:49:12,215 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 03:49:12,215 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2018-11-23 03:49:12,215 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 03:49:12,216 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-23 03:49:12,217 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-23 03:49:12,217 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2018-11-23 03:49:12,217 INFO L87 Difference]: Start difference. First operand 30 states and 37 transitions. Second operand 5 states. [2018-11-23 03:49:12,283 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:12,284 INFO L93 Difference]: Finished difference Result 36 states and 44 transitions. [2018-11-23 03:49:12,284 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2018-11-23 03:49:12,284 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 14 [2018-11-23 03:49:12,284 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:12,285 INFO L225 Difference]: With dead ends: 36 [2018-11-23 03:49:12,285 INFO L226 Difference]: Without dead ends: 32 [2018-11-23 03:49:12,286 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 4 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=11, Invalid=19, Unknown=0, NotChecked=0, Total=30 [2018-11-23 03:49:12,286 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 32 states. [2018-11-23 03:49:12,290 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 32 to 30. [2018-11-23 03:49:12,290 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2018-11-23 03:49:12,291 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 37 transitions. [2018-11-23 03:49:12,291 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 37 transitions. Word has length 14 [2018-11-23 03:49:12,292 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:12,292 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 37 transitions. [2018-11-23 03:49:12,292 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-23 03:49:12,292 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 37 transitions. [2018-11-23 03:49:12,293 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2018-11-23 03:49:12,293 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:12,293 INFO L402 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:12,293 INFO L423 AbstractCegarLoop]: === Iteration 3 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:12,293 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:12,294 INFO L82 PathProgramCache]: Analyzing trace with hash -1592795560, now seen corresponding path program 1 times [2018-11-23 03:49:12,294 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:12,295 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:12,295 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:12,295 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:12,295 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:12,304 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:12,376 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-23 03:49:12,377 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:12,377 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:12,378 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 27 with the following transitions: [2018-11-23 03:49:12,379 INFO L202 CegarAbsIntRunner]: [0], [4], [6], [9], [11], [18], [21], [31], [32], [36], [40], [42], [44], [45], [46], [47], [48], [50], [51], [56], [57], [58], [59] [2018-11-23 03:49:12,401 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 03:49:12,401 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 03:49:12,465 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 03:49:12,465 INFO L272 AbstractInterpreter]: Visited 12 different actions 12 times. Never merged. Never widened. Performed 15 root evaluator evaluations with a maximum evaluation depth of 3. Performed 15 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Never found a fixpoint. Largest state had 5 variables. [2018-11-23 03:49:12,470 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:12,470 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 03:49:12,500 INFO L227 lantSequenceWeakener]: Weakened 4 states. On average, predicates are now at 50% of their original sizes. [2018-11-23 03:49:12,500 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 03:49:12,523 INFO L415 sIntCurrentIteration]: We unified 25 AI predicates to 25 [2018-11-23 03:49:12,523 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 03:49:12,524 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 03:49:12,524 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [7] imperfect sequences [6] total 11 [2018-11-23 03:49:12,524 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 03:49:12,524 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2018-11-23 03:49:12,524 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2018-11-23 03:49:12,524 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2018-11-23 03:49:12,525 INFO L87 Difference]: Start difference. First operand 30 states and 37 transitions. Second operand 7 states. [2018-11-23 03:49:12,673 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:12,673 INFO L93 Difference]: Finished difference Result 72 states and 95 transitions. [2018-11-23 03:49:12,673 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2018-11-23 03:49:12,673 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 26 [2018-11-23 03:49:12,674 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:12,674 INFO L225 Difference]: With dead ends: 72 [2018-11-23 03:49:12,674 INFO L226 Difference]: Without dead ends: 48 [2018-11-23 03:49:12,675 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 27 GetRequests, 20 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=19, Invalid=53, Unknown=0, NotChecked=0, Total=72 [2018-11-23 03:49:12,675 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2018-11-23 03:49:12,679 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 46. [2018-11-23 03:49:12,679 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 46 states. [2018-11-23 03:49:12,680 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 46 states to 46 states and 54 transitions. [2018-11-23 03:49:12,680 INFO L78 Accepts]: Start accepts. Automaton has 46 states and 54 transitions. Word has length 26 [2018-11-23 03:49:12,680 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:12,680 INFO L480 AbstractCegarLoop]: Abstraction has 46 states and 54 transitions. [2018-11-23 03:49:12,680 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2018-11-23 03:49:12,680 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 54 transitions. [2018-11-23 03:49:12,681 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2018-11-23 03:49:12,681 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:12,681 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:12,681 INFO L423 AbstractCegarLoop]: === Iteration 4 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:12,682 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:12,682 INFO L82 PathProgramCache]: Analyzing trace with hash 986908919, now seen corresponding path program 1 times [2018-11-23 03:49:12,682 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:12,682 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:12,683 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:12,683 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:12,683 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:12,693 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:12,754 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 5 proven. 5 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2018-11-23 03:49:12,755 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:12,755 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:12,755 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 40 with the following transitions: [2018-11-23 03:49:12,755 INFO L202 CegarAbsIntRunner]: [0], [4], [6], [9], [11], [18], [21], [22], [26], [28], [30], [31], [32], [35], [36], [40], [42], [44], [45], [46], [47], [48], [50], [51], [52], [53], [54], [55], [56], [57], [58], [59] [2018-11-23 03:49:12,756 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 03:49:12,757 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 03:49:12,875 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 03:49:12,875 INFO L272 AbstractInterpreter]: Visited 28 different actions 313 times. Never merged. Widened at 2 different actions 18 times. Performed 647 root evaluator evaluations with a maximum evaluation depth of 4. Performed 647 inverse root evaluator evaluations with a maximum inverse evaluation depth of 4. Found 29 fixpoints after 6 different actions. Largest state had 5 variables. [2018-11-23 03:49:12,876 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:12,877 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 03:49:12,890 INFO L227 lantSequenceWeakener]: Weakened 7 states. On average, predicates are now at 50% of their original sizes. [2018-11-23 03:49:12,890 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 03:49:12,931 INFO L415 sIntCurrentIteration]: We unified 38 AI predicates to 38 [2018-11-23 03:49:12,931 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 03:49:12,931 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 03:49:12,931 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [9] imperfect sequences [6] total 13 [2018-11-23 03:49:12,932 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 03:49:12,932 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2018-11-23 03:49:12,932 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2018-11-23 03:49:12,932 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=15, Invalid=57, Unknown=0, NotChecked=0, Total=72 [2018-11-23 03:49:12,932 INFO L87 Difference]: Start difference. First operand 46 states and 54 transitions. Second operand 9 states. [2018-11-23 03:49:13,164 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:13,164 INFO L93 Difference]: Finished difference Result 87 states and 106 transitions. [2018-11-23 03:49:13,164 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2018-11-23 03:49:13,164 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 39 [2018-11-23 03:49:13,164 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:13,165 INFO L225 Difference]: With dead ends: 87 [2018-11-23 03:49:13,165 INFO L226 Difference]: Without dead ends: 55 [2018-11-23 03:49:13,166 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 41 GetRequests, 31 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 3 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=27, Invalid=105, Unknown=0, NotChecked=0, Total=132 [2018-11-23 03:49:13,166 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2018-11-23 03:49:13,170 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 55. [2018-11-23 03:49:13,171 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 55 states. [2018-11-23 03:49:13,172 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 55 states to 55 states and 64 transitions. [2018-11-23 03:49:13,172 INFO L78 Accepts]: Start accepts. Automaton has 55 states and 64 transitions. Word has length 39 [2018-11-23 03:49:13,173 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:13,173 INFO L480 AbstractCegarLoop]: Abstraction has 55 states and 64 transitions. [2018-11-23 03:49:13,173 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2018-11-23 03:49:13,173 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 64 transitions. [2018-11-23 03:49:13,174 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 53 [2018-11-23 03:49:13,174 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:13,174 INFO L402 BasicCegarLoop]: trace histogram [4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:13,174 INFO L423 AbstractCegarLoop]: === Iteration 5 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:13,175 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:13,175 INFO L82 PathProgramCache]: Analyzing trace with hash -209212298, now seen corresponding path program 2 times [2018-11-23 03:49:13,175 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:13,175 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:13,175 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:13,175 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:13,176 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:13,186 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:13,230 INFO L134 CoverageAnalysis]: Checked inductivity of 41 backedges. 9 proven. 10 refuted. 0 times theorem prover too weak. 22 trivial. 0 not checked. [2018-11-23 03:49:13,231 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:13,231 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:13,231 INFO L184 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2018-11-23 03:49:13,232 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2018-11-23 03:49:13,232 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:13,232 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 03:49:13,242 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2018-11-23 03:49:13,242 INFO L286 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2018-11-23 03:49:13,263 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2018-11-23 03:49:13,263 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 03:49:13,268 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 03:49:13,341 INFO L134 CoverageAnalysis]: Checked inductivity of 41 backedges. 12 proven. 10 refuted. 0 times theorem prover too weak. 19 trivial. 0 not checked. [2018-11-23 03:49:13,341 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 03:49:13,604 INFO L134 CoverageAnalysis]: Checked inductivity of 41 backedges. 12 proven. 11 refuted. 0 times theorem prover too weak. 18 trivial. 0 not checked. [2018-11-23 03:49:13,621 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2018-11-23 03:49:13,621 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [6, 8, 9] total 15 [2018-11-23 03:49:13,621 INFO L249 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2018-11-23 03:49:13,621 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2018-11-23 03:49:13,621 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2018-11-23 03:49:13,622 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=169, Unknown=0, NotChecked=0, Total=210 [2018-11-23 03:49:13,622 INFO L87 Difference]: Start difference. First operand 55 states and 64 transitions. Second operand 11 states. [2018-11-23 03:49:13,781 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:13,781 INFO L93 Difference]: Finished difference Result 121 states and 177 transitions. [2018-11-23 03:49:13,785 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2018-11-23 03:49:13,786 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 52 [2018-11-23 03:49:13,786 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:13,787 INFO L225 Difference]: With dead ends: 121 [2018-11-23 03:49:13,787 INFO L226 Difference]: Without dead ends: 76 [2018-11-23 03:49:13,788 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 119 GetRequests, 92 SyntacticMatches, 7 SemanticMatches, 20 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 58 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=93, Invalid=369, Unknown=0, NotChecked=0, Total=462 [2018-11-23 03:49:13,788 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 76 states. [2018-11-23 03:49:13,793 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 76 to 59. [2018-11-23 03:49:13,794 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 59 states. [2018-11-23 03:49:13,795 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 59 states to 59 states and 70 transitions. [2018-11-23 03:49:13,795 INFO L78 Accepts]: Start accepts. Automaton has 59 states and 70 transitions. Word has length 52 [2018-11-23 03:49:13,795 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:13,795 INFO L480 AbstractCegarLoop]: Abstraction has 59 states and 70 transitions. [2018-11-23 03:49:13,795 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2018-11-23 03:49:13,795 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 70 transitions. [2018-11-23 03:49:13,796 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 56 [2018-11-23 03:49:13,796 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:13,796 INFO L402 BasicCegarLoop]: trace histogram [4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:13,798 INFO L423 AbstractCegarLoop]: === Iteration 6 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:13,798 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:13,798 INFO L82 PathProgramCache]: Analyzing trace with hash -242988780, now seen corresponding path program 1 times [2018-11-23 03:49:13,798 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:13,799 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:13,799 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 03:49:13,799 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:13,799 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:13,809 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:13,847 INFO L134 CoverageAnalysis]: Checked inductivity of 46 backedges. 18 proven. 5 refuted. 0 times theorem prover too weak. 23 trivial. 0 not checked. [2018-11-23 03:49:13,847 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:13,847 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:13,847 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 56 with the following transitions: [2018-11-23 03:49:13,847 INFO L202 CegarAbsIntRunner]: [0], [4], [6], [9], [11], [18], [21], [22], [25], [26], [28], [30], [31], [32], [36], [39], [40], [42], [44], [45], [46], [47], [48], [50], [51], [52], [53], [54], [55], [56], [57], [58], [59] [2018-11-23 03:49:13,849 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 03:49:13,849 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 03:49:14,694 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 03:49:14,694 INFO L272 AbstractInterpreter]: Visited 29 different actions 4700 times. Merged at 11 different actions 1218 times. Widened at 2 different actions 234 times. Performed 10886 root evaluator evaluations with a maximum evaluation depth of 4. Performed 10886 inverse root evaluator evaluations with a maximum inverse evaluation depth of 4. Found 580 fixpoints after 9 different actions. Largest state had 5 variables. [2018-11-23 03:49:14,705 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:14,705 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 03:49:14,716 INFO L227 lantSequenceWeakener]: Weakened 11 states. On average, predicates are now at 50% of their original sizes. [2018-11-23 03:49:14,716 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 03:49:14,764 INFO L415 sIntCurrentIteration]: We unified 54 AI predicates to 54 [2018-11-23 03:49:14,764 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 03:49:14,764 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 03:49:14,765 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [11] imperfect sequences [7] total 16 [2018-11-23 03:49:14,765 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 03:49:14,765 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2018-11-23 03:49:14,765 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2018-11-23 03:49:14,765 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=91, Unknown=0, NotChecked=0, Total=110 [2018-11-23 03:49:14,765 INFO L87 Difference]: Start difference. First operand 59 states and 70 transitions. Second operand 11 states. [2018-11-23 03:49:14,983 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:14,983 INFO L93 Difference]: Finished difference Result 109 states and 136 transitions. [2018-11-23 03:49:14,983 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2018-11-23 03:49:14,984 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 55 [2018-11-23 03:49:14,984 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:14,985 INFO L225 Difference]: With dead ends: 109 [2018-11-23 03:49:14,985 INFO L226 Difference]: Without dead ends: 68 [2018-11-23 03:49:14,985 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 58 GetRequests, 45 SyntacticMatches, 0 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 6 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=35, Invalid=175, Unknown=0, NotChecked=0, Total=210 [2018-11-23 03:49:14,986 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 68 states. [2018-11-23 03:49:14,993 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 68 to 68. [2018-11-23 03:49:14,993 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 68 states. [2018-11-23 03:49:14,994 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 68 states to 68 states and 82 transitions. [2018-11-23 03:49:14,994 INFO L78 Accepts]: Start accepts. Automaton has 68 states and 82 transitions. Word has length 55 [2018-11-23 03:49:14,995 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:14,995 INFO L480 AbstractCegarLoop]: Abstraction has 68 states and 82 transitions. [2018-11-23 03:49:14,995 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2018-11-23 03:49:14,995 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 82 transitions. [2018-11-23 03:49:14,998 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 68 [2018-11-23 03:49:14,998 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:14,998 INFO L402 BasicCegarLoop]: trace histogram [5, 5, 4, 4, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:14,999 INFO L423 AbstractCegarLoop]: === Iteration 7 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:14,999 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:14,999 INFO L82 PathProgramCache]: Analyzing trace with hash -1768644787, now seen corresponding path program 1 times [2018-11-23 03:49:14,999 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:15,000 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:15,000 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:15,000 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:15,000 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:15,011 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:15,074 INFO L134 CoverageAnalysis]: Checked inductivity of 78 backedges. 16 proven. 15 refuted. 0 times theorem prover too weak. 47 trivial. 0 not checked. [2018-11-23 03:49:15,074 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:15,074 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:15,074 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 68 with the following transitions: [2018-11-23 03:49:15,074 INFO L202 CegarAbsIntRunner]: [0], [4], [6], [9], [11], [18], [21], [22], [25], [26], [28], [30], [31], [32], [35], [36], [39], [40], [42], [44], [45], [46], [47], [48], [50], [51], [52], [53], [54], [55], [56], [57], [58], [59] [2018-11-23 03:49:15,076 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 03:49:15,076 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 03:49:23,163 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2018-11-23 03:49:23,163 INFO L272 AbstractInterpreter]: Visited 34 different actions 66808 times. Merged at 14 different actions 20936 times. Widened at 4 different actions 2001 times. Performed 164394 root evaluator evaluations with a maximum evaluation depth of 4. Performed 164394 inverse root evaluator evaluations with a maximum inverse evaluation depth of 4. Found 9083 fixpoints after 10 different actions. Largest state had 5 variables. [2018-11-23 03:49:23,165 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:23,165 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2018-11-23 03:49:23,165 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:23,165 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 03:49:23,171 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:23,171 INFO L286 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2018-11-23 03:49:23,189 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:23,191 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 03:49:23,272 INFO L134 CoverageAnalysis]: Checked inductivity of 78 backedges. 8 proven. 40 refuted. 0 times theorem prover too weak. 30 trivial. 0 not checked. [2018-11-23 03:49:23,272 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 03:49:23,807 INFO L134 CoverageAnalysis]: Checked inductivity of 78 backedges. 8 proven. 48 refuted. 0 times theorem prover too weak. 22 trivial. 0 not checked. [2018-11-23 03:49:23,832 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2018-11-23 03:49:23,832 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [6, 10, 13] total 18 [2018-11-23 03:49:23,832 INFO L249 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2018-11-23 03:49:23,833 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2018-11-23 03:49:23,833 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2018-11-23 03:49:23,833 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=54, Invalid=252, Unknown=0, NotChecked=0, Total=306 [2018-11-23 03:49:23,833 INFO L87 Difference]: Start difference. First operand 68 states and 82 transitions. Second operand 12 states. [2018-11-23 03:49:24,008 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:24,008 INFO L93 Difference]: Finished difference Result 144 states and 218 transitions. [2018-11-23 03:49:24,009 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2018-11-23 03:49:24,009 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 67 [2018-11-23 03:49:24,009 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:24,011 INFO L225 Difference]: With dead ends: 144 [2018-11-23 03:49:24,011 INFO L226 Difference]: Without dead ends: 95 [2018-11-23 03:49:24,012 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 152 GetRequests, 117 SyntacticMatches, 11 SemanticMatches, 24 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 101 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=122, Invalid=528, Unknown=0, NotChecked=0, Total=650 [2018-11-23 03:49:24,012 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 95 states. [2018-11-23 03:49:24,023 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 95 to 70. [2018-11-23 03:49:24,023 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 70 states. [2018-11-23 03:49:24,024 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 70 states to 70 states and 84 transitions. [2018-11-23 03:49:24,024 INFO L78 Accepts]: Start accepts. Automaton has 70 states and 84 transitions. Word has length 67 [2018-11-23 03:49:24,024 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:24,024 INFO L480 AbstractCegarLoop]: Abstraction has 70 states and 84 transitions. [2018-11-23 03:49:24,024 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2018-11-23 03:49:24,024 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 84 transitions. [2018-11-23 03:49:24,026 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 82 [2018-11-23 03:49:24,026 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:24,026 INFO L402 BasicCegarLoop]: trace histogram [7, 7, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:24,026 INFO L423 AbstractCegarLoop]: === Iteration 8 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:24,027 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:24,027 INFO L82 PathProgramCache]: Analyzing trace with hash 650896746, now seen corresponding path program 1 times [2018-11-23 03:49:24,027 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:24,027 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:24,028 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:24,028 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:24,028 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:24,041 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:24,129 INFO L134 CoverageAnalysis]: Checked inductivity of 137 backedges. 39 proven. 39 refuted. 0 times theorem prover too weak. 59 trivial. 0 not checked. [2018-11-23 03:49:24,129 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:24,129 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:24,129 INFO L200 CegarAbsIntRunner]: Running AI on error trace of length 82 with the following transitions: [2018-11-23 03:49:24,129 INFO L202 CegarAbsIntRunner]: [0], [4], [6], [9], [11], [18], [21], [22], [26], [28], [30], [31], [32], [35], [36], [39], [40], [42], [44], [45], [46], [47], [48], [50], [51], [52], [53], [54], [55], [56], [57], [58], [59] [2018-11-23 03:49:24,130 INFO L148 AbstractInterpreter]: Using domain PoormanAbstractDomain with backing domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2018-11-23 03:49:24,130 INFO L101 FixpointEngine]: Starting fixpoint engine with domain PoormanAbstractDomain (maxUnwinding=3, maxParallelStates=2) [2018-11-23 03:49:24,465 INFO L266 AbstractInterpreter]: Error location(s) were unreachable [2018-11-23 03:49:24,465 INFO L272 AbstractInterpreter]: Visited 29 different actions 3221 times. Merged at 11 different actions 850 times. Widened at 2 different actions 130 times. Performed 7908 root evaluator evaluations with a maximum evaluation depth of 4. Performed 7908 inverse root evaluator evaluations with a maximum inverse evaluation depth of 4. Found 384 fixpoints after 9 different actions. Largest state had 5 variables. [2018-11-23 03:49:24,467 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:24,467 INFO L398 sIntCurrentIteration]: Generating AbsInt predicates [2018-11-23 03:49:24,478 INFO L227 lantSequenceWeakener]: Weakened 19 states. On average, predicates are now at 55.26% of their original sizes. [2018-11-23 03:49:24,478 INFO L413 sIntCurrentIteration]: Unifying AI predicates [2018-11-23 03:49:24,525 INFO L415 sIntCurrentIteration]: We unified 80 AI predicates to 80 [2018-11-23 03:49:24,525 INFO L424 sIntCurrentIteration]: Finished generation of AbsInt predicates [2018-11-23 03:49:24,525 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 03:49:24,525 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [15] imperfect sequences [11] total 24 [2018-11-23 03:49:24,525 INFO L256 anRefinementStrategy]: Using the first perfect interpolant sequence [2018-11-23 03:49:24,525 INFO L459 AbstractCegarLoop]: Interpolant automaton has 15 states [2018-11-23 03:49:24,526 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2018-11-23 03:49:24,526 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=27, Invalid=183, Unknown=0, NotChecked=0, Total=210 [2018-11-23 03:49:24,526 INFO L87 Difference]: Start difference. First operand 70 states and 84 transitions. Second operand 15 states. [2018-11-23 03:49:24,939 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:24,939 INFO L93 Difference]: Finished difference Result 136 states and 177 transitions. [2018-11-23 03:49:24,940 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2018-11-23 03:49:24,940 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 81 [2018-11-23 03:49:24,940 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:24,941 INFO L225 Difference]: With dead ends: 136 [2018-11-23 03:49:24,941 INFO L226 Difference]: Without dead ends: 88 [2018-11-23 03:49:24,941 INFO L631 BasicCegarLoop]: 2 DeclaredPredicates, 90 GetRequests, 71 SyntacticMatches, 0 SemanticMatches, 19 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 15 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=51, Invalid=369, Unknown=0, NotChecked=0, Total=420 [2018-11-23 03:49:24,941 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 88 states. [2018-11-23 03:49:24,946 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 88 to 88. [2018-11-23 03:49:24,946 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 88 states. [2018-11-23 03:49:24,947 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 88 states to 88 states and 109 transitions. [2018-11-23 03:49:24,947 INFO L78 Accepts]: Start accepts. Automaton has 88 states and 109 transitions. Word has length 81 [2018-11-23 03:49:24,947 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:24,947 INFO L480 AbstractCegarLoop]: Abstraction has 88 states and 109 transitions. [2018-11-23 03:49:24,948 INFO L481 AbstractCegarLoop]: Interpolant automaton has 15 states. [2018-11-23 03:49:24,948 INFO L276 IsEmpty]: Start isEmpty. Operand 88 states and 109 transitions. [2018-11-23 03:49:24,949 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 109 [2018-11-23 03:49:24,949 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:24,949 INFO L402 BasicCegarLoop]: trace histogram [8, 8, 7, 7, 6, 5, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:24,949 INFO L423 AbstractCegarLoop]: === Iteration 9 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:24,950 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:24,950 INFO L82 PathProgramCache]: Analyzing trace with hash -1708632044, now seen corresponding path program 2 times [2018-11-23 03:49:24,950 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:24,950 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:24,951 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:24,951 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:24,951 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:24,961 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:25,047 INFO L134 CoverageAnalysis]: Checked inductivity of 257 backedges. 68 proven. 48 refuted. 0 times theorem prover too weak. 141 trivial. 0 not checked. [2018-11-23 03:49:25,047 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:25,047 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:25,048 INFO L184 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2018-11-23 03:49:25,048 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2018-11-23 03:49:25,048 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:25,048 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 03:49:25,059 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2018-11-23 03:49:25,059 INFO L286 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2018-11-23 03:49:25,072 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2018-11-23 03:49:25,072 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 03:49:25,074 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 03:49:25,114 INFO L134 CoverageAnalysis]: Checked inductivity of 257 backedges. 67 proven. 15 refuted. 0 times theorem prover too weak. 175 trivial. 0 not checked. [2018-11-23 03:49:25,115 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 03:49:25,321 INFO L134 CoverageAnalysis]: Checked inductivity of 257 backedges. 67 proven. 16 refuted. 0 times theorem prover too weak. 174 trivial. 0 not checked. [2018-11-23 03:49:25,335 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2018-11-23 03:49:25,336 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 8, 9] total 20 [2018-11-23 03:49:25,336 INFO L249 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2018-11-23 03:49:25,336 INFO L459 AbstractCegarLoop]: Interpolant automaton has 16 states [2018-11-23 03:49:25,336 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2018-11-23 03:49:25,336 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=54, Invalid=326, Unknown=0, NotChecked=0, Total=380 [2018-11-23 03:49:25,336 INFO L87 Difference]: Start difference. First operand 88 states and 109 transitions. Second operand 16 states. [2018-11-23 03:49:25,626 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:25,627 INFO L93 Difference]: Finished difference Result 218 states and 340 transitions. [2018-11-23 03:49:25,627 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 21 states. [2018-11-23 03:49:25,627 INFO L78 Accepts]: Start accepts. Automaton has 16 states. Word has length 108 [2018-11-23 03:49:25,627 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:25,628 INFO L225 Difference]: With dead ends: 218 [2018-11-23 03:49:25,628 INFO L226 Difference]: Without dead ends: 147 [2018-11-23 03:49:25,629 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 239 GetRequests, 202 SyntacticMatches, 6 SemanticMatches, 31 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 167 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=174, Invalid=882, Unknown=0, NotChecked=0, Total=1056 [2018-11-23 03:49:25,629 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 147 states. [2018-11-23 03:49:25,643 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 147 to 117. [2018-11-23 03:49:25,643 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 117 states. [2018-11-23 03:49:25,644 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 117 states to 117 states and 166 transitions. [2018-11-23 03:49:25,645 INFO L78 Accepts]: Start accepts. Automaton has 117 states and 166 transitions. Word has length 108 [2018-11-23 03:49:25,646 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:25,646 INFO L480 AbstractCegarLoop]: Abstraction has 117 states and 166 transitions. [2018-11-23 03:49:25,646 INFO L481 AbstractCegarLoop]: Interpolant automaton has 16 states. [2018-11-23 03:49:25,646 INFO L276 IsEmpty]: Start isEmpty. Operand 117 states and 166 transitions. [2018-11-23 03:49:25,648 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 149 [2018-11-23 03:49:25,648 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:25,648 INFO L402 BasicCegarLoop]: trace histogram [12, 12, 9, 9, 8, 7, 6, 6, 6, 6, 6, 6, 6, 5, 4, 4, 4, 4, 4, 4, 4, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:25,648 INFO L423 AbstractCegarLoop]: === Iteration 10 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:25,648 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:25,648 INFO L82 PathProgramCache]: Analyzing trace with hash 388544251, now seen corresponding path program 3 times [2018-11-23 03:49:25,648 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:25,649 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:25,649 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 03:49:25,649 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:25,649 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:25,661 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:25,741 INFO L134 CoverageAnalysis]: Checked inductivity of 541 backedges. 112 proven. 43 refuted. 0 times theorem prover too weak. 386 trivial. 0 not checked. [2018-11-23 03:49:25,741 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:25,741 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:25,741 INFO L184 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2018-11-23 03:49:25,741 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2018-11-23 03:49:25,742 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:25,742 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/z3 Starting monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 03:49:25,749 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2018-11-23 03:49:25,749 INFO L286 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder TERMS_WITH_SMALL_CONSTANTS_FIRST (IT: FPandBP) [2018-11-23 03:49:25,784 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2018-11-23 03:49:25,784 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 03:49:25,788 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 03:49:25,875 INFO L134 CoverageAnalysis]: Checked inductivity of 541 backedges. 43 proven. 195 refuted. 0 times theorem prover too weak. 303 trivial. 0 not checked. [2018-11-23 03:49:25,875 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 03:49:26,531 INFO L134 CoverageAnalysis]: Checked inductivity of 541 backedges. 43 proven. 211 refuted. 0 times theorem prover too weak. 287 trivial. 0 not checked. [2018-11-23 03:49:26,546 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2018-11-23 03:49:26,546 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 11, 15] total 24 [2018-11-23 03:49:26,546 INFO L249 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2018-11-23 03:49:26,547 INFO L459 AbstractCegarLoop]: Interpolant automaton has 17 states [2018-11-23 03:49:26,547 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2018-11-23 03:49:26,547 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=82, Invalid=470, Unknown=0, NotChecked=0, Total=552 [2018-11-23 03:49:26,547 INFO L87 Difference]: Start difference. First operand 117 states and 166 transitions. Second operand 17 states. [2018-11-23 03:49:26,856 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:26,856 INFO L93 Difference]: Finished difference Result 319 states and 576 transitions. [2018-11-23 03:49:26,856 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2018-11-23 03:49:26,856 INFO L78 Accepts]: Start accepts. Automaton has 17 states. Word has length 148 [2018-11-23 03:49:26,857 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:26,859 INFO L225 Difference]: With dead ends: 319 [2018-11-23 03:49:26,859 INFO L226 Difference]: Without dead ends: 194 [2018-11-23 03:49:26,860 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 317 GetRequests, 270 SyntacticMatches, 12 SemanticMatches, 35 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 249 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=226, Invalid=1106, Unknown=0, NotChecked=0, Total=1332 [2018-11-23 03:49:26,860 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 194 states. [2018-11-23 03:49:26,877 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 194 to 135. [2018-11-23 03:49:26,878 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 135 states. [2018-11-23 03:49:26,879 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 135 states to 135 states and 198 transitions. [2018-11-23 03:49:26,879 INFO L78 Accepts]: Start accepts. Automaton has 135 states and 198 transitions. Word has length 148 [2018-11-23 03:49:26,880 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:26,880 INFO L480 AbstractCegarLoop]: Abstraction has 135 states and 198 transitions. [2018-11-23 03:49:26,880 INFO L481 AbstractCegarLoop]: Interpolant automaton has 17 states. [2018-11-23 03:49:26,880 INFO L276 IsEmpty]: Start isEmpty. Operand 135 states and 198 transitions. [2018-11-23 03:49:26,885 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 219 [2018-11-23 03:49:26,885 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:26,885 INFO L402 BasicCegarLoop]: trace histogram [16, 16, 15, 15, 13, 12, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 4, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:26,885 INFO L423 AbstractCegarLoop]: === Iteration 11 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:26,885 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:26,885 INFO L82 PathProgramCache]: Analyzing trace with hash 657587316, now seen corresponding path program 4 times [2018-11-23 03:49:26,885 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:26,886 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:26,886 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 03:49:26,886 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:26,886 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:26,903 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:27,006 INFO L134 CoverageAnalysis]: Checked inductivity of 1240 backedges. 221 proven. 60 refuted. 0 times theorem prover too weak. 959 trivial. 0 not checked. [2018-11-23 03:49:27,006 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:27,006 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:27,006 INFO L184 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2018-11-23 03:49:27,006 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2018-11-23 03:49:27,006 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:27,006 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/z3 Starting monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 03:49:27,015 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:27,015 INFO L286 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2018-11-23 03:49:27,054 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:27,061 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 03:49:27,174 INFO L134 CoverageAnalysis]: Checked inductivity of 1240 backedges. 73 proven. 382 refuted. 0 times theorem prover too weak. 785 trivial. 0 not checked. [2018-11-23 03:49:27,174 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 03:49:27,293 WARN L180 SmtUtils]: Spent 105.00 ms on a formula simplification that was a NOOP. DAG size: 9 [2018-11-23 03:49:28,193 INFO L134 CoverageAnalysis]: Checked inductivity of 1240 backedges. 73 proven. 406 refuted. 0 times theorem prover too weak. 761 trivial. 0 not checked. [2018-11-23 03:49:28,208 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2018-11-23 03:49:28,208 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 12, 17] total 21 [2018-11-23 03:49:28,208 INFO L249 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2018-11-23 03:49:28,209 INFO L459 AbstractCegarLoop]: Interpolant automaton has 14 states [2018-11-23 03:49:28,209 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2018-11-23 03:49:28,209 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=82, Invalid=338, Unknown=0, NotChecked=0, Total=420 [2018-11-23 03:49:28,209 INFO L87 Difference]: Start difference. First operand 135 states and 198 transitions. Second operand 14 states. [2018-11-23 03:49:28,351 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:28,351 INFO L93 Difference]: Finished difference Result 260 states and 468 transitions. [2018-11-23 03:49:28,351 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2018-11-23 03:49:28,351 INFO L78 Accepts]: Start accepts. Automaton has 14 states. Word has length 218 [2018-11-23 03:49:28,352 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:28,354 INFO L225 Difference]: With dead ends: 260 [2018-11-23 03:49:28,354 INFO L226 Difference]: Without dead ends: 228 [2018-11-23 03:49:28,355 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 455 GetRequests, 412 SyntacticMatches, 15 SemanticMatches, 28 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 236 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=182, Invalid=688, Unknown=0, NotChecked=0, Total=870 [2018-11-23 03:49:28,355 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 228 states. [2018-11-23 03:49:28,370 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 228 to 150. [2018-11-23 03:49:28,371 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 150 states. [2018-11-23 03:49:28,372 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 150 states to 150 states and 227 transitions. [2018-11-23 03:49:28,372 INFO L78 Accepts]: Start accepts. Automaton has 150 states and 227 transitions. Word has length 218 [2018-11-23 03:49:28,372 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:28,372 INFO L480 AbstractCegarLoop]: Abstraction has 150 states and 227 transitions. [2018-11-23 03:49:28,372 INFO L481 AbstractCegarLoop]: Interpolant automaton has 14 states. [2018-11-23 03:49:28,372 INFO L276 IsEmpty]: Start isEmpty. Operand 150 states and 227 transitions. [2018-11-23 03:49:28,375 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 324 [2018-11-23 03:49:28,375 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:28,376 INFO L402 BasicCegarLoop]: trace histogram [24, 24, 23, 23, 18, 16, 12, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 11, 11, 7, 7, 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:28,376 INFO L423 AbstractCegarLoop]: === Iteration 12 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:28,376 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:28,376 INFO L82 PathProgramCache]: Analyzing trace with hash 1574028924, now seen corresponding path program 5 times [2018-11-23 03:49:28,376 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:28,376 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:28,376 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:28,378 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:28,379 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:28,392 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:28,483 INFO L134 CoverageAnalysis]: Checked inductivity of 2873 backedges. 170 proven. 400 refuted. 0 times theorem prover too weak. 2303 trivial. 0 not checked. [2018-11-23 03:49:28,484 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:28,484 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:28,484 INFO L184 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2018-11-23 03:49:28,484 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2018-11-23 03:49:28,484 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:28,484 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 03:49:28,492 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2018-11-23 03:49:28,492 INFO L286 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2018-11-23 03:49:28,518 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 6 check-sat command(s) [2018-11-23 03:49:28,518 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 03:49:28,522 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 03:49:28,625 INFO L134 CoverageAnalysis]: Checked inductivity of 2873 backedges. 605 proven. 32 refuted. 0 times theorem prover too weak. 2236 trivial. 0 not checked. [2018-11-23 03:49:28,625 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 03:49:29,299 INFO L134 CoverageAnalysis]: Checked inductivity of 2873 backedges. 605 proven. 34 refuted. 0 times theorem prover too weak. 2234 trivial. 0 not checked. [2018-11-23 03:49:29,325 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2018-11-23 03:49:29,325 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 12, 13] total 23 [2018-11-23 03:49:29,326 INFO L249 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2018-11-23 03:49:29,326 INFO L459 AbstractCegarLoop]: Interpolant automaton has 18 states [2018-11-23 03:49:29,327 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 18 interpolants. [2018-11-23 03:49:29,327 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=74, Invalid=432, Unknown=0, NotChecked=0, Total=506 [2018-11-23 03:49:29,327 INFO L87 Difference]: Start difference. First operand 150 states and 227 transitions. Second operand 18 states. [2018-11-23 03:49:29,742 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:29,742 INFO L93 Difference]: Finished difference Result 295 states and 502 transitions. [2018-11-23 03:49:29,743 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2018-11-23 03:49:29,743 INFO L78 Accepts]: Start accepts. Automaton has 18 states. Word has length 323 [2018-11-23 03:49:29,743 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:29,745 INFO L225 Difference]: With dead ends: 295 [2018-11-23 03:49:29,745 INFO L226 Difference]: Without dead ends: 163 [2018-11-23 03:49:29,747 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 666 GetRequests, 622 SyntacticMatches, 11 SemanticMatches, 33 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 260 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=208, Invalid=982, Unknown=0, NotChecked=0, Total=1190 [2018-11-23 03:49:29,747 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 163 states. [2018-11-23 03:49:29,758 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 163 to 151. [2018-11-23 03:49:29,758 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 151 states. [2018-11-23 03:49:29,759 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 151 states to 151 states and 209 transitions. [2018-11-23 03:49:29,760 INFO L78 Accepts]: Start accepts. Automaton has 151 states and 209 transitions. Word has length 323 [2018-11-23 03:49:29,760 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:29,760 INFO L480 AbstractCegarLoop]: Abstraction has 151 states and 209 transitions. [2018-11-23 03:49:29,760 INFO L481 AbstractCegarLoop]: Interpolant automaton has 18 states. [2018-11-23 03:49:29,760 INFO L276 IsEmpty]: Start isEmpty. Operand 151 states and 209 transitions. [2018-11-23 03:49:29,765 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 395 [2018-11-23 03:49:29,765 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:29,766 INFO L402 BasicCegarLoop]: trace histogram [33, 33, 24, 24, 24, 21, 16, 16, 16, 16, 16, 16, 16, 12, 12, 12, 12, 12, 12, 12, 12, 9, 5, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:29,766 INFO L423 AbstractCegarLoop]: === Iteration 13 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:29,766 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:29,766 INFO L82 PathProgramCache]: Analyzing trace with hash 525360745, now seen corresponding path program 6 times [2018-11-23 03:49:29,766 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:29,767 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:29,767 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 03:49:29,767 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:29,767 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:29,799 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:29,931 INFO L134 CoverageAnalysis]: Checked inductivity of 4446 backedges. 420 proven. 362 refuted. 0 times theorem prover too weak. 3664 trivial. 0 not checked. [2018-11-23 03:49:29,931 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:29,931 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:29,931 INFO L184 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2018-11-23 03:49:29,931 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2018-11-23 03:49:29,931 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:29,931 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/z3 Starting monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 03:49:29,937 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2018-11-23 03:49:29,938 INFO L286 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder TERMS_WITH_SMALL_CONSTANTS_FIRST (IT: FPandBP) [2018-11-23 03:49:29,984 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2018-11-23 03:49:29,984 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 03:49:29,989 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 03:49:30,136 INFO L134 CoverageAnalysis]: Checked inductivity of 4446 backedges. 366 proven. 508 refuted. 0 times theorem prover too weak. 3572 trivial. 0 not checked. [2018-11-23 03:49:30,136 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 03:49:31,127 INFO L134 CoverageAnalysis]: Checked inductivity of 4446 backedges. 368 proven. 520 refuted. 0 times theorem prover too weak. 3558 trivial. 0 not checked. [2018-11-23 03:49:31,142 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2018-11-23 03:49:31,142 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 12, 16] total 27 [2018-11-23 03:49:31,142 INFO L249 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2018-11-23 03:49:31,143 INFO L459 AbstractCegarLoop]: Interpolant automaton has 20 states [2018-11-23 03:49:31,143 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 20 interpolants. [2018-11-23 03:49:31,143 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=106, Invalid=596, Unknown=0, NotChecked=0, Total=702 [2018-11-23 03:49:31,143 INFO L87 Difference]: Start difference. First operand 151 states and 209 transitions. Second operand 20 states. [2018-11-23 03:49:31,557 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:31,557 INFO L93 Difference]: Finished difference Result 366 states and 616 transitions. [2018-11-23 03:49:31,558 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 23 states. [2018-11-23 03:49:31,558 INFO L78 Accepts]: Start accepts. Automaton has 20 states. Word has length 394 [2018-11-23 03:49:31,559 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:31,560 INFO L225 Difference]: With dead ends: 366 [2018-11-23 03:49:31,560 INFO L226 Difference]: Without dead ends: 154 [2018-11-23 03:49:31,562 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 813 GetRequests, 759 SyntacticMatches, 14 SemanticMatches, 40 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 389 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=293, Invalid=1429, Unknown=0, NotChecked=0, Total=1722 [2018-11-23 03:49:31,562 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 154 states. [2018-11-23 03:49:31,573 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 154 to 145. [2018-11-23 03:49:31,574 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 145 states. [2018-11-23 03:49:31,574 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 145 states to 145 states and 191 transitions. [2018-11-23 03:49:31,575 INFO L78 Accepts]: Start accepts. Automaton has 145 states and 191 transitions. Word has length 394 [2018-11-23 03:49:31,575 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:31,575 INFO L480 AbstractCegarLoop]: Abstraction has 145 states and 191 transitions. [2018-11-23 03:49:31,575 INFO L481 AbstractCegarLoop]: Interpolant automaton has 20 states. [2018-11-23 03:49:31,575 INFO L276 IsEmpty]: Start isEmpty. Operand 145 states and 191 transitions. [2018-11-23 03:49:31,577 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 382 [2018-11-23 03:49:31,577 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:31,577 INFO L402 BasicCegarLoop]: trace histogram [29, 29, 26, 26, 23, 21, 14, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 10, 7, 6, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:31,578 INFO L423 AbstractCegarLoop]: === Iteration 14 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:31,578 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:31,578 INFO L82 PathProgramCache]: Analyzing trace with hash 789981588, now seen corresponding path program 7 times [2018-11-23 03:49:31,578 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:31,578 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:31,579 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 03:49:31,579 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:31,579 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:31,598 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:31,779 INFO L134 CoverageAnalysis]: Checked inductivity of 4063 backedges. 485 proven. 189 refuted. 0 times theorem prover too weak. 3389 trivial. 0 not checked. [2018-11-23 03:49:31,779 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:31,779 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:31,779 INFO L184 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2018-11-23 03:49:31,780 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2018-11-23 03:49:31,780 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:31,780 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/z3 Starting monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 03:49:31,792 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:31,792 INFO L286 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2018-11-23 03:49:31,863 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:31,869 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 03:49:32,004 INFO L134 CoverageAnalysis]: Checked inductivity of 4063 backedges. 391 proven. 404 refuted. 0 times theorem prover too weak. 3268 trivial. 0 not checked. [2018-11-23 03:49:32,005 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 03:49:32,881 INFO L134 CoverageAnalysis]: Checked inductivity of 4063 backedges. 393 proven. 418 refuted. 0 times theorem prover too weak. 3252 trivial. 0 not checked. [2018-11-23 03:49:32,896 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2018-11-23 03:49:32,896 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 11, 15] total 19 [2018-11-23 03:49:32,896 INFO L249 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2018-11-23 03:49:32,896 INFO L459 AbstractCegarLoop]: Interpolant automaton has 13 states [2018-11-23 03:49:32,897 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2018-11-23 03:49:32,897 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=69, Invalid=273, Unknown=0, NotChecked=0, Total=342 [2018-11-23 03:49:32,897 INFO L87 Difference]: Start difference. First operand 145 states and 191 transitions. Second operand 13 states. [2018-11-23 03:49:33,021 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:33,022 INFO L93 Difference]: Finished difference Result 209 states and 311 transitions. [2018-11-23 03:49:33,022 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2018-11-23 03:49:33,022 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 381 [2018-11-23 03:49:33,022 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:33,023 INFO L225 Difference]: With dead ends: 209 [2018-11-23 03:49:33,023 INFO L226 Difference]: Without dead ends: 197 [2018-11-23 03:49:33,024 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 782 GetRequests, 744 SyntacticMatches, 13 SemanticMatches, 25 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 161 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=149, Invalid=553, Unknown=0, NotChecked=0, Total=702 [2018-11-23 03:49:33,024 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 197 states. [2018-11-23 03:49:33,032 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 197 to 158. [2018-11-23 03:49:33,032 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 158 states. [2018-11-23 03:49:33,033 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 158 states to 158 states and 223 transitions. [2018-11-23 03:49:33,034 INFO L78 Accepts]: Start accepts. Automaton has 158 states and 223 transitions. Word has length 381 [2018-11-23 03:49:33,034 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:33,034 INFO L480 AbstractCegarLoop]: Abstraction has 158 states and 223 transitions. [2018-11-23 03:49:33,034 INFO L481 AbstractCegarLoop]: Interpolant automaton has 13 states. [2018-11-23 03:49:33,034 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 223 transitions. [2018-11-23 03:49:33,036 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 411 [2018-11-23 03:49:33,036 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:33,037 INFO L402 BasicCegarLoop]: trace histogram [33, 33, 26, 26, 25, 24, 16, 16, 16, 16, 16, 16, 16, 13, 13, 13, 13, 13, 13, 13, 11, 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:33,037 INFO L423 AbstractCegarLoop]: === Iteration 15 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:33,037 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:33,037 INFO L82 PathProgramCache]: Analyzing trace with hash -1658586650, now seen corresponding path program 8 times [2018-11-23 03:49:33,037 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:33,039 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:33,039 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:33,039 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:33,040 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:33,052 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:33,142 INFO L134 CoverageAnalysis]: Checked inductivity of 4780 backedges. 310 proven. 407 refuted. 0 times theorem prover too weak. 4063 trivial. 0 not checked. [2018-11-23 03:49:33,142 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:33,142 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:33,142 INFO L184 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2018-11-23 03:49:33,142 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2018-11-23 03:49:33,143 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:33,143 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/z3 Starting monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 03:49:33,148 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2018-11-23 03:49:33,148 INFO L286 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2018-11-23 03:49:33,189 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 7 check-sat command(s) [2018-11-23 03:49:33,190 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 03:49:33,193 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 03:49:33,275 INFO L134 CoverageAnalysis]: Checked inductivity of 4780 backedges. 1782 proven. 31 refuted. 0 times theorem prover too weak. 2967 trivial. 0 not checked. [2018-11-23 03:49:33,276 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 03:49:33,966 INFO L134 CoverageAnalysis]: Checked inductivity of 4780 backedges. 726 proven. 122 refuted. 0 times theorem prover too weak. 3932 trivial. 0 not checked. [2018-11-23 03:49:33,981 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2018-11-23 03:49:33,981 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 11, 11] total 17 [2018-11-23 03:49:33,981 INFO L249 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2018-11-23 03:49:33,982 INFO L459 AbstractCegarLoop]: Interpolant automaton has 13 states [2018-11-23 03:49:33,982 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2018-11-23 03:49:33,982 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=42, Invalid=230, Unknown=0, NotChecked=0, Total=272 [2018-11-23 03:49:33,982 INFO L87 Difference]: Start difference. First operand 158 states and 223 transitions. Second operand 13 states. [2018-11-23 03:49:34,217 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:34,217 INFO L93 Difference]: Finished difference Result 317 states and 516 transitions. [2018-11-23 03:49:34,218 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2018-11-23 03:49:34,218 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 410 [2018-11-23 03:49:34,218 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:34,219 INFO L225 Difference]: With dead ends: 317 [2018-11-23 03:49:34,219 INFO L226 Difference]: Without dead ends: 171 [2018-11-23 03:49:34,221 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 840 GetRequests, 804 SyntacticMatches, 9 SemanticMatches, 27 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 67 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=154, Invalid=658, Unknown=0, NotChecked=0, Total=812 [2018-11-23 03:49:34,221 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 171 states. [2018-11-23 03:49:34,229 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 171 to 150. [2018-11-23 03:49:34,229 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 150 states. [2018-11-23 03:49:34,230 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 150 states to 150 states and 199 transitions. [2018-11-23 03:49:34,230 INFO L78 Accepts]: Start accepts. Automaton has 150 states and 199 transitions. Word has length 410 [2018-11-23 03:49:34,230 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:34,230 INFO L480 AbstractCegarLoop]: Abstraction has 150 states and 199 transitions. [2018-11-23 03:49:34,230 INFO L481 AbstractCegarLoop]: Interpolant automaton has 13 states. [2018-11-23 03:49:34,230 INFO L276 IsEmpty]: Start isEmpty. Operand 150 states and 199 transitions. [2018-11-23 03:49:34,232 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 410 [2018-11-23 03:49:34,232 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:34,232 INFO L402 BasicCegarLoop]: trace histogram [30, 30, 29, 29, 24, 24, 15, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 10, 9, 6, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:34,232 INFO L423 AbstractCegarLoop]: === Iteration 16 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:34,233 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:34,233 INFO L82 PathProgramCache]: Analyzing trace with hash 1597015738, now seen corresponding path program 9 times [2018-11-23 03:49:34,233 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:34,233 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:34,233 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 03:49:34,234 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:34,234 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:34,256 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:34,468 INFO L134 CoverageAnalysis]: Checked inductivity of 4700 backedges. 301 proven. 957 refuted. 0 times theorem prover too weak. 3442 trivial. 0 not checked. [2018-11-23 03:49:34,468 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:34,468 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:34,468 INFO L184 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2018-11-23 03:49:34,468 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2018-11-23 03:49:34,468 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:34,468 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/z3 Starting monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 03:49:34,475 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2018-11-23 03:49:34,475 INFO L286 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder TERMS_WITH_SMALL_CONSTANTS_FIRST (IT: FPandBP) [2018-11-23 03:49:34,527 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2018-11-23 03:49:34,527 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 03:49:34,532 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 03:49:34,698 INFO L134 CoverageAnalysis]: Checked inductivity of 4700 backedges. 266 proven. 601 refuted. 0 times theorem prover too weak. 3833 trivial. 0 not checked. [2018-11-23 03:49:34,698 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 03:49:35,540 INFO L134 CoverageAnalysis]: Checked inductivity of 4700 backedges. 268 proven. 615 refuted. 0 times theorem prover too weak. 3817 trivial. 0 not checked. [2018-11-23 03:49:35,555 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2018-11-23 03:49:35,556 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 11, 15] total 27 [2018-11-23 03:49:35,556 INFO L249 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2018-11-23 03:49:35,556 INFO L459 AbstractCegarLoop]: Interpolant automaton has 21 states [2018-11-23 03:49:35,556 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2018-11-23 03:49:35,556 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=85, Invalid=617, Unknown=0, NotChecked=0, Total=702 [2018-11-23 03:49:35,557 INFO L87 Difference]: Start difference. First operand 150 states and 199 transitions. Second operand 21 states. [2018-11-23 03:49:36,185 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:36,185 INFO L93 Difference]: Finished difference Result 387 states and 631 transitions. [2018-11-23 03:49:36,185 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 36 states. [2018-11-23 03:49:36,185 INFO L78 Accepts]: Start accepts. Automaton has 21 states. Word has length 409 [2018-11-23 03:49:36,186 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:36,187 INFO L225 Difference]: With dead ends: 387 [2018-11-23 03:49:36,187 INFO L226 Difference]: Without dead ends: 253 [2018-11-23 03:49:36,189 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 861 GetRequests, 798 SyntacticMatches, 13 SemanticMatches, 50 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 570 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=422, Invalid=2230, Unknown=0, NotChecked=0, Total=2652 [2018-11-23 03:49:36,189 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 253 states. [2018-11-23 03:49:36,200 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 253 to 220. [2018-11-23 03:49:36,200 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 220 states. [2018-11-23 03:49:36,201 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 220 states to 220 states and 306 transitions. [2018-11-23 03:49:36,202 INFO L78 Accepts]: Start accepts. Automaton has 220 states and 306 transitions. Word has length 409 [2018-11-23 03:49:36,202 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:36,202 INFO L480 AbstractCegarLoop]: Abstraction has 220 states and 306 transitions. [2018-11-23 03:49:36,202 INFO L481 AbstractCegarLoop]: Interpolant automaton has 21 states. [2018-11-23 03:49:36,202 INFO L276 IsEmpty]: Start isEmpty. Operand 220 states and 306 transitions. [2018-11-23 03:49:36,204 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 409 [2018-11-23 03:49:36,204 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:36,205 INFO L402 BasicCegarLoop]: trace histogram [31, 31, 28, 28, 24, 23, 15, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 9, 9, 8, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:36,205 INFO L423 AbstractCegarLoop]: === Iteration 17 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:36,205 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:36,205 INFO L82 PathProgramCache]: Analyzing trace with hash -932305454, now seen corresponding path program 10 times [2018-11-23 03:49:36,205 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:36,206 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:36,206 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 03:49:36,206 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:36,206 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:36,219 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:36,378 INFO L134 CoverageAnalysis]: Checked inductivity of 4685 backedges. 586 proven. 377 refuted. 0 times theorem prover too weak. 3722 trivial. 0 not checked. [2018-11-23 03:49:36,379 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:36,379 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:36,379 INFO L184 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2018-11-23 03:49:36,379 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2018-11-23 03:49:36,379 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:36,379 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/z3 Starting monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 03:49:36,388 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:36,388 INFO L286 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2018-11-23 03:49:36,449 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:36,453 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 03:49:36,545 INFO L134 CoverageAnalysis]: Checked inductivity of 4685 backedges. 388 proven. 338 refuted. 0 times theorem prover too weak. 3959 trivial. 0 not checked. [2018-11-23 03:49:36,545 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 03:49:37,426 INFO L134 CoverageAnalysis]: Checked inductivity of 4685 backedges. 390 proven. 346 refuted. 0 times theorem prover too weak. 3949 trivial. 0 not checked. [2018-11-23 03:49:37,441 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2018-11-23 03:49:37,441 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 10, 13] total 24 [2018-11-23 03:49:37,441 INFO L249 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2018-11-23 03:49:37,442 INFO L459 AbstractCegarLoop]: Interpolant automaton has 19 states [2018-11-23 03:49:37,442 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2018-11-23 03:49:37,442 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=72, Invalid=480, Unknown=0, NotChecked=0, Total=552 [2018-11-23 03:49:37,443 INFO L87 Difference]: Start difference. First operand 220 states and 306 transitions. Second operand 19 states. [2018-11-23 03:49:37,996 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:37,996 INFO L93 Difference]: Finished difference Result 538 states and 831 transitions. [2018-11-23 03:49:37,997 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 31 states. [2018-11-23 03:49:37,997 INFO L78 Accepts]: Start accepts. Automaton has 19 states. Word has length 408 [2018-11-23 03:49:37,998 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:37,999 INFO L225 Difference]: With dead ends: 538 [2018-11-23 03:49:38,000 INFO L226 Difference]: Without dead ends: 339 [2018-11-23 03:49:38,002 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 851 GetRequests, 797 SyntacticMatches, 11 SemanticMatches, 43 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 387 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=326, Invalid=1654, Unknown=0, NotChecked=0, Total=1980 [2018-11-23 03:49:38,003 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 339 states. [2018-11-23 03:49:38,018 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 339 to 312. [2018-11-23 03:49:38,018 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 312 states. [2018-11-23 03:49:38,020 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 312 states to 312 states and 440 transitions. [2018-11-23 03:49:38,020 INFO L78 Accepts]: Start accepts. Automaton has 312 states and 440 transitions. Word has length 408 [2018-11-23 03:49:38,020 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:38,020 INFO L480 AbstractCegarLoop]: Abstraction has 312 states and 440 transitions. [2018-11-23 03:49:38,020 INFO L481 AbstractCegarLoop]: Interpolant automaton has 19 states. [2018-11-23 03:49:38,021 INFO L276 IsEmpty]: Start isEmpty. Operand 312 states and 440 transitions. [2018-11-23 03:49:38,023 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 614 [2018-11-23 03:49:38,023 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:38,024 INFO L402 BasicCegarLoop]: trace histogram [46, 46, 43, 43, 37, 35, 23, 23, 23, 23, 23, 23, 23, 21, 21, 21, 21, 21, 21, 21, 16, 12, 9, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:38,024 INFO L423 AbstractCegarLoop]: === Iteration 18 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:38,024 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:38,024 INFO L82 PathProgramCache]: Analyzing trace with hash -933541911, now seen corresponding path program 11 times [2018-11-23 03:49:38,024 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:38,025 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:38,025 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:38,025 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:38,025 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:38,045 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:38,238 INFO L134 CoverageAnalysis]: Checked inductivity of 10865 backedges. 992 proven. 511 refuted. 0 times theorem prover too weak. 9362 trivial. 0 not checked. [2018-11-23 03:49:38,238 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:38,238 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:38,238 INFO L184 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2018-11-23 03:49:38,238 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2018-11-23 03:49:38,238 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:38,238 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/z3 Starting monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 03:49:38,250 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2018-11-23 03:49:38,250 INFO L286 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2018-11-23 03:49:38,307 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 11 check-sat command(s) [2018-11-23 03:49:38,307 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 03:49:38,314 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 03:49:38,492 INFO L134 CoverageAnalysis]: Checked inductivity of 10865 backedges. 1666 proven. 86 refuted. 0 times theorem prover too weak. 9113 trivial. 0 not checked. [2018-11-23 03:49:38,492 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 03:49:39,674 INFO L134 CoverageAnalysis]: Checked inductivity of 10865 backedges. 1666 proven. 92 refuted. 0 times theorem prover too weak. 9107 trivial. 0 not checked. [2018-11-23 03:49:39,688 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2018-11-23 03:49:39,689 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 14, 17] total 26 [2018-11-23 03:49:39,689 INFO L249 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2018-11-23 03:49:39,689 INFO L459 AbstractCegarLoop]: Interpolant automaton has 19 states [2018-11-23 03:49:39,689 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2018-11-23 03:49:39,690 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=85, Invalid=565, Unknown=0, NotChecked=0, Total=650 [2018-11-23 03:49:39,690 INFO L87 Difference]: Start difference. First operand 312 states and 440 transitions. Second operand 19 states. [2018-11-23 03:49:40,104 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:40,105 INFO L93 Difference]: Finished difference Result 609 states and 884 transitions. [2018-11-23 03:49:40,105 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 22 states. [2018-11-23 03:49:40,105 INFO L78 Accepts]: Start accepts. Automaton has 19 states. Word has length 613 [2018-11-23 03:49:40,106 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:40,108 INFO L225 Difference]: With dead ends: 609 [2018-11-23 03:49:40,108 INFO L226 Difference]: Without dead ends: 338 [2018-11-23 03:49:40,110 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1253 GetRequests, 1199 SyntacticMatches, 15 SemanticMatches, 39 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 330 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=274, Invalid=1366, Unknown=0, NotChecked=0, Total=1640 [2018-11-23 03:49:40,111 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 338 states. [2018-11-23 03:49:40,137 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 338 to 305. [2018-11-23 03:49:40,137 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 305 states. [2018-11-23 03:49:40,139 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 305 states to 305 states and 411 transitions. [2018-11-23 03:49:40,139 INFO L78 Accepts]: Start accepts. Automaton has 305 states and 411 transitions. Word has length 613 [2018-11-23 03:49:40,139 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:40,140 INFO L480 AbstractCegarLoop]: Abstraction has 305 states and 411 transitions. [2018-11-23 03:49:40,140 INFO L481 AbstractCegarLoop]: Interpolant automaton has 19 states. [2018-11-23 03:49:40,140 INFO L276 IsEmpty]: Start isEmpty. Operand 305 states and 411 transitions. [2018-11-23 03:49:40,143 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 600 [2018-11-23 03:49:40,143 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:40,144 INFO L402 BasicCegarLoop]: trace histogram [44, 44, 43, 43, 35, 35, 22, 22, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 21, 21, 14, 13, 9, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:40,144 INFO L423 AbstractCegarLoop]: === Iteration 19 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:40,144 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:40,144 INFO L82 PathProgramCache]: Analyzing trace with hash 141228388, now seen corresponding path program 12 times [2018-11-23 03:49:40,144 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:40,145 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:40,145 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 03:49:40,145 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:40,145 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:40,171 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:40,426 INFO L134 CoverageAnalysis]: Checked inductivity of 10350 backedges. 1107 proven. 1012 refuted. 0 times theorem prover too weak. 8231 trivial. 0 not checked. [2018-11-23 03:49:40,426 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:40,426 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:40,426 INFO L184 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2018-11-23 03:49:40,426 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2018-11-23 03:49:40,427 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:40,427 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/z3 Starting monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 03:49:40,447 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2018-11-23 03:49:40,447 INFO L286 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder TERMS_WITH_SMALL_CONSTANTS_FIRST (IT: FPandBP) [2018-11-23 03:49:40,540 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2018-11-23 03:49:40,540 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 03:49:40,547 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 03:49:40,730 INFO L134 CoverageAnalysis]: Checked inductivity of 10350 backedges. 704 proven. 908 refuted. 0 times theorem prover too weak. 8738 trivial. 0 not checked. [2018-11-23 03:49:40,730 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 03:49:42,144 INFO L134 CoverageAnalysis]: Checked inductivity of 10350 backedges. 701 proven. 932 refuted. 0 times theorem prover too weak. 8717 trivial. 0 not checked. [2018-11-23 03:49:42,158 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2018-11-23 03:49:42,159 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 13, 18] total 35 [2018-11-23 03:49:42,159 INFO L249 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2018-11-23 03:49:42,159 INFO L459 AbstractCegarLoop]: Interpolant automaton has 27 states [2018-11-23 03:49:42,160 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 27 interpolants. [2018-11-23 03:49:42,160 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=155, Invalid=1035, Unknown=0, NotChecked=0, Total=1190 [2018-11-23 03:49:42,160 INFO L87 Difference]: Start difference. First operand 305 states and 411 transitions. Second operand 27 states. [2018-11-23 03:49:43,529 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:43,530 INFO L93 Difference]: Finished difference Result 655 states and 976 transitions. [2018-11-23 03:49:43,533 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 44 states. [2018-11-23 03:49:43,533 INFO L78 Accepts]: Start accepts. Automaton has 27 states. Word has length 599 [2018-11-23 03:49:43,534 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:43,536 INFO L225 Difference]: With dead ends: 655 [2018-11-23 03:49:43,536 INFO L226 Difference]: Without dead ends: 241 [2018-11-23 03:49:43,539 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1247 GetRequests, 1170 SyntacticMatches, 15 SemanticMatches, 62 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1101 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=613, Invalid=3419, Unknown=0, NotChecked=0, Total=4032 [2018-11-23 03:49:43,540 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 241 states. [2018-11-23 03:49:43,555 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 241 to 203. [2018-11-23 03:49:43,555 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 203 states. [2018-11-23 03:49:43,556 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 203 states to 203 states and 242 transitions. [2018-11-23 03:49:43,557 INFO L78 Accepts]: Start accepts. Automaton has 203 states and 242 transitions. Word has length 599 [2018-11-23 03:49:43,557 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:43,557 INFO L480 AbstractCegarLoop]: Abstraction has 203 states and 242 transitions. [2018-11-23 03:49:43,557 INFO L481 AbstractCegarLoop]: Interpolant automaton has 27 states. [2018-11-23 03:49:43,558 INFO L276 IsEmpty]: Start isEmpty. Operand 203 states and 242 transitions. [2018-11-23 03:49:43,561 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 532 [2018-11-23 03:49:43,561 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:43,562 INFO L402 BasicCegarLoop]: trace histogram [40, 40, 37, 37, 32, 30, 20, 20, 20, 20, 20, 20, 20, 18, 18, 18, 18, 18, 18, 18, 14, 10, 8, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:43,562 INFO L423 AbstractCegarLoop]: === Iteration 20 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:43,562 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:43,562 INFO L82 PathProgramCache]: Analyzing trace with hash 2006472669, now seen corresponding path program 13 times [2018-11-23 03:49:43,562 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:43,563 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:43,563 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 03:49:43,563 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:43,563 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:43,590 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:43,936 INFO L134 CoverageAnalysis]: Checked inductivity of 8087 backedges. 1080 proven. 406 refuted. 0 times theorem prover too weak. 6601 trivial. 0 not checked. [2018-11-23 03:49:43,937 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:43,937 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:43,937 INFO L184 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2018-11-23 03:49:43,937 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2018-11-23 03:49:43,937 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:43,937 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/z3 Starting monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 03:49:43,942 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:43,943 INFO L286 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2018-11-23 03:49:44,006 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:44,012 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 03:49:44,180 INFO L134 CoverageAnalysis]: Checked inductivity of 8087 backedges. 872 proven. 351 refuted. 0 times theorem prover too weak. 6864 trivial. 0 not checked. [2018-11-23 03:49:44,180 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 03:49:45,211 INFO L134 CoverageAnalysis]: Checked inductivity of 8087 backedges. 870 proven. 369 refuted. 0 times theorem prover too weak. 6848 trivial. 0 not checked. [2018-11-23 03:49:45,226 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2018-11-23 03:49:45,226 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 12, 16] total 28 [2018-11-23 03:49:45,227 INFO L249 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2018-11-23 03:49:45,227 INFO L459 AbstractCegarLoop]: Interpolant automaton has 21 states [2018-11-23 03:49:45,227 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2018-11-23 03:49:45,227 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=109, Invalid=647, Unknown=0, NotChecked=0, Total=756 [2018-11-23 03:49:45,227 INFO L87 Difference]: Start difference. First operand 203 states and 242 transitions. Second operand 21 states. [2018-11-23 03:49:45,637 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:45,637 INFO L93 Difference]: Finished difference Result 359 states and 434 transitions. [2018-11-23 03:49:45,637 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 27 states. [2018-11-23 03:49:45,637 INFO L78 Accepts]: Start accepts. Automaton has 21 states. Word has length 531 [2018-11-23 03:49:45,638 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:45,639 INFO L225 Difference]: With dead ends: 359 [2018-11-23 03:49:45,639 INFO L226 Difference]: Without dead ends: 202 [2018-11-23 03:49:45,640 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1096 GetRequests, 1038 SyntacticMatches, 14 SemanticMatches, 44 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 449 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=351, Invalid=1719, Unknown=0, NotChecked=0, Total=2070 [2018-11-23 03:49:45,640 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 202 states. [2018-11-23 03:49:45,652 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 202 to 189. [2018-11-23 03:49:45,652 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 189 states. [2018-11-23 03:49:45,653 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 189 states to 189 states and 218 transitions. [2018-11-23 03:49:45,653 INFO L78 Accepts]: Start accepts. Automaton has 189 states and 218 transitions. Word has length 531 [2018-11-23 03:49:45,654 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:45,654 INFO L480 AbstractCegarLoop]: Abstraction has 189 states and 218 transitions. [2018-11-23 03:49:45,654 INFO L481 AbstractCegarLoop]: Interpolant automaton has 21 states. [2018-11-23 03:49:45,654 INFO L276 IsEmpty]: Start isEmpty. Operand 189 states and 218 transitions. [2018-11-23 03:49:45,656 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 505 [2018-11-23 03:49:45,656 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:45,656 INFO L402 BasicCegarLoop]: trace histogram [38, 38, 35, 35, 30, 29, 19, 19, 19, 19, 19, 19, 19, 17, 17, 17, 17, 17, 17, 17, 13, 10, 8, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:45,657 INFO L423 AbstractCegarLoop]: === Iteration 21 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:45,657 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:45,657 INFO L82 PathProgramCache]: Analyzing trace with hash -1638954211, now seen corresponding path program 14 times [2018-11-23 03:49:45,657 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:45,657 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:45,658 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 03:49:45,658 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:45,658 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:45,678 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 03:49:45,898 INFO L134 CoverageAnalysis]: Checked inductivity of 7261 backedges. 1313 proven. 334 refuted. 0 times theorem prover too weak. 5614 trivial. 0 not checked. [2018-11-23 03:49:45,898 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:45,898 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2018-11-23 03:49:45,898 INFO L184 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2018-11-23 03:49:45,898 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2018-11-23 03:49:45,898 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 03:49:45,898 INFO L192 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/z3 Starting monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 03:49:45,905 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2018-11-23 03:49:45,905 INFO L286 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2018-11-23 03:49:45,951 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 14 check-sat command(s) [2018-11-23 03:49:45,951 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 03:49:45,954 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 03:49:46,061 INFO L134 CoverageAnalysis]: Checked inductivity of 7261 backedges. 1201 proven. 210 refuted. 0 times theorem prover too weak. 5850 trivial. 0 not checked. [2018-11-23 03:49:46,061 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 03:49:47,083 INFO L134 CoverageAnalysis]: Checked inductivity of 7261 backedges. 1203 proven. 214 refuted. 0 times theorem prover too weak. 5844 trivial. 0 not checked. [2018-11-23 03:49:47,098 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2018-11-23 03:49:47,098 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 14, 17] total 29 [2018-11-23 03:49:47,099 INFO L249 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2018-11-23 03:49:47,099 INFO L459 AbstractCegarLoop]: Interpolant automaton has 22 states [2018-11-23 03:49:47,099 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 22 interpolants. [2018-11-23 03:49:47,099 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=97, Invalid=715, Unknown=0, NotChecked=0, Total=812 [2018-11-23 03:49:47,100 INFO L87 Difference]: Start difference. First operand 189 states and 218 transitions. Second operand 22 states. [2018-11-23 03:49:47,742 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 03:49:47,742 INFO L93 Difference]: Finished difference Result 265 states and 311 transitions. [2018-11-23 03:49:47,742 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 38 states. [2018-11-23 03:49:47,742 INFO L78 Accepts]: Start accepts. Automaton has 22 states. Word has length 504 [2018-11-23 03:49:47,743 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 03:49:47,743 INFO L225 Difference]: With dead ends: 265 [2018-11-23 03:49:47,743 INFO L226 Difference]: Without dead ends: 201 [2018-11-23 03:49:47,744 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1058 GetRequests, 986 SyntacticMatches, 15 SemanticMatches, 57 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 805 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=536, Invalid=2886, Unknown=0, NotChecked=0, Total=3422 [2018-11-23 03:49:47,744 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 201 states. [2018-11-23 03:49:47,752 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 201 to 178. [2018-11-23 03:49:47,752 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 178 states. [2018-11-23 03:49:47,752 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 178 states to 178 states and 198 transitions. [2018-11-23 03:49:47,753 INFO L78 Accepts]: Start accepts. Automaton has 178 states and 198 transitions. Word has length 504 [2018-11-23 03:49:47,753 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 03:49:47,753 INFO L480 AbstractCegarLoop]: Abstraction has 178 states and 198 transitions. [2018-11-23 03:49:47,753 INFO L481 AbstractCegarLoop]: Interpolant automaton has 22 states. [2018-11-23 03:49:47,753 INFO L276 IsEmpty]: Start isEmpty. Operand 178 states and 198 transitions. [2018-11-23 03:49:47,755 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 464 [2018-11-23 03:49:47,755 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 03:49:47,755 INFO L402 BasicCegarLoop]: trace histogram [34, 34, 33, 33, 27, 27, 17, 17, 17, 17, 17, 17, 17, 16, 16, 16, 16, 16, 16, 16, 11, 10, 7, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 03:49:47,755 INFO L423 AbstractCegarLoop]: === Iteration 22 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 03:49:47,755 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 03:49:47,755 INFO L82 PathProgramCache]: Analyzing trace with hash 1326629730, now seen corresponding path program 15 times [2018-11-23 03:49:47,756 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2018-11-23 03:49:47,756 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:47,756 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 03:49:47,756 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 03:49:47,756 INFO L286 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2018-11-23 03:49:47,772 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 03:49:47,788 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 03:49:47,809 INFO L469 BasicCegarLoop]: Counterexample might be feasible ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder.RCFGBacktranslator [?] CALL call ULTIMATE.init(); [?] assume true; [?] RET #47#return; [?] CALL call #t~ret5 := main(); [?] ~x~0 := 8; VAL [main_~x~0=8] [?] CALL call #t~ret4 := fibo1(~x~0); VAL [|fibo1_#in~n|=8] [?] ~n := #in~n; VAL [fibo1_~n=8, |fibo1_#in~n|=8] [?] assume !(~n < 1); VAL [fibo1_~n=8, |fibo1_#in~n|=8] [?] assume !(1 == ~n); VAL [fibo1_~n=8, |fibo1_#in~n|=8] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=7] [?] ~n := #in~n; VAL [fibo2_~n=7, |fibo2_#in~n|=7] [?] assume !(~n < 1); VAL [fibo2_~n=7, |fibo2_#in~n|=7] [?] assume !(1 == ~n); VAL [fibo2_~n=7, |fibo2_#in~n|=7] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=6] [?] ~n := #in~n; VAL [fibo1_~n=6, |fibo1_#in~n|=6] [?] assume !(~n < 1); VAL [fibo1_~n=6, |fibo1_#in~n|=6] [?] assume !(1 == ~n); VAL [fibo1_~n=6, |fibo1_#in~n|=6] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=5] [?] ~n := #in~n; VAL [fibo2_~n=5, |fibo2_#in~n|=5] [?] assume !(~n < 1); VAL [fibo2_~n=5, |fibo2_#in~n|=5] [?] assume !(1 == ~n); VAL [fibo2_~n=5, |fibo2_#in~n|=5] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=4] [?] ~n := #in~n; VAL [fibo1_~n=4, |fibo1_#in~n|=4] [?] assume !(~n < 1); VAL [fibo1_~n=4, |fibo1_#in~n|=4] [?] assume !(1 == ~n); VAL [fibo1_~n=4, |fibo1_#in~n|=4] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=3] [?] ~n := #in~n; VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] assume !(~n < 1); VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] assume !(1 == ~n); VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=2] [?] ~n := #in~n; VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(~n < 1); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=0] [?] ~n := #in~n; VAL [fibo2_~n=0, |fibo2_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] assume true; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] RET #59#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=0] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #55#return; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=1] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#res|=2] [?] assume true; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#res|=2] [?] RET #57#return; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#t~ret0|=2] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#t~ret0|=2] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=2] [?] ~n := #in~n; VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(~n < 1); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=0] [?] ~n := #in~n; VAL [fibo1_~n=0, |fibo1_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] assume true; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] RET #55#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=0] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] RET #59#return; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#t~ret0|=2, |fibo1_#t~ret1|=1] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#res|=3] [?] assume true; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#res|=3] [?] RET #53#return; VAL [fibo2_~n=5, |fibo2_#in~n|=5, |fibo2_#t~ret2|=3] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=5, |fibo2_#in~n|=5, |fibo2_#t~ret2|=3] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=3] [?] ~n := #in~n; VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] assume !(~n < 1); VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] assume !(1 == ~n); VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=2] [?] ~n := #in~n; VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(~n < 1); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=0] [?] ~n := #in~n; VAL [fibo1_~n=0, |fibo1_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] assume true; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] RET #55#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=0] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #59#return; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=1] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#res|=2] [?] assume true; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#res|=2] [?] RET #55#return; VAL [fibo2_~n=5, |fibo2_#in~n|=5, |fibo2_#t~ret2|=3, |fibo2_#t~ret3|=2] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=5, |fibo2_#in~n|=5, |fibo2_#res|=5] [?] assume true; VAL [fibo2_~n=5, |fibo2_#in~n|=5, |fibo2_#res|=5] [?] RET #57#return; VAL [fibo1_~n=6, |fibo1_#in~n|=6, |fibo1_#t~ret0|=5] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=6, |fibo1_#in~n|=6, |fibo1_#t~ret0|=5] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=4] [?] ~n := #in~n; VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] assume !(~n < 1); VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] assume !(1 == ~n); VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=3] [?] ~n := #in~n; VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] assume !(~n < 1); VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] assume !(1 == ~n); VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=2] [?] ~n := #in~n; VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(~n < 1); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=0] [?] ~n := #in~n; VAL [fibo1_~n=0, |fibo1_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] assume true; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] RET #55#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=0] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #59#return; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=1] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#res|=2] [?] assume true; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#res|=2] [?] RET #53#return; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=2] [?] ~n := #in~n; VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(~n < 1); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=0] [?] ~n := #in~n; VAL [fibo2_~n=0, |fibo2_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] assume true; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] RET #59#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=0] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] RET #55#return; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2, |fibo2_#t~ret3|=1] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#res|=3] [?] assume true; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#res|=3] [?] RET #59#return; VAL [fibo1_~n=6, |fibo1_#in~n|=6, |fibo1_#t~ret0|=5, |fibo1_#t~ret1|=3] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=6, |fibo1_#in~n|=6, |fibo1_#res|=8] [?] assume true; VAL [fibo1_~n=6, |fibo1_#in~n|=6, |fibo1_#res|=8] [?] RET #53#return; VAL [fibo2_~n=7, |fibo2_#in~n|=7, |fibo2_#t~ret2|=8] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=7, |fibo2_#in~n|=7, |fibo2_#t~ret2|=8] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=5] [?] ~n := #in~n; VAL [fibo1_~n=5, |fibo1_#in~n|=5] [?] assume !(~n < 1); VAL [fibo1_~n=5, |fibo1_#in~n|=5] [?] assume !(1 == ~n); VAL [fibo1_~n=5, |fibo1_#in~n|=5] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=4] [?] ~n := #in~n; VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] assume !(~n < 1); VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] assume !(1 == ~n); VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=3] [?] ~n := #in~n; VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] assume !(~n < 1); VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] assume !(1 == ~n); VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=2] [?] ~n := #in~n; VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(~n < 1); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=0] [?] ~n := #in~n; VAL [fibo1_~n=0, |fibo1_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] assume true; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] RET #55#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=0] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #59#return; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=1] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#res|=2] [?] assume true; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#res|=2] [?] RET #53#return; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=2] [?] ~n := #in~n; VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(~n < 1); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=0] [?] ~n := #in~n; VAL [fibo2_~n=0, |fibo2_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] assume true; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] RET #59#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=0] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] RET #55#return; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2, |fibo2_#t~ret3|=1] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#res|=3] [?] assume true; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#res|=3] [?] RET #57#return; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#t~ret0|=3] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#t~ret0|=3] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=3] [?] ~n := #in~n; VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] assume !(~n < 1); VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] assume !(1 == ~n); VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=2] [?] ~n := #in~n; VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(~n < 1); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=0] [?] ~n := #in~n; VAL [fibo2_~n=0, |fibo2_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] assume true; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] RET #59#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=0] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #55#return; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=1] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#res|=2] [?] assume true; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#res|=2] [?] RET #59#return; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#t~ret0|=3, |fibo1_#t~ret1|=2] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#res|=5] [?] assume true; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#res|=5] [?] RET #55#return; VAL [fibo2_~n=7, |fibo2_#in~n|=7, |fibo2_#t~ret2|=8, |fibo2_#t~ret3|=5] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=7, |fibo2_#in~n|=7, |fibo2_#res|=13] [?] assume true; VAL [fibo2_~n=7, |fibo2_#in~n|=7, |fibo2_#res|=13] [?] RET #57#return; VAL [fibo1_~n=8, |fibo1_#in~n|=8, |fibo1_#t~ret0|=13] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=8, |fibo1_#in~n|=8, |fibo1_#t~ret0|=13] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=6] [?] ~n := #in~n; VAL [fibo2_~n=6, |fibo2_#in~n|=6] [?] assume !(~n < 1); VAL [fibo2_~n=6, |fibo2_#in~n|=6] [?] assume !(1 == ~n); VAL [fibo2_~n=6, |fibo2_#in~n|=6] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=5] [?] ~n := #in~n; VAL [fibo1_~n=5, |fibo1_#in~n|=5] [?] assume !(~n < 1); VAL [fibo1_~n=5, |fibo1_#in~n|=5] [?] assume !(1 == ~n); VAL [fibo1_~n=5, |fibo1_#in~n|=5] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=4] [?] ~n := #in~n; VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] assume !(~n < 1); VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] assume !(1 == ~n); VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=3] [?] ~n := #in~n; VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] assume !(~n < 1); VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] assume !(1 == ~n); VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=2] [?] ~n := #in~n; VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(~n < 1); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=0] [?] ~n := #in~n; VAL [fibo1_~n=0, |fibo1_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] assume true; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] RET #55#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=0] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #59#return; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=1] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#res|=2] [?] assume true; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#res|=2] [?] RET #53#return; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=2] [?] ~n := #in~n; VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(~n < 1); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=0] [?] ~n := #in~n; VAL [fibo2_~n=0, |fibo2_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] assume true; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] RET #59#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=0] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] RET #55#return; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2, |fibo2_#t~ret3|=1] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#res|=3] [?] assume true; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#res|=3] [?] RET #57#return; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#t~ret0|=3] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#t~ret0|=3] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=3] [?] ~n := #in~n; VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] assume !(~n < 1); VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] assume !(1 == ~n); VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=2] [?] ~n := #in~n; VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(~n < 1); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=0] [?] ~n := #in~n; VAL [fibo2_~n=0, |fibo2_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] assume true; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] RET #59#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=0] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #55#return; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=1] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#res|=2] [?] assume true; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#res|=2] [?] RET #59#return; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#t~ret0|=3, |fibo1_#t~ret1|=2] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#res|=5] [?] assume true; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#res|=5] [?] RET #53#return; VAL [fibo2_~n=6, |fibo2_#in~n|=6, |fibo2_#t~ret2|=5] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=6, |fibo2_#in~n|=6, |fibo2_#t~ret2|=5] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=4] [?] ~n := #in~n; VAL [fibo1_~n=4, |fibo1_#in~n|=4] [?] assume !(~n < 1); VAL [fibo1_~n=4, |fibo1_#in~n|=4] [?] assume !(1 == ~n); VAL [fibo1_~n=4, |fibo1_#in~n|=4] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=3] [?] ~n := #in~n; VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] assume !(~n < 1); VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] assume !(1 == ~n); VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=2] [?] ~n := #in~n; VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(~n < 1); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=0] [?] ~n := #in~n; VAL [fibo2_~n=0, |fibo2_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] assume true; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] RET #59#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=0] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #55#return; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=1] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#res|=2] [?] assume true; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#res|=2] [?] RET #57#return; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#t~ret0|=2] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#t~ret0|=2] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=2] [?] ~n := #in~n; VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(~n < 1); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=0] [?] ~n := #in~n; VAL [fibo1_~n=0, |fibo1_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] assume true; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] RET #55#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=0] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] RET #59#return; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#t~ret0|=2, |fibo1_#t~ret1|=1] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#res|=3] [?] assume true; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#res|=3] [?] RET #55#return; VAL [fibo2_~n=6, |fibo2_#in~n|=6, |fibo2_#t~ret2|=5, |fibo2_#t~ret3|=3] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=6, |fibo2_#in~n|=6, |fibo2_#res|=8] [?] assume true; VAL [fibo2_~n=6, |fibo2_#in~n|=6, |fibo2_#res|=8] [?] RET #59#return; VAL [fibo1_~n=8, |fibo1_#in~n|=8, |fibo1_#t~ret0|=13, |fibo1_#t~ret1|=8] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=8, |fibo1_#in~n|=8, |fibo1_#res|=21] [?] assume true; VAL [fibo1_~n=8, |fibo1_#in~n|=8, |fibo1_#res|=21] [?] RET #51#return; VAL [main_~x~0=8, |main_#t~ret4|=21] [?] assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~result~0 := #t~ret4;havoc #t~ret4; VAL [main_~result~0=21, main_~x~0=8] [?] assume 21 == ~result~0; VAL [main_~result~0=21, main_~x~0=8] [?] assume !false; VAL [main_~result~0=21, main_~x~0=8] [?] CALL call ULTIMATE.init(); [?] ensures true; [?] RET call ULTIMATE.init(); [?] CALL call #t~ret5 := main(); [L36] ~x~0 := 8; VAL [~x~0=8] [L37] CALL call #t~ret4 := fibo1(~x~0); VAL [#in~n=8] [L7-L15] ~n := #in~n; VAL [#in~n=8, ~n=8] [L8-L14] assume !(~n < 1); VAL [#in~n=8, ~n=8] [L10-L14] assume !(1 == ~n); VAL [#in~n=8, ~n=8] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=7] [L17-L25] ~n := #in~n; VAL [#in~n=7, ~n=7] [L18-L24] assume !(~n < 1); VAL [#in~n=7, ~n=7] [L20-L24] assume !(1 == ~n); VAL [#in~n=7, ~n=7] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6] [L7-L15] ~n := #in~n; VAL [#in~n=6, ~n=6] [L8-L14] assume !(~n < 1); VAL [#in~n=6, ~n=6] [L10-L14] assume !(1 == ~n); VAL [#in~n=6, ~n=6] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5] [L17-L25] ~n := #in~n; VAL [#in~n=5, ~n=5] [L18-L24] assume !(~n < 1); VAL [#in~n=5, ~n=5] [L20-L24] assume !(1 == ~n); VAL [#in~n=5, ~n=5] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8-L14] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L10-L14] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18-L24] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L20-L24] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L5] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L4] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8-L14] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L10-L14] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L4] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5, #t~ret2=3, #t~ret3=2, ~n=5] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=5, #res=5, ~n=5] [L5] ensures true; VAL [#in~n=5, #res=5, ~n=5] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18-L24] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L20-L24] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8-L14] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L10-L14] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L4] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L5] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6, #t~ret0=5, #t~ret1=3, ~n=6] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=6, #res=8, ~n=6] [L4] ensures true; VAL [#in~n=6, #res=8, ~n=6] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8-L14] assume !(~n < 1); VAL [#in~n=5, ~n=5] [L10-L14] assume !(1 == ~n); VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18-L24] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L20-L24] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8-L14] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L10-L14] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L4] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L5] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18-L24] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L20-L24] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L5] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L4] ensures true; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=7, #t~ret2=8, #t~ret3=5, ~n=7] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=7, #res=13, ~n=7] [L5] ensures true; VAL [#in~n=7, #res=13, ~n=7] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6] [L17-L25] ~n := #in~n; VAL [#in~n=6, ~n=6] [L18-L24] assume !(~n < 1); VAL [#in~n=6, ~n=6] [L20-L24] assume !(1 == ~n); VAL [#in~n=6, ~n=6] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8-L14] assume !(~n < 1); VAL [#in~n=5, ~n=5] [L10-L14] assume !(1 == ~n); VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18-L24] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L20-L24] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8-L14] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L10-L14] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L4] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L5] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18-L24] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L20-L24] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L5] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L4] ensures true; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8-L14] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L10-L14] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18-L24] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L20-L24] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L5] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L4] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=6, #t~ret2=5, #t~ret3=3, ~n=6] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=6, #res=8, ~n=6] [L5] ensures true; VAL [#in~n=6, #res=8, ~n=6] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=8, #t~ret0=13, #t~ret1=8, ~n=8] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=8, #res=21, ~n=8] [L4] ensures true; VAL [#in~n=8, #res=21, ~n=8] [L37] RET call #t~ret4 := fibo1(~x~0); VAL [#t~ret4=21, ~x~0=8] [L37] assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647; [L37] ~result~0 := #t~ret4; [L37] havoc #t~ret4; VAL [~result~0=21, ~x~0=8] [L38-L40] assume 21 == ~result~0; VAL [~result~0=21, ~x~0=8] [L39] assert false; VAL [~result~0=21, ~x~0=8] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.preprocessor.BoogiePreprocessorBacktranslator [?] CALL call ULTIMATE.init(); [?] ensures true; [?] RET call ULTIMATE.init(); [?] CALL call #t~ret5 := main(); [L36] ~x~0 := 8; VAL [~x~0=8] [L37] CALL call #t~ret4 := fibo1(~x~0); VAL [#in~n=8] [L7-L15] ~n := #in~n; VAL [#in~n=8, ~n=8] [L8-L14] assume !(~n < 1); VAL [#in~n=8, ~n=8] [L10-L14] assume !(1 == ~n); VAL [#in~n=8, ~n=8] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=7] [L17-L25] ~n := #in~n; VAL [#in~n=7, ~n=7] [L18-L24] assume !(~n < 1); VAL [#in~n=7, ~n=7] [L20-L24] assume !(1 == ~n); VAL [#in~n=7, ~n=7] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6] [L7-L15] ~n := #in~n; VAL [#in~n=6, ~n=6] [L8-L14] assume !(~n < 1); VAL [#in~n=6, ~n=6] [L10-L14] assume !(1 == ~n); VAL [#in~n=6, ~n=6] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5] [L17-L25] ~n := #in~n; VAL [#in~n=5, ~n=5] [L18-L24] assume !(~n < 1); VAL [#in~n=5, ~n=5] [L20-L24] assume !(1 == ~n); VAL [#in~n=5, ~n=5] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8-L14] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L10-L14] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18-L24] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L20-L24] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L5] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L4] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8-L14] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L10-L14] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L4] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5, #t~ret2=3, #t~ret3=2, ~n=5] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=5, #res=5, ~n=5] [L5] ensures true; VAL [#in~n=5, #res=5, ~n=5] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18-L24] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L20-L24] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8-L14] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L10-L14] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L4] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L5] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6, #t~ret0=5, #t~ret1=3, ~n=6] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=6, #res=8, ~n=6] [L4] ensures true; VAL [#in~n=6, #res=8, ~n=6] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8-L14] assume !(~n < 1); VAL [#in~n=5, ~n=5] [L10-L14] assume !(1 == ~n); VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18-L24] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L20-L24] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8-L14] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L10-L14] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L4] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L5] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18-L24] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L20-L24] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L5] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L4] ensures true; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=7, #t~ret2=8, #t~ret3=5, ~n=7] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=7, #res=13, ~n=7] [L5] ensures true; VAL [#in~n=7, #res=13, ~n=7] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6] [L17-L25] ~n := #in~n; VAL [#in~n=6, ~n=6] [L18-L24] assume !(~n < 1); VAL [#in~n=6, ~n=6] [L20-L24] assume !(1 == ~n); VAL [#in~n=6, ~n=6] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8-L14] assume !(~n < 1); VAL [#in~n=5, ~n=5] [L10-L14] assume !(1 == ~n); VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18-L24] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L20-L24] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8-L14] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L10-L14] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L4] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L5] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18-L24] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L20-L24] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L5] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L4] ensures true; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8-L14] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L10-L14] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18-L24] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L20-L24] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L5] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L4] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=6, #t~ret2=5, #t~ret3=3, ~n=6] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=6, #res=8, ~n=6] [L5] ensures true; VAL [#in~n=6, #res=8, ~n=6] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=8, #t~ret0=13, #t~ret1=8, ~n=8] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=8, #res=21, ~n=8] [L4] ensures true; VAL [#in~n=8, #res=21, ~n=8] [L37] RET call #t~ret4 := fibo1(~x~0); VAL [#t~ret4=21, ~x~0=8] [L37] assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647; [L37] ~result~0 := #t~ret4; [L37] havoc #t~ret4; VAL [~result~0=21, ~x~0=8] [L38-L40] assume 21 == ~result~0; VAL [~result~0=21, ~x~0=8] [L39] assert false; VAL [~result~0=21, ~x~0=8] [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret5 := main(); [L36] ~x~0 := 8; VAL [~x~0=8] [L37] CALL call #t~ret4 := fibo1(~x~0); VAL [#in~n=8] [L7-L15] ~n := #in~n; VAL [#in~n=8, ~n=8] [L8] COND FALSE !(~n < 1) VAL [#in~n=8, ~n=8] [L10] COND FALSE !(1 == ~n) VAL [#in~n=8, ~n=8] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=7] [L17-L25] ~n := #in~n; VAL [#in~n=7, ~n=7] [L18] COND FALSE !(~n < 1) VAL [#in~n=7, ~n=7] [L20] COND FALSE !(1 == ~n) VAL [#in~n=7, ~n=7] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6] [L7-L15] ~n := #in~n; VAL [#in~n=6, ~n=6] [L8] COND FALSE !(~n < 1) VAL [#in~n=6, ~n=6] [L10] COND FALSE !(1 == ~n) VAL [#in~n=6, ~n=6] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5] [L17-L25] ~n := #in~n; VAL [#in~n=5, ~n=5] [L18] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L20] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L10] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5, #t~ret2=3, #t~ret3=2, ~n=5] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=5, #res=5, ~n=5] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6, #t~ret0=5, #t~ret1=3, ~n=6] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=6, #res=8, ~n=6] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L10] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=7, #t~ret2=8, #t~ret3=5, ~n=7] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=7, #res=13, ~n=7] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6] [L17-L25] ~n := #in~n; VAL [#in~n=6, ~n=6] [L18] COND FALSE !(~n < 1) VAL [#in~n=6, ~n=6] [L20] COND FALSE !(1 == ~n) VAL [#in~n=6, ~n=6] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L10] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L10] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=6, #t~ret2=5, #t~ret3=3, ~n=6] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=6, #res=8, ~n=6] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=8, #t~ret0=13, #t~ret1=8, ~n=8] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=8, #res=21, ~n=8] [L37] RET call #t~ret4 := fibo1(~x~0); VAL [#t~ret4=21, ~x~0=8] [L37] assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647; [L37] ~result~0 := #t~ret4; [L37] havoc #t~ret4; VAL [~result~0=21, ~x~0=8] [L38] COND TRUE 21 == ~result~0 VAL [~result~0=21, ~x~0=8] [L39] assert false; VAL [~result~0=21, ~x~0=8] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret5 := main(); [L36] ~x~0 := 8; VAL [~x~0=8] [L37] CALL call #t~ret4 := fibo1(~x~0); VAL [#in~n=8] [L7-L15] ~n := #in~n; VAL [#in~n=8, ~n=8] [L8] COND FALSE !(~n < 1) VAL [#in~n=8, ~n=8] [L10] COND FALSE !(1 == ~n) VAL [#in~n=8, ~n=8] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=7] [L17-L25] ~n := #in~n; VAL [#in~n=7, ~n=7] [L18] COND FALSE !(~n < 1) VAL [#in~n=7, ~n=7] [L20] COND FALSE !(1 == ~n) VAL [#in~n=7, ~n=7] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6] [L7-L15] ~n := #in~n; VAL [#in~n=6, ~n=6] [L8] COND FALSE !(~n < 1) VAL [#in~n=6, ~n=6] [L10] COND FALSE !(1 == ~n) VAL [#in~n=6, ~n=6] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5] [L17-L25] ~n := #in~n; VAL [#in~n=5, ~n=5] [L18] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L20] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L10] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5, #t~ret2=3, #t~ret3=2, ~n=5] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=5, #res=5, ~n=5] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6, #t~ret0=5, #t~ret1=3, ~n=6] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=6, #res=8, ~n=6] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L10] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=7, #t~ret2=8, #t~ret3=5, ~n=7] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=7, #res=13, ~n=7] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6] [L17-L25] ~n := #in~n; VAL [#in~n=6, ~n=6] [L18] COND FALSE !(~n < 1) VAL [#in~n=6, ~n=6] [L20] COND FALSE !(1 == ~n) VAL [#in~n=6, ~n=6] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L10] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L10] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=6, #t~ret2=5, #t~ret3=3, ~n=6] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=6, #res=8, ~n=6] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=8, #t~ret0=13, #t~ret1=8, ~n=8] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=8, #res=21, ~n=8] [L37] RET call #t~ret4 := fibo1(~x~0); VAL [#t~ret4=21, ~x~0=8] [L37] assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647; [L37] ~result~0 := #t~ret4; [L37] havoc #t~ret4; VAL [~result~0=21, ~x~0=8] [L38] COND TRUE 21 == ~result~0 VAL [~result~0=21, ~x~0=8] [L39] assert false; VAL [~result~0=21, ~x~0=8] [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret5 := main(); [L36] ~x~0 := 8; VAL [~x~0=8] [L37] CALL call #t~ret4 := fibo1(~x~0); VAL [#in~n=8] [L7-L15] ~n := #in~n; VAL [#in~n=8, ~n=8] [L8] COND FALSE !(~n < 1) VAL [#in~n=8, ~n=8] [L10] COND FALSE !(1 == ~n) VAL [#in~n=8, ~n=8] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=7] [L17-L25] ~n := #in~n; VAL [#in~n=7, ~n=7] [L18] COND FALSE !(~n < 1) VAL [#in~n=7, ~n=7] [L20] COND FALSE !(1 == ~n) VAL [#in~n=7, ~n=7] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6] [L7-L15] ~n := #in~n; VAL [#in~n=6, ~n=6] [L8] COND FALSE !(~n < 1) VAL [#in~n=6, ~n=6] [L10] COND FALSE !(1 == ~n) VAL [#in~n=6, ~n=6] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5] [L17-L25] ~n := #in~n; VAL [#in~n=5, ~n=5] [L18] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L20] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L10] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5, #t~ret2=3, #t~ret3=2, ~n=5] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=5, #res=5, ~n=5] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6, #t~ret0=5, #t~ret1=3, ~n=6] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=6, #res=8, ~n=6] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L10] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=7, #t~ret2=8, #t~ret3=5, ~n=7] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=7, #res=13, ~n=7] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6] [L17-L25] ~n := #in~n; VAL [#in~n=6, ~n=6] [L18] COND FALSE !(~n < 1) VAL [#in~n=6, ~n=6] [L20] COND FALSE !(1 == ~n) VAL [#in~n=6, ~n=6] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L10] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L10] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=6, #t~ret2=5, #t~ret3=3, ~n=6] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=6, #res=8, ~n=6] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=8, #t~ret0=13, #t~ret1=8, ~n=8] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=8, #res=21, ~n=8] [L37] RET call #t~ret4 := fibo1(~x~0); VAL [#t~ret4=21, ~x~0=8] [L37] assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647; [L37] ~result~0 := #t~ret4; [L37] havoc #t~ret4; VAL [~result~0=21, ~x~0=8] [L38] COND TRUE 21 == ~result~0 VAL [~result~0=21, ~x~0=8] [L39] assert false; VAL [~result~0=21, ~x~0=8] ----- ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.CACSL2BoogieBacktranslator [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret5 := main(); [L36] ~x~0 := 8; VAL [~x~0=8] [L37] CALL call #t~ret4 := fibo1(~x~0); VAL [#in~n=8] [L7-L15] ~n := #in~n; VAL [#in~n=8, ~n=8] [L8] COND FALSE !(~n < 1) VAL [#in~n=8, ~n=8] [L10] COND FALSE !(1 == ~n) VAL [#in~n=8, ~n=8] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=7] [L17-L25] ~n := #in~n; VAL [#in~n=7, ~n=7] [L18] COND FALSE !(~n < 1) VAL [#in~n=7, ~n=7] [L20] COND FALSE !(1 == ~n) VAL [#in~n=7, ~n=7] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6] [L7-L15] ~n := #in~n; VAL [#in~n=6, ~n=6] [L8] COND FALSE !(~n < 1) VAL [#in~n=6, ~n=6] [L10] COND FALSE !(1 == ~n) VAL [#in~n=6, ~n=6] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5] [L17-L25] ~n := #in~n; VAL [#in~n=5, ~n=5] [L18] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L20] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L10] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5, #t~ret2=3, #t~ret3=2, ~n=5] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=5, #res=5, ~n=5] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6, #t~ret0=5, #t~ret1=3, ~n=6] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=6, #res=8, ~n=6] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L10] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=7, #t~ret2=8, #t~ret3=5, ~n=7] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=7, #res=13, ~n=7] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6] [L17-L25] ~n := #in~n; VAL [#in~n=6, ~n=6] [L18] COND FALSE !(~n < 1) VAL [#in~n=6, ~n=6] [L20] COND FALSE !(1 == ~n) VAL [#in~n=6, ~n=6] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L10] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L10] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=6, #t~ret2=5, #t~ret3=3, ~n=6] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=6, #res=8, ~n=6] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=8, #t~ret0=13, #t~ret1=8, ~n=8] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=8, #res=21, ~n=8] [L37] RET call #t~ret4 := fibo1(~x~0); VAL [#t~ret4=21, ~x~0=8] [L37] assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647; [L37] ~result~0 := #t~ret4; [L37] havoc #t~ret4; VAL [~result~0=21, ~x~0=8] [L38] COND TRUE 21 == ~result~0 VAL [~result~0=21, ~x~0=8] [L39] assert false; VAL [~result~0=21, ~x~0=8] [L36] int x = 8; VAL [x=8] [L37] CALL, EXPR fibo1(x) VAL [\old(n)=8] [L8] COND FALSE !(n < 1) VAL [\old(n)=8, n=8] [L10] COND FALSE !(n == 1) VAL [\old(n)=8, n=8] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=7] [L18] COND FALSE !(n < 1) VAL [\old(n)=7, n=7] [L20] COND FALSE !(n == 1) VAL [\old(n)=7, n=7] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=6] [L8] COND FALSE !(n < 1) VAL [\old(n)=6, n=6] [L10] COND FALSE !(n == 1) VAL [\old(n)=6, n=6] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=5] [L18] COND FALSE !(n < 1) VAL [\old(n)=5, n=5] [L20] COND FALSE !(n == 1) VAL [\old(n)=5, n=5] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=4] [L8] COND FALSE !(n < 1) VAL [\old(n)=4, n=4] [L10] COND FALSE !(n == 1) VAL [\old(n)=4, n=4] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=3] [L18] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L20] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=3, fibo1(n-1)=1, n=3] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=3, fibo1(n-1)=1, fibo1(n-2)=1, n=3] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=4, fibo2(n-1)=2, n=4] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=4, fibo2(n-1)=2, fibo2(n-2)=1, n=4] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=5, fibo1(n-1)=3, n=5] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=3] [L8] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L10] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=3, fibo2(n-1)=1, n=3] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=3, fibo2(n-1)=1, fibo2(n-2)=1, n=3] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=5, fibo1(n-1)=3, fibo1(n-2)=2, n=5] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=6, fibo2(n-1)=5, n=6] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=4] [L18] COND FALSE !(n < 1) VAL [\old(n)=4, n=4] [L20] COND FALSE !(n == 1) VAL [\old(n)=4, n=4] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=3] [L8] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L10] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=3, fibo2(n-1)=1, n=3] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=3, fibo2(n-1)=1, fibo2(n-2)=1, n=3] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=4, fibo1(n-1)=2, n=4] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=4, fibo1(n-1)=2, fibo1(n-2)=1, n=4] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=6, fibo2(n-1)=5, fibo2(n-2)=3, n=6] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=7, fibo1(n-1)=8, n=7] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=5] [L8] COND FALSE !(n < 1) VAL [\old(n)=5, n=5] [L10] COND FALSE !(n == 1) VAL [\old(n)=5, n=5] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=4] [L18] COND FALSE !(n < 1) VAL [\old(n)=4, n=4] [L20] COND FALSE !(n == 1) VAL [\old(n)=4, n=4] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=3] [L8] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L10] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=3, fibo2(n-1)=1, n=3] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=3, fibo2(n-1)=1, fibo2(n-2)=1, n=3] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=4, fibo1(n-1)=2, n=4] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=4, fibo1(n-1)=2, fibo1(n-2)=1, n=4] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=5, fibo2(n-1)=3, n=5] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=3] [L18] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L20] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=3, fibo1(n-1)=1, n=3] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=3, fibo1(n-1)=1, fibo1(n-2)=1, n=3] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=5, fibo2(n-1)=3, fibo2(n-2)=2, n=5] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=7, fibo1(n-1)=8, fibo1(n-2)=5, n=7] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=8, fibo2(n-1)=13, n=8] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=6] [L18] COND FALSE !(n < 1) VAL [\old(n)=6, n=6] [L20] COND FALSE !(n == 1) VAL [\old(n)=6, n=6] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=5] [L8] COND FALSE !(n < 1) VAL [\old(n)=5, n=5] [L10] COND FALSE !(n == 1) VAL [\old(n)=5, n=5] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=4] [L18] COND FALSE !(n < 1) VAL [\old(n)=4, n=4] [L20] COND FALSE !(n == 1) VAL [\old(n)=4, n=4] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=3] [L8] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L10] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=3, fibo2(n-1)=1, n=3] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=3, fibo2(n-1)=1, fibo2(n-2)=1, n=3] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=4, fibo1(n-1)=2, n=4] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=4, fibo1(n-1)=2, fibo1(n-2)=1, n=4] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=5, fibo2(n-1)=3, n=5] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=3] [L18] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L20] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=3, fibo1(n-1)=1, n=3] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=3, fibo1(n-1)=1, fibo1(n-2)=1, n=3] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=5, fibo2(n-1)=3, fibo2(n-2)=2, n=5] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=6, fibo1(n-1)=5, n=6] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=4] [L8] COND FALSE !(n < 1) VAL [\old(n)=4, n=4] [L10] COND FALSE !(n == 1) VAL [\old(n)=4, n=4] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=3] [L18] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L20] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=3, fibo1(n-1)=1, n=3] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=3, fibo1(n-1)=1, fibo1(n-2)=1, n=3] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=4, fibo2(n-1)=2, n=4] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=4, fibo2(n-1)=2, fibo2(n-2)=1, n=4] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=6, fibo1(n-1)=5, fibo1(n-2)=3, n=6] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=8, fibo2(n-1)=13, fibo2(n-2)=8, n=8] [L13] return fibo2(n-1) + fibo2(n-2); [L37] RET, EXPR fibo1(x) VAL [fibo1(x)=21, x=8] [L37] int result = fibo1(x); [L38] COND TRUE result == 21 VAL [result=21, x=8] [L39] __VERIFIER_error() VAL [result=21, x=8] ----- [2018-11-23 03:49:49,595 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 23.11 03:49:49 BoogieIcfgContainer [2018-11-23 03:49:49,595 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2018-11-23 03:49:49,595 INFO L113 PluginConnector]: ------------------------Witness Printer---------------------------- [2018-11-23 03:49:49,595 INFO L271 PluginConnector]: Initializing Witness Printer... [2018-11-23 03:49:49,595 INFO L276 PluginConnector]: Witness Printer initialized [2018-11-23 03:49:49,596 INFO L185 PluginConnector]: Executing the observer RCFGCatcher from plugin Witness Printer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 03:49:11" (3/4) ... [2018-11-23 03:49:49,598 INFO L138 WitnessPrinter]: Generating witness for reachability counterexample ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder.RCFGBacktranslator [?] CALL call ULTIMATE.init(); [?] assume true; [?] RET #47#return; [?] CALL call #t~ret5 := main(); [?] ~x~0 := 8; VAL [main_~x~0=8] [?] CALL call #t~ret4 := fibo1(~x~0); VAL [|fibo1_#in~n|=8] [?] ~n := #in~n; VAL [fibo1_~n=8, |fibo1_#in~n|=8] [?] assume !(~n < 1); VAL [fibo1_~n=8, |fibo1_#in~n|=8] [?] assume !(1 == ~n); VAL [fibo1_~n=8, |fibo1_#in~n|=8] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=7] [?] ~n := #in~n; VAL [fibo2_~n=7, |fibo2_#in~n|=7] [?] assume !(~n < 1); VAL [fibo2_~n=7, |fibo2_#in~n|=7] [?] assume !(1 == ~n); VAL [fibo2_~n=7, |fibo2_#in~n|=7] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=6] [?] ~n := #in~n; VAL [fibo1_~n=6, |fibo1_#in~n|=6] [?] assume !(~n < 1); VAL [fibo1_~n=6, |fibo1_#in~n|=6] [?] assume !(1 == ~n); VAL [fibo1_~n=6, |fibo1_#in~n|=6] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=5] [?] ~n := #in~n; VAL [fibo2_~n=5, |fibo2_#in~n|=5] [?] assume !(~n < 1); VAL [fibo2_~n=5, |fibo2_#in~n|=5] [?] assume !(1 == ~n); VAL [fibo2_~n=5, |fibo2_#in~n|=5] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=4] [?] ~n := #in~n; VAL [fibo1_~n=4, |fibo1_#in~n|=4] [?] assume !(~n < 1); VAL [fibo1_~n=4, |fibo1_#in~n|=4] [?] assume !(1 == ~n); VAL [fibo1_~n=4, |fibo1_#in~n|=4] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=3] [?] ~n := #in~n; VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] assume !(~n < 1); VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] assume !(1 == ~n); VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=2] [?] ~n := #in~n; VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(~n < 1); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=0] [?] ~n := #in~n; VAL [fibo2_~n=0, |fibo2_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] assume true; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] RET #59#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=0] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #55#return; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=1] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#res|=2] [?] assume true; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#res|=2] [?] RET #57#return; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#t~ret0|=2] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#t~ret0|=2] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=2] [?] ~n := #in~n; VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(~n < 1); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=0] [?] ~n := #in~n; VAL [fibo1_~n=0, |fibo1_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] assume true; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] RET #55#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=0] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] RET #59#return; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#t~ret0|=2, |fibo1_#t~ret1|=1] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#res|=3] [?] assume true; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#res|=3] [?] RET #53#return; VAL [fibo2_~n=5, |fibo2_#in~n|=5, |fibo2_#t~ret2|=3] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=5, |fibo2_#in~n|=5, |fibo2_#t~ret2|=3] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=3] [?] ~n := #in~n; VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] assume !(~n < 1); VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] assume !(1 == ~n); VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=2] [?] ~n := #in~n; VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(~n < 1); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=0] [?] ~n := #in~n; VAL [fibo1_~n=0, |fibo1_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] assume true; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] RET #55#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=0] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #59#return; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=1] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#res|=2] [?] assume true; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#res|=2] [?] RET #55#return; VAL [fibo2_~n=5, |fibo2_#in~n|=5, |fibo2_#t~ret2|=3, |fibo2_#t~ret3|=2] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=5, |fibo2_#in~n|=5, |fibo2_#res|=5] [?] assume true; VAL [fibo2_~n=5, |fibo2_#in~n|=5, |fibo2_#res|=5] [?] RET #57#return; VAL [fibo1_~n=6, |fibo1_#in~n|=6, |fibo1_#t~ret0|=5] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=6, |fibo1_#in~n|=6, |fibo1_#t~ret0|=5] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=4] [?] ~n := #in~n; VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] assume !(~n < 1); VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] assume !(1 == ~n); VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=3] [?] ~n := #in~n; VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] assume !(~n < 1); VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] assume !(1 == ~n); VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=2] [?] ~n := #in~n; VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(~n < 1); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=0] [?] ~n := #in~n; VAL [fibo1_~n=0, |fibo1_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] assume true; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] RET #55#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=0] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #59#return; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=1] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#res|=2] [?] assume true; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#res|=2] [?] RET #53#return; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=2] [?] ~n := #in~n; VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(~n < 1); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=0] [?] ~n := #in~n; VAL [fibo2_~n=0, |fibo2_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] assume true; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] RET #59#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=0] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] RET #55#return; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2, |fibo2_#t~ret3|=1] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#res|=3] [?] assume true; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#res|=3] [?] RET #59#return; VAL [fibo1_~n=6, |fibo1_#in~n|=6, |fibo1_#t~ret0|=5, |fibo1_#t~ret1|=3] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=6, |fibo1_#in~n|=6, |fibo1_#res|=8] [?] assume true; VAL [fibo1_~n=6, |fibo1_#in~n|=6, |fibo1_#res|=8] [?] RET #53#return; VAL [fibo2_~n=7, |fibo2_#in~n|=7, |fibo2_#t~ret2|=8] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=7, |fibo2_#in~n|=7, |fibo2_#t~ret2|=8] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=5] [?] ~n := #in~n; VAL [fibo1_~n=5, |fibo1_#in~n|=5] [?] assume !(~n < 1); VAL [fibo1_~n=5, |fibo1_#in~n|=5] [?] assume !(1 == ~n); VAL [fibo1_~n=5, |fibo1_#in~n|=5] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=4] [?] ~n := #in~n; VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] assume !(~n < 1); VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] assume !(1 == ~n); VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=3] [?] ~n := #in~n; VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] assume !(~n < 1); VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] assume !(1 == ~n); VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=2] [?] ~n := #in~n; VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(~n < 1); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=0] [?] ~n := #in~n; VAL [fibo1_~n=0, |fibo1_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] assume true; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] RET #55#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=0] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #59#return; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=1] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#res|=2] [?] assume true; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#res|=2] [?] RET #53#return; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=2] [?] ~n := #in~n; VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(~n < 1); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=0] [?] ~n := #in~n; VAL [fibo2_~n=0, |fibo2_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] assume true; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] RET #59#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=0] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] RET #55#return; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2, |fibo2_#t~ret3|=1] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#res|=3] [?] assume true; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#res|=3] [?] RET #57#return; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#t~ret0|=3] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#t~ret0|=3] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=3] [?] ~n := #in~n; VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] assume !(~n < 1); VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] assume !(1 == ~n); VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=2] [?] ~n := #in~n; VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(~n < 1); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=0] [?] ~n := #in~n; VAL [fibo2_~n=0, |fibo2_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] assume true; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] RET #59#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=0] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #55#return; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=1] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#res|=2] [?] assume true; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#res|=2] [?] RET #59#return; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#t~ret0|=3, |fibo1_#t~ret1|=2] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#res|=5] [?] assume true; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#res|=5] [?] RET #55#return; VAL [fibo2_~n=7, |fibo2_#in~n|=7, |fibo2_#t~ret2|=8, |fibo2_#t~ret3|=5] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=7, |fibo2_#in~n|=7, |fibo2_#res|=13] [?] assume true; VAL [fibo2_~n=7, |fibo2_#in~n|=7, |fibo2_#res|=13] [?] RET #57#return; VAL [fibo1_~n=8, |fibo1_#in~n|=8, |fibo1_#t~ret0|=13] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=8, |fibo1_#in~n|=8, |fibo1_#t~ret0|=13] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=6] [?] ~n := #in~n; VAL [fibo2_~n=6, |fibo2_#in~n|=6] [?] assume !(~n < 1); VAL [fibo2_~n=6, |fibo2_#in~n|=6] [?] assume !(1 == ~n); VAL [fibo2_~n=6, |fibo2_#in~n|=6] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=5] [?] ~n := #in~n; VAL [fibo1_~n=5, |fibo1_#in~n|=5] [?] assume !(~n < 1); VAL [fibo1_~n=5, |fibo1_#in~n|=5] [?] assume !(1 == ~n); VAL [fibo1_~n=5, |fibo1_#in~n|=5] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=4] [?] ~n := #in~n; VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] assume !(~n < 1); VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] assume !(1 == ~n); VAL [fibo2_~n=4, |fibo2_#in~n|=4] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=3] [?] ~n := #in~n; VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] assume !(~n < 1); VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] assume !(1 == ~n); VAL [fibo1_~n=3, |fibo1_#in~n|=3] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=2] [?] ~n := #in~n; VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(~n < 1); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=0] [?] ~n := #in~n; VAL [fibo1_~n=0, |fibo1_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] assume true; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] RET #55#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=0] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #59#return; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=1] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#res|=2] [?] assume true; VAL [fibo1_~n=3, |fibo1_#in~n|=3, |fibo1_#res|=2] [?] RET #53#return; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=2] [?] ~n := #in~n; VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(~n < 1); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=0] [?] ~n := #in~n; VAL [fibo2_~n=0, |fibo2_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] assume true; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] RET #59#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=0] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] RET #55#return; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#t~ret2|=2, |fibo2_#t~ret3|=1] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#res|=3] [?] assume true; VAL [fibo2_~n=4, |fibo2_#in~n|=4, |fibo2_#res|=3] [?] RET #57#return; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#t~ret0|=3] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#t~ret0|=3] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=3] [?] ~n := #in~n; VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] assume !(~n < 1); VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] assume !(1 == ~n); VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=2] [?] ~n := #in~n; VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(~n < 1); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=0] [?] ~n := #in~n; VAL [fibo2_~n=0, |fibo2_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] assume true; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] RET #59#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=0] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #55#return; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=1] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#res|=2] [?] assume true; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#res|=2] [?] RET #59#return; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#t~ret0|=3, |fibo1_#t~ret1|=2] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#res|=5] [?] assume true; VAL [fibo1_~n=5, |fibo1_#in~n|=5, |fibo1_#res|=5] [?] RET #53#return; VAL [fibo2_~n=6, |fibo2_#in~n|=6, |fibo2_#t~ret2|=5] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=6, |fibo2_#in~n|=6, |fibo2_#t~ret2|=5] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=4] [?] ~n := #in~n; VAL [fibo1_~n=4, |fibo1_#in~n|=4] [?] assume !(~n < 1); VAL [fibo1_~n=4, |fibo1_#in~n|=4] [?] assume !(1 == ~n); VAL [fibo1_~n=4, |fibo1_#in~n|=4] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=3] [?] ~n := #in~n; VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] assume !(~n < 1); VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] assume !(1 == ~n); VAL [fibo2_~n=3, |fibo2_#in~n|=3] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=2] [?] ~n := #in~n; VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(~n < 1); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo1_~n=2, |fibo1_#in~n|=2] [?] CALL call #t~ret0 := fibo2(~n - 1); VAL [|fibo2_#in~n|=1] [?] ~n := #in~n; VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume !(~n < 1); VAL [fibo2_~n=1, |fibo2_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=1, |fibo2_#in~n|=1, |fibo2_#res|=1] [?] RET #57#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=0] [?] ~n := #in~n; VAL [fibo2_~n=0, |fibo2_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] assume true; VAL [fibo2_~n=0, |fibo2_#in~n|=0, |fibo2_#res|=0] [?] RET #59#return; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#t~ret0|=1, |fibo1_#t~ret1|=0] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=2, |fibo1_#in~n|=2, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #55#return; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=1] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#res|=2] [?] assume true; VAL [fibo2_~n=3, |fibo2_#in~n|=3, |fibo2_#res|=2] [?] RET #57#return; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#t~ret0|=2] [?] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#t~ret0|=2] [?] CALL call #t~ret1 := fibo2(~n - 2); VAL [|fibo2_#in~n|=2] [?] ~n := #in~n; VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(~n < 1); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] assume !(1 == ~n); VAL [fibo2_~n=2, |fibo2_#in~n|=2] [?] CALL call #t~ret2 := fibo1(~n - 1); VAL [|fibo1_#in~n|=1] [?] ~n := #in~n; VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume !(~n < 1); VAL [fibo1_~n=1, |fibo1_#in~n|=1] [?] assume 1 == ~n;#res := 1; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] assume true; VAL [fibo1_~n=1, |fibo1_#in~n|=1, |fibo1_#res|=1] [?] RET #53#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1] [?] CALL call #t~ret3 := fibo1(~n - 2); VAL [|fibo1_#in~n|=0] [?] ~n := #in~n; VAL [fibo1_~n=0, |fibo1_#in~n|=0] [?] assume ~n < 1;#res := 0; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] assume true; VAL [fibo1_~n=0, |fibo1_#in~n|=0, |fibo1_#res|=0] [?] RET #55#return; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#t~ret2|=1, |fibo2_#t~ret3|=0] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] assume true; VAL [fibo2_~n=2, |fibo2_#in~n|=2, |fibo2_#res|=1] [?] RET #59#return; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#t~ret0|=2, |fibo1_#t~ret1|=1] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#res|=3] [?] assume true; VAL [fibo1_~n=4, |fibo1_#in~n|=4, |fibo1_#res|=3] [?] RET #55#return; VAL [fibo2_~n=6, |fibo2_#in~n|=6, |fibo2_#t~ret2|=5, |fibo2_#t~ret3|=3] [?] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;#res := #t~ret2 + #t~ret3;havoc #t~ret3;havoc #t~ret2; VAL [fibo2_~n=6, |fibo2_#in~n|=6, |fibo2_#res|=8] [?] assume true; VAL [fibo2_~n=6, |fibo2_#in~n|=6, |fibo2_#res|=8] [?] RET #59#return; VAL [fibo1_~n=8, |fibo1_#in~n|=8, |fibo1_#t~ret0|=13, |fibo1_#t~ret1|=8] [?] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647;#res := #t~ret0 + #t~ret1;havoc #t~ret0;havoc #t~ret1; VAL [fibo1_~n=8, |fibo1_#in~n|=8, |fibo1_#res|=21] [?] assume true; VAL [fibo1_~n=8, |fibo1_#in~n|=8, |fibo1_#res|=21] [?] RET #51#return; VAL [main_~x~0=8, |main_#t~ret4|=21] [?] assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~result~0 := #t~ret4;havoc #t~ret4; VAL [main_~result~0=21, main_~x~0=8] [?] assume 21 == ~result~0; VAL [main_~result~0=21, main_~x~0=8] [?] assume !false; VAL [main_~result~0=21, main_~x~0=8] [?] CALL call ULTIMATE.init(); [?] ensures true; [?] RET call ULTIMATE.init(); [?] CALL call #t~ret5 := main(); [L36] ~x~0 := 8; VAL [~x~0=8] [L37] CALL call #t~ret4 := fibo1(~x~0); VAL [#in~n=8] [L7-L15] ~n := #in~n; VAL [#in~n=8, ~n=8] [L8-L14] assume !(~n < 1); VAL [#in~n=8, ~n=8] [L10-L14] assume !(1 == ~n); VAL [#in~n=8, ~n=8] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=7] [L17-L25] ~n := #in~n; VAL [#in~n=7, ~n=7] [L18-L24] assume !(~n < 1); VAL [#in~n=7, ~n=7] [L20-L24] assume !(1 == ~n); VAL [#in~n=7, ~n=7] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6] [L7-L15] ~n := #in~n; VAL [#in~n=6, ~n=6] [L8-L14] assume !(~n < 1); VAL [#in~n=6, ~n=6] [L10-L14] assume !(1 == ~n); VAL [#in~n=6, ~n=6] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5] [L17-L25] ~n := #in~n; VAL [#in~n=5, ~n=5] [L18-L24] assume !(~n < 1); VAL [#in~n=5, ~n=5] [L20-L24] assume !(1 == ~n); VAL [#in~n=5, ~n=5] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8-L14] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L10-L14] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18-L24] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L20-L24] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L5] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L4] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8-L14] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L10-L14] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L4] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5, #t~ret2=3, #t~ret3=2, ~n=5] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=5, #res=5, ~n=5] [L5] ensures true; VAL [#in~n=5, #res=5, ~n=5] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18-L24] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L20-L24] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8-L14] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L10-L14] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L4] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L5] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6, #t~ret0=5, #t~ret1=3, ~n=6] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=6, #res=8, ~n=6] [L4] ensures true; VAL [#in~n=6, #res=8, ~n=6] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8-L14] assume !(~n < 1); VAL [#in~n=5, ~n=5] [L10-L14] assume !(1 == ~n); VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18-L24] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L20-L24] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8-L14] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L10-L14] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L4] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L5] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18-L24] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L20-L24] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L5] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L4] ensures true; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=7, #t~ret2=8, #t~ret3=5, ~n=7] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=7, #res=13, ~n=7] [L5] ensures true; VAL [#in~n=7, #res=13, ~n=7] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6] [L17-L25] ~n := #in~n; VAL [#in~n=6, ~n=6] [L18-L24] assume !(~n < 1); VAL [#in~n=6, ~n=6] [L20-L24] assume !(1 == ~n); VAL [#in~n=6, ~n=6] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8-L14] assume !(~n < 1); VAL [#in~n=5, ~n=5] [L10-L14] assume !(1 == ~n); VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18-L24] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L20-L24] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8-L14] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L10-L14] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L4] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L5] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18-L24] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L20-L24] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L5] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L4] ensures true; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8-L14] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L10-L14] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18-L24] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L20-L24] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L5] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L4] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=6, #t~ret2=5, #t~ret3=3, ~n=6] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=6, #res=8, ~n=6] [L5] ensures true; VAL [#in~n=6, #res=8, ~n=6] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=8, #t~ret0=13, #t~ret1=8, ~n=8] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=8, #res=21, ~n=8] [L4] ensures true; VAL [#in~n=8, #res=21, ~n=8] [L37] RET call #t~ret4 := fibo1(~x~0); VAL [#t~ret4=21, ~x~0=8] [L37] assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647; [L37] ~result~0 := #t~ret4; [L37] havoc #t~ret4; VAL [~result~0=21, ~x~0=8] [L38-L40] assume 21 == ~result~0; VAL [~result~0=21, ~x~0=8] [L39] assert false; VAL [~result~0=21, ~x~0=8] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.preprocessor.BoogiePreprocessorBacktranslator [?] CALL call ULTIMATE.init(); [?] ensures true; [?] RET call ULTIMATE.init(); [?] CALL call #t~ret5 := main(); [L36] ~x~0 := 8; VAL [~x~0=8] [L37] CALL call #t~ret4 := fibo1(~x~0); VAL [#in~n=8] [L7-L15] ~n := #in~n; VAL [#in~n=8, ~n=8] [L8-L14] assume !(~n < 1); VAL [#in~n=8, ~n=8] [L10-L14] assume !(1 == ~n); VAL [#in~n=8, ~n=8] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=7] [L17-L25] ~n := #in~n; VAL [#in~n=7, ~n=7] [L18-L24] assume !(~n < 1); VAL [#in~n=7, ~n=7] [L20-L24] assume !(1 == ~n); VAL [#in~n=7, ~n=7] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6] [L7-L15] ~n := #in~n; VAL [#in~n=6, ~n=6] [L8-L14] assume !(~n < 1); VAL [#in~n=6, ~n=6] [L10-L14] assume !(1 == ~n); VAL [#in~n=6, ~n=6] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5] [L17-L25] ~n := #in~n; VAL [#in~n=5, ~n=5] [L18-L24] assume !(~n < 1); VAL [#in~n=5, ~n=5] [L20-L24] assume !(1 == ~n); VAL [#in~n=5, ~n=5] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8-L14] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L10-L14] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18-L24] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L20-L24] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L5] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L4] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8-L14] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L10-L14] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L4] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5, #t~ret2=3, #t~ret3=2, ~n=5] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=5, #res=5, ~n=5] [L5] ensures true; VAL [#in~n=5, #res=5, ~n=5] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18-L24] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L20-L24] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8-L14] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L10-L14] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L4] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L5] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6, #t~ret0=5, #t~ret1=3, ~n=6] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=6, #res=8, ~n=6] [L4] ensures true; VAL [#in~n=6, #res=8, ~n=6] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8-L14] assume !(~n < 1); VAL [#in~n=5, ~n=5] [L10-L14] assume !(1 == ~n); VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18-L24] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L20-L24] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8-L14] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L10-L14] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L4] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L5] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18-L24] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L20-L24] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L5] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L4] ensures true; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=7, #t~ret2=8, #t~ret3=5, ~n=7] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=7, #res=13, ~n=7] [L5] ensures true; VAL [#in~n=7, #res=13, ~n=7] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6] [L17-L25] ~n := #in~n; VAL [#in~n=6, ~n=6] [L18-L24] assume !(~n < 1); VAL [#in~n=6, ~n=6] [L20-L24] assume !(1 == ~n); VAL [#in~n=6, ~n=6] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8-L14] assume !(~n < 1); VAL [#in~n=5, ~n=5] [L10-L14] assume !(1 == ~n); VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18-L24] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L20-L24] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8-L14] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L10-L14] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L4] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L5] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18-L24] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L20-L24] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L5] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L4] ensures true; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8-L14] assume !(~n < 1); VAL [#in~n=4, ~n=4] [L10-L14] assume !(1 == ~n); VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18-L24] assume !(~n < 1); VAL [#in~n=3, ~n=3] [L20-L24] assume !(1 == ~n); VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8-L14] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L10-L14] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18-L24] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L20-L24] assume 1 == ~n; [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L5] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18-L24] assume ~n < 1; [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L5] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L4] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L5] ensures true; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18-L24] assume !(~n < 1); VAL [#in~n=2, ~n=2] [L20-L24] assume !(1 == ~n); VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8-L14] assume !(~n < 1); VAL [#in~n=1, ~n=1] [L10-L14] assume 1 == ~n; [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L4] ensures true; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8-L14] assume ~n < 1; [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L4] ensures true; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L5] ensures true; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L4] ensures true; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=6, #t~ret2=5, #t~ret3=3, ~n=6] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=6, #res=8, ~n=6] [L5] ensures true; VAL [#in~n=6, #res=8, ~n=6] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=8, #t~ret0=13, #t~ret1=8, ~n=8] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=8, #res=21, ~n=8] [L4] ensures true; VAL [#in~n=8, #res=21, ~n=8] [L37] RET call #t~ret4 := fibo1(~x~0); VAL [#t~ret4=21, ~x~0=8] [L37] assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647; [L37] ~result~0 := #t~ret4; [L37] havoc #t~ret4; VAL [~result~0=21, ~x~0=8] [L38-L40] assume 21 == ~result~0; VAL [~result~0=21, ~x~0=8] [L39] assert false; VAL [~result~0=21, ~x~0=8] [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret5 := main(); [L36] ~x~0 := 8; VAL [~x~0=8] [L37] CALL call #t~ret4 := fibo1(~x~0); VAL [#in~n=8] [L7-L15] ~n := #in~n; VAL [#in~n=8, ~n=8] [L8] COND FALSE !(~n < 1) VAL [#in~n=8, ~n=8] [L10] COND FALSE !(1 == ~n) VAL [#in~n=8, ~n=8] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=7] [L17-L25] ~n := #in~n; VAL [#in~n=7, ~n=7] [L18] COND FALSE !(~n < 1) VAL [#in~n=7, ~n=7] [L20] COND FALSE !(1 == ~n) VAL [#in~n=7, ~n=7] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6] [L7-L15] ~n := #in~n; VAL [#in~n=6, ~n=6] [L8] COND FALSE !(~n < 1) VAL [#in~n=6, ~n=6] [L10] COND FALSE !(1 == ~n) VAL [#in~n=6, ~n=6] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5] [L17-L25] ~n := #in~n; VAL [#in~n=5, ~n=5] [L18] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L20] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L10] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5, #t~ret2=3, #t~ret3=2, ~n=5] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=5, #res=5, ~n=5] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6, #t~ret0=5, #t~ret1=3, ~n=6] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=6, #res=8, ~n=6] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L10] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=7, #t~ret2=8, #t~ret3=5, ~n=7] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=7, #res=13, ~n=7] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6] [L17-L25] ~n := #in~n; VAL [#in~n=6, ~n=6] [L18] COND FALSE !(~n < 1) VAL [#in~n=6, ~n=6] [L20] COND FALSE !(1 == ~n) VAL [#in~n=6, ~n=6] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L10] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L10] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=6, #t~ret2=5, #t~ret3=3, ~n=6] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=6, #res=8, ~n=6] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=8, #t~ret0=13, #t~ret1=8, ~n=8] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=8, #res=21, ~n=8] [L37] RET call #t~ret4 := fibo1(~x~0); VAL [#t~ret4=21, ~x~0=8] [L37] assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647; [L37] ~result~0 := #t~ret4; [L37] havoc #t~ret4; VAL [~result~0=21, ~x~0=8] [L38] COND TRUE 21 == ~result~0 VAL [~result~0=21, ~x~0=8] [L39] assert false; VAL [~result~0=21, ~x~0=8] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret5 := main(); [L36] ~x~0 := 8; VAL [~x~0=8] [L37] CALL call #t~ret4 := fibo1(~x~0); VAL [#in~n=8] [L7-L15] ~n := #in~n; VAL [#in~n=8, ~n=8] [L8] COND FALSE !(~n < 1) VAL [#in~n=8, ~n=8] [L10] COND FALSE !(1 == ~n) VAL [#in~n=8, ~n=8] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=7] [L17-L25] ~n := #in~n; VAL [#in~n=7, ~n=7] [L18] COND FALSE !(~n < 1) VAL [#in~n=7, ~n=7] [L20] COND FALSE !(1 == ~n) VAL [#in~n=7, ~n=7] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6] [L7-L15] ~n := #in~n; VAL [#in~n=6, ~n=6] [L8] COND FALSE !(~n < 1) VAL [#in~n=6, ~n=6] [L10] COND FALSE !(1 == ~n) VAL [#in~n=6, ~n=6] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5] [L17-L25] ~n := #in~n; VAL [#in~n=5, ~n=5] [L18] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L20] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L10] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5, #t~ret2=3, #t~ret3=2, ~n=5] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=5, #res=5, ~n=5] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6, #t~ret0=5, #t~ret1=3, ~n=6] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=6, #res=8, ~n=6] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L10] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=7, #t~ret2=8, #t~ret3=5, ~n=7] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=7, #res=13, ~n=7] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6] [L17-L25] ~n := #in~n; VAL [#in~n=6, ~n=6] [L18] COND FALSE !(~n < 1) VAL [#in~n=6, ~n=6] [L20] COND FALSE !(1 == ~n) VAL [#in~n=6, ~n=6] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L10] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L10] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=6, #t~ret2=5, #t~ret3=3, ~n=6] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=6, #res=8, ~n=6] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=8, #t~ret0=13, #t~ret1=8, ~n=8] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=8, #res=21, ~n=8] [L37] RET call #t~ret4 := fibo1(~x~0); VAL [#t~ret4=21, ~x~0=8] [L37] assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647; [L37] ~result~0 := #t~ret4; [L37] havoc #t~ret4; VAL [~result~0=21, ~x~0=8] [L38] COND TRUE 21 == ~result~0 VAL [~result~0=21, ~x~0=8] [L39] assert false; VAL [~result~0=21, ~x~0=8] [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret5 := main(); [L36] ~x~0 := 8; VAL [~x~0=8] [L37] CALL call #t~ret4 := fibo1(~x~0); VAL [#in~n=8] [L7-L15] ~n := #in~n; VAL [#in~n=8, ~n=8] [L8] COND FALSE !(~n < 1) VAL [#in~n=8, ~n=8] [L10] COND FALSE !(1 == ~n) VAL [#in~n=8, ~n=8] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=7] [L17-L25] ~n := #in~n; VAL [#in~n=7, ~n=7] [L18] COND FALSE !(~n < 1) VAL [#in~n=7, ~n=7] [L20] COND FALSE !(1 == ~n) VAL [#in~n=7, ~n=7] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6] [L7-L15] ~n := #in~n; VAL [#in~n=6, ~n=6] [L8] COND FALSE !(~n < 1) VAL [#in~n=6, ~n=6] [L10] COND FALSE !(1 == ~n) VAL [#in~n=6, ~n=6] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5] [L17-L25] ~n := #in~n; VAL [#in~n=5, ~n=5] [L18] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L20] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L10] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5, #t~ret2=3, #t~ret3=2, ~n=5] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=5, #res=5, ~n=5] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6, #t~ret0=5, #t~ret1=3, ~n=6] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=6, #res=8, ~n=6] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L10] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=7, #t~ret2=8, #t~ret3=5, ~n=7] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=7, #res=13, ~n=7] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6] [L17-L25] ~n := #in~n; VAL [#in~n=6, ~n=6] [L18] COND FALSE !(~n < 1) VAL [#in~n=6, ~n=6] [L20] COND FALSE !(1 == ~n) VAL [#in~n=6, ~n=6] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L10] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L10] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=6, #t~ret2=5, #t~ret3=3, ~n=6] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=6, #res=8, ~n=6] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=8, #t~ret0=13, #t~ret1=8, ~n=8] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=8, #res=21, ~n=8] [L37] RET call #t~ret4 := fibo1(~x~0); VAL [#t~ret4=21, ~x~0=8] [L37] assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647; [L37] ~result~0 := #t~ret4; [L37] havoc #t~ret4; VAL [~result~0=21, ~x~0=8] [L38] COND TRUE 21 == ~result~0 VAL [~result~0=21, ~x~0=8] [L39] assert false; VAL [~result~0=21, ~x~0=8] ----- ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.CACSL2BoogieBacktranslator [?] CALL call ULTIMATE.init(); [?] RET call ULTIMATE.init(); [?] CALL call #t~ret5 := main(); [L36] ~x~0 := 8; VAL [~x~0=8] [L37] CALL call #t~ret4 := fibo1(~x~0); VAL [#in~n=8] [L7-L15] ~n := #in~n; VAL [#in~n=8, ~n=8] [L8] COND FALSE !(~n < 1) VAL [#in~n=8, ~n=8] [L10] COND FALSE !(1 == ~n) VAL [#in~n=8, ~n=8] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=7] [L17-L25] ~n := #in~n; VAL [#in~n=7, ~n=7] [L18] COND FALSE !(~n < 1) VAL [#in~n=7, ~n=7] [L20] COND FALSE !(1 == ~n) VAL [#in~n=7, ~n=7] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6] [L7-L15] ~n := #in~n; VAL [#in~n=6, ~n=6] [L8] COND FALSE !(~n < 1) VAL [#in~n=6, ~n=6] [L10] COND FALSE !(1 == ~n) VAL [#in~n=6, ~n=6] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5] [L17-L25] ~n := #in~n; VAL [#in~n=5, ~n=5] [L18] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L20] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L10] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=5, #t~ret2=3, ~n=5] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5, #t~ret2=3, #t~ret3=2, ~n=5] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=5, #res=5, ~n=5] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=6, #t~ret0=5, ~n=6] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6, #t~ret0=5, #t~ret1=3, ~n=6] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=6, #res=8, ~n=6] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=7, #t~ret2=8, ~n=7] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L10] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=7, #t~ret2=8, #t~ret3=5, ~n=7] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=7, #res=13, ~n=7] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=8, #t~ret0=13, ~n=8] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=6] [L17-L25] ~n := #in~n; VAL [#in~n=6, ~n=6] [L18] COND FALSE !(~n < 1) VAL [#in~n=6, ~n=6] [L20] COND FALSE !(1 == ~n) VAL [#in~n=6, ~n=6] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=5] [L7-L15] ~n := #in~n; VAL [#in~n=5, ~n=5] [L8] COND FALSE !(~n < 1) VAL [#in~n=5, ~n=5] [L10] COND FALSE !(1 == ~n) VAL [#in~n=5, ~n=5] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4] [L17-L25] ~n := #in~n; VAL [#in~n=4, ~n=4] [L18] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L20] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3] [L7-L15] ~n := #in~n; VAL [#in~n=3, ~n=3] [L8] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L10] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=3, #t~ret0=1, ~n=3] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3, #t~ret0=1, #t~ret1=1, ~n=3] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=3, #res=2, ~n=3] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=4, #t~ret2=2, ~n=4] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4, #t~ret2=2, #t~ret3=1, ~n=4] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=4, #res=3, ~n=4] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=5, #t~ret0=3, ~n=5] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=5, #t~ret0=3, #t~ret1=2, ~n=5] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=5, #res=5, ~n=5] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=6, #t~ret2=5, ~n=6] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=4] [L7-L15] ~n := #in~n; VAL [#in~n=4, ~n=4] [L8] COND FALSE !(~n < 1) VAL [#in~n=4, ~n=4] [L10] COND FALSE !(1 == ~n) VAL [#in~n=4, ~n=4] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=3] [L17-L25] ~n := #in~n; VAL [#in~n=3, ~n=3] [L18] COND FALSE !(~n < 1) VAL [#in~n=3, ~n=3] [L20] COND FALSE !(1 == ~n) VAL [#in~n=3, ~n=3] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2] [L7-L15] ~n := #in~n; VAL [#in~n=2, ~n=2] [L8] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L10] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L13] CALL call #t~ret0 := fibo2(~n - 1); VAL [#in~n=1] [L17-L25] ~n := #in~n; VAL [#in~n=1, ~n=1] [L18] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L20] COND TRUE 1 == ~n [L21] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=2, #t~ret0=1, ~n=2] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=0] [L17-L25] ~n := #in~n; VAL [#in~n=0, ~n=0] [L18] COND TRUE ~n < 1 [L19] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2, #t~ret0=1, #t~ret1=0, ~n=2] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=2, #res=1, ~n=2] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=3, #t~ret2=1, ~n=3] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=3, #t~ret2=1, #t~ret3=1, ~n=3] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=3, #res=2, ~n=3] [L13] RET call #t~ret0 := fibo2(~n - 1); VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] assume -2147483648 <= #t~ret0 && #t~ret0 <= 2147483647; VAL [#in~n=4, #t~ret0=2, ~n=4] [L13] CALL call #t~ret1 := fibo2(~n - 2); VAL [#in~n=2] [L17-L25] ~n := #in~n; VAL [#in~n=2, ~n=2] [L18] COND FALSE !(~n < 1) VAL [#in~n=2, ~n=2] [L20] COND FALSE !(1 == ~n) VAL [#in~n=2, ~n=2] [L23] CALL call #t~ret2 := fibo1(~n - 1); VAL [#in~n=1] [L7-L15] ~n := #in~n; VAL [#in~n=1, ~n=1] [L8] COND FALSE !(~n < 1) VAL [#in~n=1, ~n=1] [L10] COND TRUE 1 == ~n [L11] #res := 1; VAL [#in~n=1, #res=1, ~n=1] [L23] RET call #t~ret2 := fibo1(~n - 1); VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] assume -2147483648 <= #t~ret2 && #t~ret2 <= 2147483647; VAL [#in~n=2, #t~ret2=1, ~n=2] [L23] CALL call #t~ret3 := fibo1(~n - 2); VAL [#in~n=0] [L7-L15] ~n := #in~n; VAL [#in~n=0, ~n=0] [L8] COND TRUE ~n < 1 [L9] #res := 0; VAL [#in~n=0, #res=0, ~n=0] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=2, #t~ret2=1, #t~ret3=0, ~n=2] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=2, #res=1, ~n=2] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=4, #t~ret0=2, #t~ret1=1, ~n=4] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=4, #res=3, ~n=4] [L23] RET call #t~ret3 := fibo1(~n - 2); VAL [#in~n=6, #t~ret2=5, #t~ret3=3, ~n=6] [L23] assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647; [L23] #res := #t~ret2 + #t~ret3; [L23] havoc #t~ret3; [L23] havoc #t~ret2; VAL [#in~n=6, #res=8, ~n=6] [L13] RET call #t~ret1 := fibo2(~n - 2); VAL [#in~n=8, #t~ret0=13, #t~ret1=8, ~n=8] [L13] assume -2147483648 <= #t~ret1 && #t~ret1 <= 2147483647; [L13] #res := #t~ret0 + #t~ret1; [L13] havoc #t~ret0; [L13] havoc #t~ret1; VAL [#in~n=8, #res=21, ~n=8] [L37] RET call #t~ret4 := fibo1(~x~0); VAL [#t~ret4=21, ~x~0=8] [L37] assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647; [L37] ~result~0 := #t~ret4; [L37] havoc #t~ret4; VAL [~result~0=21, ~x~0=8] [L38] COND TRUE 21 == ~result~0 VAL [~result~0=21, ~x~0=8] [L39] assert false; VAL [~result~0=21, ~x~0=8] [L36] int x = 8; VAL [x=8] [L37] CALL, EXPR fibo1(x) VAL [\old(n)=8] [L8] COND FALSE !(n < 1) VAL [\old(n)=8, n=8] [L10] COND FALSE !(n == 1) VAL [\old(n)=8, n=8] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=7] [L18] COND FALSE !(n < 1) VAL [\old(n)=7, n=7] [L20] COND FALSE !(n == 1) VAL [\old(n)=7, n=7] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=6] [L8] COND FALSE !(n < 1) VAL [\old(n)=6, n=6] [L10] COND FALSE !(n == 1) VAL [\old(n)=6, n=6] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=5] [L18] COND FALSE !(n < 1) VAL [\old(n)=5, n=5] [L20] COND FALSE !(n == 1) VAL [\old(n)=5, n=5] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=4] [L8] COND FALSE !(n < 1) VAL [\old(n)=4, n=4] [L10] COND FALSE !(n == 1) VAL [\old(n)=4, n=4] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=3] [L18] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L20] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=3, fibo1(n-1)=1, n=3] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=3, fibo1(n-1)=1, fibo1(n-2)=1, n=3] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=4, fibo2(n-1)=2, n=4] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=4, fibo2(n-1)=2, fibo2(n-2)=1, n=4] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=5, fibo1(n-1)=3, n=5] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=3] [L8] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L10] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=3, fibo2(n-1)=1, n=3] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=3, fibo2(n-1)=1, fibo2(n-2)=1, n=3] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=5, fibo1(n-1)=3, fibo1(n-2)=2, n=5] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=6, fibo2(n-1)=5, n=6] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=4] [L18] COND FALSE !(n < 1) VAL [\old(n)=4, n=4] [L20] COND FALSE !(n == 1) VAL [\old(n)=4, n=4] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=3] [L8] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L10] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=3, fibo2(n-1)=1, n=3] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=3, fibo2(n-1)=1, fibo2(n-2)=1, n=3] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=4, fibo1(n-1)=2, n=4] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=4, fibo1(n-1)=2, fibo1(n-2)=1, n=4] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=6, fibo2(n-1)=5, fibo2(n-2)=3, n=6] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=7, fibo1(n-1)=8, n=7] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=5] [L8] COND FALSE !(n < 1) VAL [\old(n)=5, n=5] [L10] COND FALSE !(n == 1) VAL [\old(n)=5, n=5] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=4] [L18] COND FALSE !(n < 1) VAL [\old(n)=4, n=4] [L20] COND FALSE !(n == 1) VAL [\old(n)=4, n=4] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=3] [L8] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L10] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=3, fibo2(n-1)=1, n=3] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=3, fibo2(n-1)=1, fibo2(n-2)=1, n=3] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=4, fibo1(n-1)=2, n=4] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=4, fibo1(n-1)=2, fibo1(n-2)=1, n=4] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=5, fibo2(n-1)=3, n=5] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=3] [L18] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L20] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=3, fibo1(n-1)=1, n=3] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=3, fibo1(n-1)=1, fibo1(n-2)=1, n=3] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=5, fibo2(n-1)=3, fibo2(n-2)=2, n=5] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=7, fibo1(n-1)=8, fibo1(n-2)=5, n=7] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=8, fibo2(n-1)=13, n=8] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=6] [L18] COND FALSE !(n < 1) VAL [\old(n)=6, n=6] [L20] COND FALSE !(n == 1) VAL [\old(n)=6, n=6] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=5] [L8] COND FALSE !(n < 1) VAL [\old(n)=5, n=5] [L10] COND FALSE !(n == 1) VAL [\old(n)=5, n=5] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=4] [L18] COND FALSE !(n < 1) VAL [\old(n)=4, n=4] [L20] COND FALSE !(n == 1) VAL [\old(n)=4, n=4] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=3] [L8] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L10] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=3, fibo2(n-1)=1, n=3] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=3, fibo2(n-1)=1, fibo2(n-2)=1, n=3] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=4, fibo1(n-1)=2, n=4] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=4, fibo1(n-1)=2, fibo1(n-2)=1, n=4] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=5, fibo2(n-1)=3, n=5] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=3] [L18] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L20] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=3, fibo1(n-1)=1, n=3] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=3, fibo1(n-1)=1, fibo1(n-2)=1, n=3] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=5, fibo2(n-1)=3, fibo2(n-2)=2, n=5] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=6, fibo1(n-1)=5, n=6] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=4] [L8] COND FALSE !(n < 1) VAL [\old(n)=4, n=4] [L10] COND FALSE !(n == 1) VAL [\old(n)=4, n=4] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=3] [L18] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L20] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=3, fibo1(n-1)=1, n=3] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=3, fibo1(n-1)=1, fibo1(n-2)=1, n=3] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=4, fibo2(n-1)=2, n=4] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=4, fibo2(n-1)=2, fibo2(n-2)=1, n=4] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=6, fibo1(n-1)=5, fibo1(n-2)=3, n=6] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=8, fibo2(n-1)=13, fibo2(n-2)=8, n=8] [L13] return fibo2(n-1) + fibo2(n-2); [L37] RET, EXPR fibo1(x) VAL [fibo1(x)=21, x=8] [L37] int result = fibo1(x); [L38] COND TRUE result == 21 VAL [result=21, x=8] [L39] __VERIFIER_error() VAL [result=21, x=8] ----- [2018-11-23 03:49:54,171 INFO L145 WitnessManager]: Wrote witness to /tmp/vcloud-vcloud-master/worker/working_dir_f22459a1-a411-4dcf-ba49-8d6c9a8e774e/bin-2019/utaipan/witness.graphml [2018-11-23 03:49:54,171 INFO L132 PluginConnector]: ------------------------ END Witness Printer---------------------------- [2018-11-23 03:49:54,172 INFO L168 Benchmark]: Toolchain (without parser) took 42711.66 ms. Allocated memory was 1.0 GB in the beginning and 3.7 GB in the end (delta: 2.7 GB). Free memory was 959.2 MB in the beginning and 2.5 GB in the end (delta: -1.5 GB). Peak memory consumption was 1.2 GB. Max. memory is 11.5 GB. [2018-11-23 03:49:54,172 INFO L168 Benchmark]: CDTParser took 0.16 ms. Allocated memory is still 1.0 GB. Free memory is still 985.6 MB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-23 03:49:54,173 INFO L168 Benchmark]: CACSL2BoogieTranslator took 167.77 ms. Allocated memory is still 1.0 GB. Free memory was 959.2 MB in the beginning and 948.5 MB in the end (delta: 10.7 MB). Peak memory consumption was 10.7 MB. Max. memory is 11.5 GB. [2018-11-23 03:49:54,173 INFO L168 Benchmark]: Boogie Procedure Inliner took 11.67 ms. Allocated memory is still 1.0 GB. Free memory was 948.5 MB in the beginning and 945.8 MB in the end (delta: 2.7 MB). Peak memory consumption was 2.7 MB. Max. memory is 11.5 GB. [2018-11-23 03:49:54,173 INFO L168 Benchmark]: Boogie Preprocessor took 10.84 ms. Allocated memory is still 1.0 GB. Free memory is still 945.8 MB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-23 03:49:54,173 INFO L168 Benchmark]: RCFGBuilder took 192.66 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 140.5 MB). Free memory was 945.8 MB in the beginning and 1.1 GB in the end (delta: -180.5 MB). Peak memory consumption was 14.5 MB. Max. memory is 11.5 GB. [2018-11-23 03:49:54,174 INFO L168 Benchmark]: TraceAbstraction took 37749.28 ms. Allocated memory was 1.2 GB in the beginning and 3.7 GB in the end (delta: 2.5 GB). Free memory was 1.1 GB in the beginning and 2.5 GB in the end (delta: -1.4 GB). Peak memory consumption was 1.1 GB. Max. memory is 11.5 GB. [2018-11-23 03:49:54,174 INFO L168 Benchmark]: Witness Printer took 4576.16 ms. Allocated memory is still 3.7 GB. Free memory was 2.5 GB in the beginning and 2.5 GB in the end (delta: 52.8 MB). Peak memory consumption was 52.8 MB. Max. memory is 11.5 GB. [2018-11-23 03:49:54,175 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.16 ms. Allocated memory is still 1.0 GB. Free memory is still 985.6 MB. There was no memory consumed. Max. memory is 11.5 GB. * CACSL2BoogieTranslator took 167.77 ms. Allocated memory is still 1.0 GB. Free memory was 959.2 MB in the beginning and 948.5 MB in the end (delta: 10.7 MB). Peak memory consumption was 10.7 MB. Max. memory is 11.5 GB. * Boogie Procedure Inliner took 11.67 ms. Allocated memory is still 1.0 GB. Free memory was 948.5 MB in the beginning and 945.8 MB in the end (delta: 2.7 MB). Peak memory consumption was 2.7 MB. Max. memory is 11.5 GB. * Boogie Preprocessor took 10.84 ms. Allocated memory is still 1.0 GB. Free memory is still 945.8 MB. There was no memory consumed. Max. memory is 11.5 GB. * RCFGBuilder took 192.66 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 140.5 MB). Free memory was 945.8 MB in the beginning and 1.1 GB in the end (delta: -180.5 MB). Peak memory consumption was 14.5 MB. Max. memory is 11.5 GB. * TraceAbstraction took 37749.28 ms. Allocated memory was 1.2 GB in the beginning and 3.7 GB in the end (delta: 2.5 GB). Free memory was 1.1 GB in the beginning and 2.5 GB in the end (delta: -1.4 GB). Peak memory consumption was 1.1 GB. Max. memory is 11.5 GB. * Witness Printer took 4576.16 ms. Allocated memory is still 3.7 GB. Free memory was 2.5 GB in the beginning and 2.5 GB in the end (delta: 52.8 MB). Peak memory consumption was 52.8 MB. Max. memory is 11.5 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - CounterExampleResult [Line: 39]: a call of __VERIFIER_error() is reachable a call of __VERIFIER_error() is reachable We found a FailurePath: [L36] int x = 8; VAL [x=8] [L37] CALL, EXPR fibo1(x) VAL [\old(n)=8] [L8] COND FALSE !(n < 1) VAL [\old(n)=8, n=8] [L10] COND FALSE !(n == 1) VAL [\old(n)=8, n=8] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=7] [L18] COND FALSE !(n < 1) VAL [\old(n)=7, n=7] [L20] COND FALSE !(n == 1) VAL [\old(n)=7, n=7] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=6] [L8] COND FALSE !(n < 1) VAL [\old(n)=6, n=6] [L10] COND FALSE !(n == 1) VAL [\old(n)=6, n=6] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=5] [L18] COND FALSE !(n < 1) VAL [\old(n)=5, n=5] [L20] COND FALSE !(n == 1) VAL [\old(n)=5, n=5] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=4] [L8] COND FALSE !(n < 1) VAL [\old(n)=4, n=4] [L10] COND FALSE !(n == 1) VAL [\old(n)=4, n=4] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=3] [L18] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L20] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=3, fibo1(n-1)=1, n=3] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=3, fibo1(n-1)=1, fibo1(n-2)=1, n=3] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=4, fibo2(n-1)=2, n=4] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=4, fibo2(n-1)=2, fibo2(n-2)=1, n=4] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=5, fibo1(n-1)=3, n=5] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=3] [L8] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L10] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=3, fibo2(n-1)=1, n=3] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=3, fibo2(n-1)=1, fibo2(n-2)=1, n=3] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=5, fibo1(n-1)=3, fibo1(n-2)=2, n=5] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=6, fibo2(n-1)=5, n=6] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=4] [L18] COND FALSE !(n < 1) VAL [\old(n)=4, n=4] [L20] COND FALSE !(n == 1) VAL [\old(n)=4, n=4] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=3] [L8] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L10] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=3, fibo2(n-1)=1, n=3] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=3, fibo2(n-1)=1, fibo2(n-2)=1, n=3] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=4, fibo1(n-1)=2, n=4] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=4, fibo1(n-1)=2, fibo1(n-2)=1, n=4] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=6, fibo2(n-1)=5, fibo2(n-2)=3, n=6] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=7, fibo1(n-1)=8, n=7] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=5] [L8] COND FALSE !(n < 1) VAL [\old(n)=5, n=5] [L10] COND FALSE !(n == 1) VAL [\old(n)=5, n=5] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=4] [L18] COND FALSE !(n < 1) VAL [\old(n)=4, n=4] [L20] COND FALSE !(n == 1) VAL [\old(n)=4, n=4] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=3] [L8] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L10] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=3, fibo2(n-1)=1, n=3] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=3, fibo2(n-1)=1, fibo2(n-2)=1, n=3] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=4, fibo1(n-1)=2, n=4] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=4, fibo1(n-1)=2, fibo1(n-2)=1, n=4] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=5, fibo2(n-1)=3, n=5] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=3] [L18] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L20] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=3, fibo1(n-1)=1, n=3] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=3, fibo1(n-1)=1, fibo1(n-2)=1, n=3] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=5, fibo2(n-1)=3, fibo2(n-2)=2, n=5] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=7, fibo1(n-1)=8, fibo1(n-2)=5, n=7] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=8, fibo2(n-1)=13, n=8] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=6] [L18] COND FALSE !(n < 1) VAL [\old(n)=6, n=6] [L20] COND FALSE !(n == 1) VAL [\old(n)=6, n=6] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=5] [L8] COND FALSE !(n < 1) VAL [\old(n)=5, n=5] [L10] COND FALSE !(n == 1) VAL [\old(n)=5, n=5] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=4] [L18] COND FALSE !(n < 1) VAL [\old(n)=4, n=4] [L20] COND FALSE !(n == 1) VAL [\old(n)=4, n=4] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=3] [L8] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L10] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=3, fibo2(n-1)=1, n=3] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=3, fibo2(n-1)=1, fibo2(n-2)=1, n=3] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=4, fibo1(n-1)=2, n=4] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=4, fibo1(n-1)=2, fibo1(n-2)=1, n=4] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=5, fibo2(n-1)=3, n=5] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=3] [L18] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L20] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=3, fibo1(n-1)=1, n=3] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=3, fibo1(n-1)=1, fibo1(n-2)=1, n=3] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=5, fibo2(n-1)=3, fibo2(n-2)=2, n=5] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=6, fibo1(n-1)=5, n=6] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=4] [L8] COND FALSE !(n < 1) VAL [\old(n)=4, n=4] [L10] COND FALSE !(n == 1) VAL [\old(n)=4, n=4] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=3] [L18] COND FALSE !(n < 1) VAL [\old(n)=3, n=3] [L20] COND FALSE !(n == 1) VAL [\old(n)=3, n=3] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=2] [L8] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L10] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L13] CALL, EXPR fibo2(n-1) VAL [\old(n)=1] [L18] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L20] COND TRUE n == 1 [L21] return 1; VAL [\old(n)=1, \result=1, n=1] [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=2, fibo2(n-1)=1, n=2] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=0] [L18] COND TRUE n < 1 [L19] return 0; VAL [\old(n)=0, \result=0, n=0] [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=2, fibo2(n-1)=1, fibo2(n-2)=0, n=2] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=3, fibo1(n-1)=1, n=3] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=3, fibo1(n-1)=1, fibo1(n-2)=1, n=3] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-1) VAL [\old(n)=4, fibo2(n-1)=2, n=4] [L13] CALL, EXPR fibo2(n-2) VAL [\old(n)=2] [L18] COND FALSE !(n < 1) VAL [\old(n)=2, n=2] [L20] COND FALSE !(n == 1) VAL [\old(n)=2, n=2] [L23] CALL, EXPR fibo1(n-1) VAL [\old(n)=1] [L8] COND FALSE !(n < 1) VAL [\old(n)=1, n=1] [L10] COND TRUE n == 1 [L11] return 1; VAL [\old(n)=1, \result=1, n=1] [L23] RET, EXPR fibo1(n-1) VAL [\old(n)=2, fibo1(n-1)=1, n=2] [L23] CALL, EXPR fibo1(n-2) VAL [\old(n)=0] [L8] COND TRUE n < 1 [L9] return 0; VAL [\old(n)=0, \result=0, n=0] [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=2, fibo1(n-1)=1, fibo1(n-2)=0, n=2] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=4, fibo2(n-1)=2, fibo2(n-2)=1, n=4] [L13] return fibo2(n-1) + fibo2(n-2); [L23] RET, EXPR fibo1(n-2) VAL [\old(n)=6, fibo1(n-1)=5, fibo1(n-2)=3, n=6] [L23] return fibo1(n-1) + fibo1(n-2); [L13] RET, EXPR fibo2(n-2) VAL [\old(n)=8, fibo2(n-1)=13, fibo2(n-2)=8, n=8] [L13] return fibo2(n-1) + fibo2(n-2); [L37] RET, EXPR fibo1(x) VAL [fibo1(x)=21, x=8] [L37] int result = fibo1(x); [L38] COND TRUE result == 21 VAL [result=21, x=8] [L39] __VERIFIER_error() VAL [result=21, x=8] - StatisticsResult: Ultimate Automizer benchmark data CFG has 5 procedures, 33 locations, 1 error locations. UNSAFE Result, 37.7s OverallTime, 22 OverallIterations, 46 TraceHistogramMax, 7.5s AutomataDifference, 0.0s DeadEndRemovalTime, 0.0s HoareAnnotationTime, HoareTripleCheckerStatistics: 803 SDtfs, 1275 SDslu, 6517 SDs, 0 SdLazy, 8343 SolverSat, 1348 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 3.3s Time, PredicateUnifierStatistics: 8 DeclaredPredicates, 10977 GetRequests, 10181 SyntacticMatches, 181 SemanticMatches, 615 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 5355 ImplicationChecksByTransitivity, 6.1s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=312occurred in iteration=17, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 9.5s AbstIntTime, 5 AbstIntIterations, 4 AbstIntStrong, 0.8604060913705583 AbsIntWeakeningRatio, 0.5685279187817259 AbsIntAvgWeakeningVarsNumRemoved, 0.20812182741116753 AbsIntAvgWeakenedConjuncts, 0.0s DumpTime, AutomataMinimizationStatistics: 0.2s AutomataMinimizationTime, 21 MinimizatonAttempts, 461 StatesRemovedByMinimization, 17 NontrivialMinimizations, HoareAnnotationStatistics: No data available, RefinementEngineStatistics: TraceCheckStatistics: 0.2s SsaConstructionTime, 0.8s SatisfiabilityAnalysisTime, 16.0s InterpolantComputationTime, 11021 NumberOfCodeBlocks, 9517 NumberOfCodeBlocksAsserted, 75 NumberOfCheckSat, 15672 ConstructedInterpolants, 0 QuantifiedInterpolants, 8597531 SizeOfPredicates, 102 NumberOfNonLiveVariables, 7979 ConjunctsInSsa, 199 ConjunctsInUnsatCore, 51 InterpolantComputations, 2 PerfectInterpolantSequences, 179356/193004 InterpolantCoveringCapability, InvariantSynthesisStatistics: No data available, InterpolantConsolidationStatistics: No data available, ReuseStatistics: No data available RESULT: Ultimate proved your program to be incorrect! Received shutdown request...