java -ea -Xmx8000000000 -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc ../../../trunk/examples/toolchains/AutomizerCInline_WitnessPrinter.xml -s ../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Bitvector.epf -i ../../../trunk/examples/svcomp/reducercommutativity/rangesum05_false-unreach-call_true-termination.i -------------------------------------------------------------------------------- This is Ultimate 0.1.23-61f4311 [2018-11-23 10:17:44,081 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 10:17:44,085 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 10:17:44,102 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 10:17:44,102 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 10:17:44,104 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 10:17:44,106 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 10:17:44,108 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 10:17:44,111 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 10:17:44,118 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 10:17:44,122 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 10:17:44,123 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 10:17:44,124 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 10:17:44,127 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 10:17:44,128 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 10:17:44,129 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 10:17:44,131 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 10:17:44,135 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 10:17:44,139 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 10:17:44,143 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 10:17:44,144 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 10:17:44,147 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 10:17:44,149 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 10:17:44,149 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 10:17:44,152 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 10:17:44,153 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 10:17:44,154 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 10:17:44,156 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 10:17:44,157 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 10:17:44,158 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 10:17:44,158 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 10:17:44,159 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 10:17:44,159 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 10:17:44,159 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 10:17:44,161 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 10:17:44,162 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 10:17:44,162 INFO L98 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Bitvector.epf [2018-11-23 10:17:44,192 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 10:17:44,192 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 10:17:44,196 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 10:17:44,196 INFO L133 SettingsManager]: * ... calls to implemented procedures=ONLY_FOR_CONCURRENT_PROGRAMS [2018-11-23 10:17:44,197 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-23 10:17:44,197 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-23 10:17:44,197 INFO L133 SettingsManager]: * Use SBE=true [2018-11-23 10:17:44,197 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 10:17:44,199 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 10:17:44,199 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 10:17:44,199 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 10:17:44,199 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 10:17:44,199 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 10:17:44,200 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 10:17:44,200 INFO L133 SettingsManager]: * Use bitvectors instead of ints=true [2018-11-23 10:17:44,200 INFO L133 SettingsManager]: * Memory model=HoenickeLindenmann_4ByteResolution [2018-11-23 10:17:44,200 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 10:17:44,200 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 10:17:44,201 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 10:17:44,201 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 10:17:44,201 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 10:17:44,201 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-23 10:17:44,201 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 10:17:44,202 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-23 10:17:44,202 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 10:17:44,202 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 10:17:44,202 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 10:17:44,202 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 10:17:44,202 INFO L133 SettingsManager]: * Trace refinement strategy=WOLF [2018-11-23 10:17:44,204 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 10:17:44,204 INFO L133 SettingsManager]: * Command for external solver=cvc4nyu --tear-down-incremental --rewrite-divk --print-success --lang smt [2018-11-23 10:17:44,204 INFO L133 SettingsManager]: * Logic for external solver=AUFBV [2018-11-23 10:17:44,205 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-11-23 10:17:44,275 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 10:17:44,292 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 10:17:44,297 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 10:17:44,299 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 10:17:44,299 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 10:17:44,300 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/reducercommutativity/rangesum05_false-unreach-call_true-termination.i [2018-11-23 10:17:44,384 INFO L221 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/2288b79c6/8a3386637cd046a2825d241a3b9d296f/FLAGd4f4484a6 [2018-11-23 10:17:44,810 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 10:17:44,811 INFO L161 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/reducercommutativity/rangesum05_false-unreach-call_true-termination.i [2018-11-23 10:17:44,818 INFO L355 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/2288b79c6/8a3386637cd046a2825d241a3b9d296f/FLAGd4f4484a6 [2018-11-23 10:17:45,176 INFO L363 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/2288b79c6/8a3386637cd046a2825d241a3b9d296f [2018-11-23 10:17:45,187 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 10:17:45,189 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 10:17:45,190 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 10:17:45,190 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 10:17:45,195 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 10:17:45,197 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 10:17:45" (1/1) ... [2018-11-23 10:17:45,200 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@33a97119 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:17:45, skipping insertion in model container [2018-11-23 10:17:45,200 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 10:17:45" (1/1) ... [2018-11-23 10:17:45,212 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 10:17:45,244 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 10:17:45,474 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 10:17:45,488 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 10:17:45,527 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 10:17:45,549 INFO L195 MainTranslator]: Completed translation [2018-11-23 10:17:45,549 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:17:45 WrapperNode [2018-11-23 10:17:45,550 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 10:17:45,551 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 10:17:45,551 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 10:17:45,551 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 10:17:45,560 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:17:45" (1/1) ... [2018-11-23 10:17:45,570 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:17:45" (1/1) ... [2018-11-23 10:17:45,578 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 10:17:45,579 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 10:17:45,579 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 10:17:45,579 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 10:17:45,588 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:17:45" (1/1) ... [2018-11-23 10:17:45,588 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:17:45" (1/1) ... [2018-11-23 10:17:45,592 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:17:45" (1/1) ... [2018-11-23 10:17:45,592 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:17:45" (1/1) ... [2018-11-23 10:17:45,612 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:17:45" (1/1) ... [2018-11-23 10:17:45,619 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:17:45" (1/1) ... [2018-11-23 10:17:45,621 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:17:45" (1/1) ... [2018-11-23 10:17:45,624 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 10:17:45,625 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 10:17:45,625 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 10:17:45,625 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 10:17:45,626 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:17:45" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 10:17:45,747 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-23 10:17:45,748 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-23 10:17:45,748 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-23 10:17:45,748 INFO L130 BoogieDeclarations]: Found specification of procedure read~intINTTYPE4 [2018-11-23 10:17:45,748 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 10:17:45,748 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 10:17:45,748 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-23 10:17:45,748 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-23 10:17:45,749 INFO L130 BoogieDeclarations]: Found specification of procedure rangesum [2018-11-23 10:17:45,749 INFO L138 BoogieDeclarations]: Found implementation of procedure rangesum [2018-11-23 10:17:45,749 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-23 10:17:45,749 INFO L130 BoogieDeclarations]: Found specification of procedure write~intINTTYPE4 [2018-11-23 10:17:45,749 INFO L130 BoogieDeclarations]: Found specification of procedure init_nondet [2018-11-23 10:17:45,750 INFO L138 BoogieDeclarations]: Found implementation of procedure init_nondet [2018-11-23 10:17:46,971 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 10:17:46,972 INFO L280 CfgBuilder]: Removed 3 assue(true) statements. [2018-11-23 10:17:46,972 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 10:17:46 BoogieIcfgContainer [2018-11-23 10:17:46,972 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 10:17:46,974 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-23 10:17:46,974 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-23 10:17:46,979 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-23 10:17:46,980 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 23.11 10:17:45" (1/3) ... [2018-11-23 10:17:46,981 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@36d69152 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 10:17:46, skipping insertion in model container [2018-11-23 10:17:46,981 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:17:45" (2/3) ... [2018-11-23 10:17:46,982 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@36d69152 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 10:17:46, skipping insertion in model container [2018-11-23 10:17:46,982 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 10:17:46" (3/3) ... [2018-11-23 10:17:46,984 INFO L112 eAbstractionObserver]: Analyzing ICFG rangesum05_false-unreach-call_true-termination.i [2018-11-23 10:17:46,992 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-23 10:17:46,999 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-23 10:17:47,014 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-23 10:17:47,045 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-23 10:17:47,046 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-23 10:17:47,046 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-23 10:17:47,046 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-23 10:17:47,046 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-23 10:17:47,047 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-23 10:17:47,047 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-23 10:17:47,047 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-23 10:17:47,047 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-23 10:17:47,065 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states. [2018-11-23 10:17:47,072 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 38 [2018-11-23 10:17:47,072 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:17:47,073 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 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 10:17:47,076 INFO L423 AbstractCegarLoop]: === Iteration 1 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:17:47,081 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:17:47,081 INFO L82 PathProgramCache]: Analyzing trace with hash -332770493, now seen corresponding path program 1 times [2018-11-23 10:17:47,086 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:17:47,087 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 2 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:17:47,112 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 10:17:47,221 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:17:47,262 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:17:47,268 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:17:47,459 INFO L256 TraceCheckUtils]: 0: Hoare triple {40#true} call ULTIMATE.init(); {40#true} is VALID [2018-11-23 10:17:47,463 INFO L273 TraceCheckUtils]: 1: Hoare triple {40#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {40#true} is VALID [2018-11-23 10:17:47,464 INFO L273 TraceCheckUtils]: 2: Hoare triple {40#true} assume true; {40#true} is VALID [2018-11-23 10:17:47,464 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {40#true} {40#true} #78#return; {40#true} is VALID [2018-11-23 10:17:47,464 INFO L256 TraceCheckUtils]: 4: Hoare triple {40#true} call #t~ret12 := main(); {40#true} is VALID [2018-11-23 10:17:47,465 INFO L273 TraceCheckUtils]: 5: Hoare triple {40#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {40#true} is VALID [2018-11-23 10:17:47,465 INFO L256 TraceCheckUtils]: 6: Hoare triple {40#true} call init_nondet(~#x~0.base, ~#x~0.offset); {40#true} is VALID [2018-11-23 10:17:47,465 INFO L273 TraceCheckUtils]: 7: Hoare triple {40#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {40#true} is VALID [2018-11-23 10:17:47,466 INFO L273 TraceCheckUtils]: 8: Hoare triple {40#true} assume !~bvslt32(~i~0, 5bv32); {40#true} is VALID [2018-11-23 10:17:47,466 INFO L273 TraceCheckUtils]: 9: Hoare triple {40#true} assume true; {40#true} is VALID [2018-11-23 10:17:47,466 INFO L268 TraceCheckUtils]: 10: Hoare quadruple {40#true} {40#true} #82#return; {40#true} is VALID [2018-11-23 10:17:47,467 INFO L273 TraceCheckUtils]: 11: Hoare triple {40#true} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {40#true} is VALID [2018-11-23 10:17:47,467 INFO L256 TraceCheckUtils]: 12: Hoare triple {40#true} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {40#true} is VALID [2018-11-23 10:17:47,467 INFO L273 TraceCheckUtils]: 13: Hoare triple {40#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {40#true} is VALID [2018-11-23 10:17:47,468 INFO L273 TraceCheckUtils]: 14: Hoare triple {40#true} assume !true; {41#false} is VALID [2018-11-23 10:17:47,468 INFO L273 TraceCheckUtils]: 15: Hoare triple {41#false} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {41#false} is VALID [2018-11-23 10:17:47,469 INFO L273 TraceCheckUtils]: 16: Hoare triple {41#false} assume true; {41#false} is VALID [2018-11-23 10:17:47,469 INFO L268 TraceCheckUtils]: 17: Hoare quadruple {41#false} {40#true} #84#return; {41#false} is VALID [2018-11-23 10:17:47,469 INFO L273 TraceCheckUtils]: 18: Hoare triple {41#false} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {41#false} is VALID [2018-11-23 10:17:47,470 INFO L256 TraceCheckUtils]: 19: Hoare triple {41#false} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {41#false} is VALID [2018-11-23 10:17:47,470 INFO L273 TraceCheckUtils]: 20: Hoare triple {41#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {41#false} is VALID [2018-11-23 10:17:47,470 INFO L273 TraceCheckUtils]: 21: Hoare triple {41#false} assume !true; {41#false} is VALID [2018-11-23 10:17:47,471 INFO L273 TraceCheckUtils]: 22: Hoare triple {41#false} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {41#false} is VALID [2018-11-23 10:17:47,471 INFO L273 TraceCheckUtils]: 23: Hoare triple {41#false} assume true; {41#false} is VALID [2018-11-23 10:17:47,472 INFO L268 TraceCheckUtils]: 24: Hoare quadruple {41#false} {41#false} #86#return; {41#false} is VALID [2018-11-23 10:17:47,472 INFO L273 TraceCheckUtils]: 25: Hoare triple {41#false} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {41#false} is VALID [2018-11-23 10:17:47,473 INFO L273 TraceCheckUtils]: 26: Hoare triple {41#false} assume !~bvslt32(~i~2, 4bv32); {41#false} is VALID [2018-11-23 10:17:47,473 INFO L273 TraceCheckUtils]: 27: Hoare triple {41#false} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {41#false} is VALID [2018-11-23 10:17:47,473 INFO L256 TraceCheckUtils]: 28: Hoare triple {41#false} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {41#false} is VALID [2018-11-23 10:17:47,473 INFO L273 TraceCheckUtils]: 29: Hoare triple {41#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {41#false} is VALID [2018-11-23 10:17:47,474 INFO L273 TraceCheckUtils]: 30: Hoare triple {41#false} assume !true; {41#false} is VALID [2018-11-23 10:17:47,474 INFO L273 TraceCheckUtils]: 31: Hoare triple {41#false} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {41#false} is VALID [2018-11-23 10:17:47,474 INFO L273 TraceCheckUtils]: 32: Hoare triple {41#false} assume true; {41#false} is VALID [2018-11-23 10:17:47,474 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {41#false} {41#false} #88#return; {41#false} is VALID [2018-11-23 10:17:47,475 INFO L273 TraceCheckUtils]: 34: Hoare triple {41#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {41#false} is VALID [2018-11-23 10:17:47,475 INFO L273 TraceCheckUtils]: 35: Hoare triple {41#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {41#false} is VALID [2018-11-23 10:17:47,475 INFO L273 TraceCheckUtils]: 36: Hoare triple {41#false} assume !false; {41#false} is VALID [2018-11-23 10:17:47,483 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 11 trivial. 0 not checked. [2018-11-23 10:17:47,484 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 10:17:47,489 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 10:17:47,491 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2018-11-23 10:17:47,499 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 37 [2018-11-23 10:17:47,503 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:17:47,506 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states. [2018-11-23 10:17:47,768 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 31 edges. 31 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:17:47,768 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2018-11-23 10:17:47,776 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2018-11-23 10:17:47,777 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-23 10:17:47,779 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 2 states. [2018-11-23 10:17:48,050 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:48,050 INFO L93 Difference]: Finished difference Result 64 states and 85 transitions. [2018-11-23 10:17:48,050 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2018-11-23 10:17:48,051 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 37 [2018-11-23 10:17:48,051 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:17:48,052 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-23 10:17:48,064 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 85 transitions. [2018-11-23 10:17:48,064 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-23 10:17:48,071 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 85 transitions. [2018-11-23 10:17:48,071 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states and 85 transitions. [2018-11-23 10:17:48,917 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 85 edges. 85 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:17:48,931 INFO L225 Difference]: With dead ends: 64 [2018-11-23 10:17:48,931 INFO L226 Difference]: Without dead ends: 32 [2018-11-23 10:17:48,935 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 36 GetRequests, 36 SyntacticMatches, 0 SemanticMatches, 0 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-23 10:17:48,955 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 32 states. [2018-11-23 10:17:49,007 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 32 to 32. [2018-11-23 10:17:49,008 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:17:49,009 INFO L82 GeneralOperation]: Start isEquivalent. First operand 32 states. Second operand 32 states. [2018-11-23 10:17:49,009 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 32 states. [2018-11-23 10:17:49,010 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 32 states. [2018-11-23 10:17:49,016 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:49,016 INFO L93 Difference]: Finished difference Result 32 states and 38 transitions. [2018-11-23 10:17:49,016 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 38 transitions. [2018-11-23 10:17:49,017 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:17:49,018 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:17:49,018 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 32 states. [2018-11-23 10:17:49,018 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 32 states. [2018-11-23 10:17:49,024 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:49,024 INFO L93 Difference]: Finished difference Result 32 states and 38 transitions. [2018-11-23 10:17:49,025 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 38 transitions. [2018-11-23 10:17:49,025 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:17:49,026 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:17:49,026 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:17:49,026 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:17:49,026 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 32 states. [2018-11-23 10:17:49,032 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 38 transitions. [2018-11-23 10:17:49,037 INFO L78 Accepts]: Start accepts. Automaton has 32 states and 38 transitions. Word has length 37 [2018-11-23 10:17:49,037 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:17:49,037 INFO L480 AbstractCegarLoop]: Abstraction has 32 states and 38 transitions. [2018-11-23 10:17:49,038 INFO L481 AbstractCegarLoop]: Interpolant automaton has 2 states. [2018-11-23 10:17:49,038 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 38 transitions. [2018-11-23 10:17:49,040 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 38 [2018-11-23 10:17:49,040 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:17:49,040 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 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 10:17:49,041 INFO L423 AbstractCegarLoop]: === Iteration 2 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:17:49,041 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:17:49,041 INFO L82 PathProgramCache]: Analyzing trace with hash -991975144, now seen corresponding path program 1 times [2018-11-23 10:17:49,042 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:17:49,042 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 3 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:17:49,062 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 10:17:49,101 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:17:49,146 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:17:49,150 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:17:49,345 INFO L256 TraceCheckUtils]: 0: Hoare triple {344#true} call ULTIMATE.init(); {344#true} is VALID [2018-11-23 10:17:49,346 INFO L273 TraceCheckUtils]: 1: Hoare triple {344#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {344#true} is VALID [2018-11-23 10:17:49,346 INFO L273 TraceCheckUtils]: 2: Hoare triple {344#true} assume true; {344#true} is VALID [2018-11-23 10:17:49,346 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {344#true} {344#true} #78#return; {344#true} is VALID [2018-11-23 10:17:49,346 INFO L256 TraceCheckUtils]: 4: Hoare triple {344#true} call #t~ret12 := main(); {344#true} is VALID [2018-11-23 10:17:49,347 INFO L273 TraceCheckUtils]: 5: Hoare triple {344#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {344#true} is VALID [2018-11-23 10:17:49,347 INFO L256 TraceCheckUtils]: 6: Hoare triple {344#true} call init_nondet(~#x~0.base, ~#x~0.offset); {344#true} is VALID [2018-11-23 10:17:49,347 INFO L273 TraceCheckUtils]: 7: Hoare triple {344#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {344#true} is VALID [2018-11-23 10:17:49,347 INFO L273 TraceCheckUtils]: 8: Hoare triple {344#true} assume !~bvslt32(~i~0, 5bv32); {344#true} is VALID [2018-11-23 10:17:49,348 INFO L273 TraceCheckUtils]: 9: Hoare triple {344#true} assume true; {344#true} is VALID [2018-11-23 10:17:49,348 INFO L268 TraceCheckUtils]: 10: Hoare quadruple {344#true} {344#true} #82#return; {344#true} is VALID [2018-11-23 10:17:49,348 INFO L273 TraceCheckUtils]: 11: Hoare triple {344#true} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {344#true} is VALID [2018-11-23 10:17:49,349 INFO L256 TraceCheckUtils]: 12: Hoare triple {344#true} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {344#true} is VALID [2018-11-23 10:17:49,355 INFO L273 TraceCheckUtils]: 13: Hoare triple {344#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {388#(= (_ bv0 32) rangesum_~cnt~0)} is VALID [2018-11-23 10:17:49,356 INFO L273 TraceCheckUtils]: 14: Hoare triple {388#(= (_ bv0 32) rangesum_~cnt~0)} assume !~bvslt32(~i~1, 5bv32); {388#(= (_ bv0 32) rangesum_~cnt~0)} is VALID [2018-11-23 10:17:49,357 INFO L273 TraceCheckUtils]: 15: Hoare triple {388#(= (_ bv0 32) rangesum_~cnt~0)} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {345#false} is VALID [2018-11-23 10:17:49,357 INFO L273 TraceCheckUtils]: 16: Hoare triple {345#false} assume true; {345#false} is VALID [2018-11-23 10:17:49,357 INFO L268 TraceCheckUtils]: 17: Hoare quadruple {345#false} {344#true} #84#return; {345#false} is VALID [2018-11-23 10:17:49,358 INFO L273 TraceCheckUtils]: 18: Hoare triple {345#false} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {345#false} is VALID [2018-11-23 10:17:49,358 INFO L256 TraceCheckUtils]: 19: Hoare triple {345#false} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {345#false} is VALID [2018-11-23 10:17:49,358 INFO L273 TraceCheckUtils]: 20: Hoare triple {345#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {345#false} is VALID [2018-11-23 10:17:49,358 INFO L273 TraceCheckUtils]: 21: Hoare triple {345#false} assume !~bvslt32(~i~1, 5bv32); {345#false} is VALID [2018-11-23 10:17:49,359 INFO L273 TraceCheckUtils]: 22: Hoare triple {345#false} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {345#false} is VALID [2018-11-23 10:17:49,359 INFO L273 TraceCheckUtils]: 23: Hoare triple {345#false} assume true; {345#false} is VALID [2018-11-23 10:17:49,360 INFO L268 TraceCheckUtils]: 24: Hoare quadruple {345#false} {345#false} #86#return; {345#false} is VALID [2018-11-23 10:17:49,360 INFO L273 TraceCheckUtils]: 25: Hoare triple {345#false} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {345#false} is VALID [2018-11-23 10:17:49,361 INFO L273 TraceCheckUtils]: 26: Hoare triple {345#false} assume !~bvslt32(~i~2, 4bv32); {345#false} is VALID [2018-11-23 10:17:49,361 INFO L273 TraceCheckUtils]: 27: Hoare triple {345#false} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {345#false} is VALID [2018-11-23 10:17:49,361 INFO L256 TraceCheckUtils]: 28: Hoare triple {345#false} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {345#false} is VALID [2018-11-23 10:17:49,362 INFO L273 TraceCheckUtils]: 29: Hoare triple {345#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {345#false} is VALID [2018-11-23 10:17:49,362 INFO L273 TraceCheckUtils]: 30: Hoare triple {345#false} assume !~bvslt32(~i~1, 5bv32); {345#false} is VALID [2018-11-23 10:17:49,362 INFO L273 TraceCheckUtils]: 31: Hoare triple {345#false} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {345#false} is VALID [2018-11-23 10:17:49,363 INFO L273 TraceCheckUtils]: 32: Hoare triple {345#false} assume true; {345#false} is VALID [2018-11-23 10:17:49,363 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {345#false} {345#false} #88#return; {345#false} is VALID [2018-11-23 10:17:49,363 INFO L273 TraceCheckUtils]: 34: Hoare triple {345#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {345#false} is VALID [2018-11-23 10:17:49,364 INFO L273 TraceCheckUtils]: 35: Hoare triple {345#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {345#false} is VALID [2018-11-23 10:17:49,364 INFO L273 TraceCheckUtils]: 36: Hoare triple {345#false} assume !false; {345#false} is VALID [2018-11-23 10:17:49,367 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 6 proven. 0 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2018-11-23 10:17:49,367 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 10:17:49,369 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 10:17:49,369 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2018-11-23 10:17:49,371 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 37 [2018-11-23 10:17:49,372 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:17:49,372 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2018-11-23 10:17:49,650 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 32 edges. 32 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:17:49,651 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2018-11-23 10:17:49,651 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2018-11-23 10:17:49,651 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 10:17:49,652 INFO L87 Difference]: Start difference. First operand 32 states and 38 transitions. Second operand 3 states. [2018-11-23 10:17:50,128 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:50,129 INFO L93 Difference]: Finished difference Result 56 states and 74 transitions. [2018-11-23 10:17:50,130 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2018-11-23 10:17:50,130 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 37 [2018-11-23 10:17:50,130 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:17:50,131 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2018-11-23 10:17:50,135 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 74 transitions. [2018-11-23 10:17:50,136 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2018-11-23 10:17:50,140 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 74 transitions. [2018-11-23 10:17:50,140 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 74 transitions. [2018-11-23 10:17:50,562 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 74 edges. 74 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:17:50,565 INFO L225 Difference]: With dead ends: 56 [2018-11-23 10:17:50,565 INFO L226 Difference]: Without dead ends: 38 [2018-11-23 10:17:50,566 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 36 GetRequests, 35 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 10:17:50,567 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 38 states. [2018-11-23 10:17:50,594 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 38 to 36. [2018-11-23 10:17:50,594 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:17:50,594 INFO L82 GeneralOperation]: Start isEquivalent. First operand 38 states. Second operand 36 states. [2018-11-23 10:17:50,594 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 36 states. [2018-11-23 10:17:50,594 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 36 states. [2018-11-23 10:17:50,599 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:50,599 INFO L93 Difference]: Finished difference Result 38 states and 48 transitions. [2018-11-23 10:17:50,600 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 48 transitions. [2018-11-23 10:17:50,601 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:17:50,601 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:17:50,601 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 38 states. [2018-11-23 10:17:50,601 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 38 states. [2018-11-23 10:17:50,605 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:50,606 INFO L93 Difference]: Finished difference Result 38 states and 48 transitions. [2018-11-23 10:17:50,606 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 48 transitions. [2018-11-23 10:17:50,607 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:17:50,607 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:17:50,607 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:17:50,608 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:17:50,608 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2018-11-23 10:17:50,611 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 44 transitions. [2018-11-23 10:17:50,611 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 44 transitions. Word has length 37 [2018-11-23 10:17:50,611 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:17:50,611 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 44 transitions. [2018-11-23 10:17:50,612 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2018-11-23 10:17:50,612 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 44 transitions. [2018-11-23 10:17:50,613 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 38 [2018-11-23 10:17:50,613 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:17:50,614 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 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 10:17:50,614 INFO L423 AbstractCegarLoop]: === Iteration 3 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:17:50,614 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:17:50,614 INFO L82 PathProgramCache]: Analyzing trace with hash -1493850473, now seen corresponding path program 1 times [2018-11-23 10:17:50,615 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:17:50,615 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 4 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:17:50,633 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 10:17:50,679 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:17:50,700 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:17:50,702 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:17:50,835 INFO L256 TraceCheckUtils]: 0: Hoare triple {658#true} call ULTIMATE.init(); {658#true} is VALID [2018-11-23 10:17:50,836 INFO L273 TraceCheckUtils]: 1: Hoare triple {658#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {658#true} is VALID [2018-11-23 10:17:50,836 INFO L273 TraceCheckUtils]: 2: Hoare triple {658#true} assume true; {658#true} is VALID [2018-11-23 10:17:50,836 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {658#true} {658#true} #78#return; {658#true} is VALID [2018-11-23 10:17:50,836 INFO L256 TraceCheckUtils]: 4: Hoare triple {658#true} call #t~ret12 := main(); {658#true} is VALID [2018-11-23 10:17:50,837 INFO L273 TraceCheckUtils]: 5: Hoare triple {658#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {658#true} is VALID [2018-11-23 10:17:50,837 INFO L256 TraceCheckUtils]: 6: Hoare triple {658#true} call init_nondet(~#x~0.base, ~#x~0.offset); {658#true} is VALID [2018-11-23 10:17:50,838 INFO L273 TraceCheckUtils]: 7: Hoare triple {658#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {684#(= init_nondet_~i~0 (_ bv0 32))} is VALID [2018-11-23 10:17:50,838 INFO L273 TraceCheckUtils]: 8: Hoare triple {684#(= init_nondet_~i~0 (_ bv0 32))} assume !~bvslt32(~i~0, 5bv32); {659#false} is VALID [2018-11-23 10:17:50,838 INFO L273 TraceCheckUtils]: 9: Hoare triple {659#false} assume true; {659#false} is VALID [2018-11-23 10:17:50,839 INFO L268 TraceCheckUtils]: 10: Hoare quadruple {659#false} {658#true} #82#return; {659#false} is VALID [2018-11-23 10:17:50,839 INFO L273 TraceCheckUtils]: 11: Hoare triple {659#false} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {659#false} is VALID [2018-11-23 10:17:50,839 INFO L256 TraceCheckUtils]: 12: Hoare triple {659#false} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {659#false} is VALID [2018-11-23 10:17:50,840 INFO L273 TraceCheckUtils]: 13: Hoare triple {659#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {659#false} is VALID [2018-11-23 10:17:50,840 INFO L273 TraceCheckUtils]: 14: Hoare triple {659#false} assume !~bvslt32(~i~1, 5bv32); {659#false} is VALID [2018-11-23 10:17:50,840 INFO L273 TraceCheckUtils]: 15: Hoare triple {659#false} assume !(0bv32 != ~cnt~0);#res := 0bv32; {659#false} is VALID [2018-11-23 10:17:50,841 INFO L273 TraceCheckUtils]: 16: Hoare triple {659#false} assume true; {659#false} is VALID [2018-11-23 10:17:50,841 INFO L268 TraceCheckUtils]: 17: Hoare quadruple {659#false} {659#false} #84#return; {659#false} is VALID [2018-11-23 10:17:50,841 INFO L273 TraceCheckUtils]: 18: Hoare triple {659#false} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {659#false} is VALID [2018-11-23 10:17:50,842 INFO L256 TraceCheckUtils]: 19: Hoare triple {659#false} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {659#false} is VALID [2018-11-23 10:17:50,842 INFO L273 TraceCheckUtils]: 20: Hoare triple {659#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {659#false} is VALID [2018-11-23 10:17:50,842 INFO L273 TraceCheckUtils]: 21: Hoare triple {659#false} assume !~bvslt32(~i~1, 5bv32); {659#false} is VALID [2018-11-23 10:17:50,842 INFO L273 TraceCheckUtils]: 22: Hoare triple {659#false} assume !(0bv32 != ~cnt~0);#res := 0bv32; {659#false} is VALID [2018-11-23 10:17:50,843 INFO L273 TraceCheckUtils]: 23: Hoare triple {659#false} assume true; {659#false} is VALID [2018-11-23 10:17:50,843 INFO L268 TraceCheckUtils]: 24: Hoare quadruple {659#false} {659#false} #86#return; {659#false} is VALID [2018-11-23 10:17:50,843 INFO L273 TraceCheckUtils]: 25: Hoare triple {659#false} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {659#false} is VALID [2018-11-23 10:17:50,844 INFO L273 TraceCheckUtils]: 26: Hoare triple {659#false} assume !~bvslt32(~i~2, 4bv32); {659#false} is VALID [2018-11-23 10:17:50,844 INFO L273 TraceCheckUtils]: 27: Hoare triple {659#false} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {659#false} is VALID [2018-11-23 10:17:50,844 INFO L256 TraceCheckUtils]: 28: Hoare triple {659#false} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {659#false} is VALID [2018-11-23 10:17:50,845 INFO L273 TraceCheckUtils]: 29: Hoare triple {659#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {659#false} is VALID [2018-11-23 10:17:50,845 INFO L273 TraceCheckUtils]: 30: Hoare triple {659#false} assume !~bvslt32(~i~1, 5bv32); {659#false} is VALID [2018-11-23 10:17:50,845 INFO L273 TraceCheckUtils]: 31: Hoare triple {659#false} assume !(0bv32 != ~cnt~0);#res := 0bv32; {659#false} is VALID [2018-11-23 10:17:50,845 INFO L273 TraceCheckUtils]: 32: Hoare triple {659#false} assume true; {659#false} is VALID [2018-11-23 10:17:50,846 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {659#false} {659#false} #88#return; {659#false} is VALID [2018-11-23 10:17:50,846 INFO L273 TraceCheckUtils]: 34: Hoare triple {659#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {659#false} is VALID [2018-11-23 10:17:50,846 INFO L273 TraceCheckUtils]: 35: Hoare triple {659#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {659#false} is VALID [2018-11-23 10:17:50,847 INFO L273 TraceCheckUtils]: 36: Hoare triple {659#false} assume !false; {659#false} is VALID [2018-11-23 10:17:50,849 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2018-11-23 10:17:50,849 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 10:17:50,855 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 10:17:50,855 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2018-11-23 10:17:50,856 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 37 [2018-11-23 10:17:50,856 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:17:50,856 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2018-11-23 10:17:50,964 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 29 edges. 29 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:17:50,964 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2018-11-23 10:17:50,964 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2018-11-23 10:17:50,965 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 10:17:50,965 INFO L87 Difference]: Start difference. First operand 36 states and 44 transitions. Second operand 3 states. [2018-11-23 10:17:51,322 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:51,323 INFO L93 Difference]: Finished difference Result 64 states and 80 transitions. [2018-11-23 10:17:51,323 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2018-11-23 10:17:51,323 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 37 [2018-11-23 10:17:51,324 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:17:51,324 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2018-11-23 10:17:51,327 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 68 transitions. [2018-11-23 10:17:51,327 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2018-11-23 10:17:51,329 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 68 transitions. [2018-11-23 10:17:51,330 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 68 transitions. [2018-11-23 10:17:51,575 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 68 edges. 68 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:17:51,577 INFO L225 Difference]: With dead ends: 64 [2018-11-23 10:17:51,577 INFO L226 Difference]: Without dead ends: 38 [2018-11-23 10:17:51,579 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 36 GetRequests, 35 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 10:17:51,579 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 38 states. [2018-11-23 10:17:51,590 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 38 to 37. [2018-11-23 10:17:51,591 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:17:51,591 INFO L82 GeneralOperation]: Start isEquivalent. First operand 38 states. Second operand 37 states. [2018-11-23 10:17:51,591 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 37 states. [2018-11-23 10:17:51,592 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 37 states. [2018-11-23 10:17:51,595 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:51,595 INFO L93 Difference]: Finished difference Result 38 states and 46 transitions. [2018-11-23 10:17:51,596 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 46 transitions. [2018-11-23 10:17:51,597 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:17:51,597 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:17:51,597 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 38 states. [2018-11-23 10:17:51,597 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 38 states. [2018-11-23 10:17:51,600 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:51,600 INFO L93 Difference]: Finished difference Result 38 states and 46 transitions. [2018-11-23 10:17:51,601 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 46 transitions. [2018-11-23 10:17:51,601 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:17:51,602 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:17:51,602 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:17:51,602 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:17:51,602 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 37 states. [2018-11-23 10:17:51,605 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 45 transitions. [2018-11-23 10:17:51,605 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 45 transitions. Word has length 37 [2018-11-23 10:17:51,605 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:17:51,605 INFO L480 AbstractCegarLoop]: Abstraction has 37 states and 45 transitions. [2018-11-23 10:17:51,606 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2018-11-23 10:17:51,606 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 45 transitions. [2018-11-23 10:17:51,607 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2018-11-23 10:17:51,607 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:17:51,608 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 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 10:17:51,608 INFO L423 AbstractCegarLoop]: === Iteration 4 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:17:51,608 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:17:51,608 INFO L82 PathProgramCache]: Analyzing trace with hash -22870507, now seen corresponding path program 1 times [2018-11-23 10:17:51,609 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:17:51,609 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 5 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:17:51,640 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 10:17:51,690 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:17:51,713 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:17:51,715 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:17:51,832 INFO L256 TraceCheckUtils]: 0: Hoare triple {985#true} call ULTIMATE.init(); {985#true} is VALID [2018-11-23 10:17:51,832 INFO L273 TraceCheckUtils]: 1: Hoare triple {985#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {985#true} is VALID [2018-11-23 10:17:51,832 INFO L273 TraceCheckUtils]: 2: Hoare triple {985#true} assume true; {985#true} is VALID [2018-11-23 10:17:51,832 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {985#true} {985#true} #78#return; {985#true} is VALID [2018-11-23 10:17:51,833 INFO L256 TraceCheckUtils]: 4: Hoare triple {985#true} call #t~ret12 := main(); {985#true} is VALID [2018-11-23 10:17:51,833 INFO L273 TraceCheckUtils]: 5: Hoare triple {985#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {985#true} is VALID [2018-11-23 10:17:51,833 INFO L256 TraceCheckUtils]: 6: Hoare triple {985#true} call init_nondet(~#x~0.base, ~#x~0.offset); {985#true} is VALID [2018-11-23 10:17:51,834 INFO L273 TraceCheckUtils]: 7: Hoare triple {985#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {1011#(= init_nondet_~i~0 (_ bv0 32))} is VALID [2018-11-23 10:17:51,835 INFO L273 TraceCheckUtils]: 8: Hoare triple {1011#(= init_nondet_~i~0 (_ bv0 32))} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {1011#(= init_nondet_~i~0 (_ bv0 32))} is VALID [2018-11-23 10:17:51,836 INFO L273 TraceCheckUtils]: 9: Hoare triple {1011#(= init_nondet_~i~0 (_ bv0 32))} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {1018#(= (bvadd init_nondet_~i~0 (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:17:51,853 INFO L273 TraceCheckUtils]: 10: Hoare triple {1018#(= (bvadd init_nondet_~i~0 (_ bv4294967295 32)) (_ bv0 32))} assume !~bvslt32(~i~0, 5bv32); {986#false} is VALID [2018-11-23 10:17:51,854 INFO L273 TraceCheckUtils]: 11: Hoare triple {986#false} assume true; {986#false} is VALID [2018-11-23 10:17:51,854 INFO L268 TraceCheckUtils]: 12: Hoare quadruple {986#false} {985#true} #82#return; {986#false} is VALID [2018-11-23 10:17:51,854 INFO L273 TraceCheckUtils]: 13: Hoare triple {986#false} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {986#false} is VALID [2018-11-23 10:17:51,855 INFO L256 TraceCheckUtils]: 14: Hoare triple {986#false} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {986#false} is VALID [2018-11-23 10:17:51,855 INFO L273 TraceCheckUtils]: 15: Hoare triple {986#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {986#false} is VALID [2018-11-23 10:17:51,855 INFO L273 TraceCheckUtils]: 16: Hoare triple {986#false} assume !~bvslt32(~i~1, 5bv32); {986#false} is VALID [2018-11-23 10:17:51,856 INFO L273 TraceCheckUtils]: 17: Hoare triple {986#false} assume !(0bv32 != ~cnt~0);#res := 0bv32; {986#false} is VALID [2018-11-23 10:17:51,856 INFO L273 TraceCheckUtils]: 18: Hoare triple {986#false} assume true; {986#false} is VALID [2018-11-23 10:17:51,856 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {986#false} {986#false} #84#return; {986#false} is VALID [2018-11-23 10:17:51,856 INFO L273 TraceCheckUtils]: 20: Hoare triple {986#false} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {986#false} is VALID [2018-11-23 10:17:51,857 INFO L256 TraceCheckUtils]: 21: Hoare triple {986#false} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {986#false} is VALID [2018-11-23 10:17:51,857 INFO L273 TraceCheckUtils]: 22: Hoare triple {986#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {986#false} is VALID [2018-11-23 10:17:51,857 INFO L273 TraceCheckUtils]: 23: Hoare triple {986#false} assume !~bvslt32(~i~1, 5bv32); {986#false} is VALID [2018-11-23 10:17:51,858 INFO L273 TraceCheckUtils]: 24: Hoare triple {986#false} assume !(0bv32 != ~cnt~0);#res := 0bv32; {986#false} is VALID [2018-11-23 10:17:51,858 INFO L273 TraceCheckUtils]: 25: Hoare triple {986#false} assume true; {986#false} is VALID [2018-11-23 10:17:51,858 INFO L268 TraceCheckUtils]: 26: Hoare quadruple {986#false} {986#false} #86#return; {986#false} is VALID [2018-11-23 10:17:51,858 INFO L273 TraceCheckUtils]: 27: Hoare triple {986#false} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {986#false} is VALID [2018-11-23 10:17:51,859 INFO L273 TraceCheckUtils]: 28: Hoare triple {986#false} assume !~bvslt32(~i~2, 4bv32); {986#false} is VALID [2018-11-23 10:17:51,859 INFO L273 TraceCheckUtils]: 29: Hoare triple {986#false} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {986#false} is VALID [2018-11-23 10:17:51,859 INFO L256 TraceCheckUtils]: 30: Hoare triple {986#false} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {986#false} is VALID [2018-11-23 10:17:51,860 INFO L273 TraceCheckUtils]: 31: Hoare triple {986#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {986#false} is VALID [2018-11-23 10:17:51,860 INFO L273 TraceCheckUtils]: 32: Hoare triple {986#false} assume !~bvslt32(~i~1, 5bv32); {986#false} is VALID [2018-11-23 10:17:51,860 INFO L273 TraceCheckUtils]: 33: Hoare triple {986#false} assume !(0bv32 != ~cnt~0);#res := 0bv32; {986#false} is VALID [2018-11-23 10:17:51,860 INFO L273 TraceCheckUtils]: 34: Hoare triple {986#false} assume true; {986#false} is VALID [2018-11-23 10:17:51,860 INFO L268 TraceCheckUtils]: 35: Hoare quadruple {986#false} {986#false} #88#return; {986#false} is VALID [2018-11-23 10:17:51,861 INFO L273 TraceCheckUtils]: 36: Hoare triple {986#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {986#false} is VALID [2018-11-23 10:17:51,861 INFO L273 TraceCheckUtils]: 37: Hoare triple {986#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {986#false} is VALID [2018-11-23 10:17:51,861 INFO L273 TraceCheckUtils]: 38: Hoare triple {986#false} assume !false; {986#false} is VALID [2018-11-23 10:17:51,864 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2018-11-23 10:17:51,865 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 10:17:52,300 INFO L273 TraceCheckUtils]: 38: Hoare triple {986#false} assume !false; {986#false} is VALID [2018-11-23 10:17:52,301 INFO L273 TraceCheckUtils]: 37: Hoare triple {986#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {986#false} is VALID [2018-11-23 10:17:52,301 INFO L273 TraceCheckUtils]: 36: Hoare triple {986#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {986#false} is VALID [2018-11-23 10:17:52,301 INFO L268 TraceCheckUtils]: 35: Hoare quadruple {985#true} {986#false} #88#return; {986#false} is VALID [2018-11-23 10:17:52,302 INFO L273 TraceCheckUtils]: 34: Hoare triple {985#true} assume true; {985#true} is VALID [2018-11-23 10:17:52,302 INFO L273 TraceCheckUtils]: 33: Hoare triple {985#true} assume !(0bv32 != ~cnt~0);#res := 0bv32; {985#true} is VALID [2018-11-23 10:17:52,302 INFO L273 TraceCheckUtils]: 32: Hoare triple {985#true} assume !~bvslt32(~i~1, 5bv32); {985#true} is VALID [2018-11-23 10:17:52,302 INFO L273 TraceCheckUtils]: 31: Hoare triple {985#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {985#true} is VALID [2018-11-23 10:17:52,303 INFO L256 TraceCheckUtils]: 30: Hoare triple {986#false} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {985#true} is VALID [2018-11-23 10:17:52,303 INFO L273 TraceCheckUtils]: 29: Hoare triple {986#false} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {986#false} is VALID [2018-11-23 10:17:52,303 INFO L273 TraceCheckUtils]: 28: Hoare triple {986#false} assume !~bvslt32(~i~2, 4bv32); {986#false} is VALID [2018-11-23 10:17:52,303 INFO L273 TraceCheckUtils]: 27: Hoare triple {986#false} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {986#false} is VALID [2018-11-23 10:17:52,304 INFO L268 TraceCheckUtils]: 26: Hoare quadruple {985#true} {986#false} #86#return; {986#false} is VALID [2018-11-23 10:17:52,304 INFO L273 TraceCheckUtils]: 25: Hoare triple {985#true} assume true; {985#true} is VALID [2018-11-23 10:17:52,304 INFO L273 TraceCheckUtils]: 24: Hoare triple {985#true} assume !(0bv32 != ~cnt~0);#res := 0bv32; {985#true} is VALID [2018-11-23 10:17:52,304 INFO L273 TraceCheckUtils]: 23: Hoare triple {985#true} assume !~bvslt32(~i~1, 5bv32); {985#true} is VALID [2018-11-23 10:17:52,305 INFO L273 TraceCheckUtils]: 22: Hoare triple {985#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {985#true} is VALID [2018-11-23 10:17:52,305 INFO L256 TraceCheckUtils]: 21: Hoare triple {986#false} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {985#true} is VALID [2018-11-23 10:17:52,305 INFO L273 TraceCheckUtils]: 20: Hoare triple {986#false} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {986#false} is VALID [2018-11-23 10:17:52,305 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {985#true} {986#false} #84#return; {986#false} is VALID [2018-11-23 10:17:52,305 INFO L273 TraceCheckUtils]: 18: Hoare triple {985#true} assume true; {985#true} is VALID [2018-11-23 10:17:52,306 INFO L273 TraceCheckUtils]: 17: Hoare triple {985#true} assume !(0bv32 != ~cnt~0);#res := 0bv32; {985#true} is VALID [2018-11-23 10:17:52,306 INFO L273 TraceCheckUtils]: 16: Hoare triple {985#true} assume !~bvslt32(~i~1, 5bv32); {985#true} is VALID [2018-11-23 10:17:52,306 INFO L273 TraceCheckUtils]: 15: Hoare triple {985#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {985#true} is VALID [2018-11-23 10:17:52,306 INFO L256 TraceCheckUtils]: 14: Hoare triple {986#false} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {985#true} is VALID [2018-11-23 10:17:52,307 INFO L273 TraceCheckUtils]: 13: Hoare triple {986#false} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {986#false} is VALID [2018-11-23 10:17:52,307 INFO L268 TraceCheckUtils]: 12: Hoare quadruple {986#false} {985#true} #82#return; {986#false} is VALID [2018-11-23 10:17:52,307 INFO L273 TraceCheckUtils]: 11: Hoare triple {986#false} assume true; {986#false} is VALID [2018-11-23 10:17:52,308 INFO L273 TraceCheckUtils]: 10: Hoare triple {1193#(bvslt init_nondet_~i~0 (_ bv5 32))} assume !~bvslt32(~i~0, 5bv32); {986#false} is VALID [2018-11-23 10:17:52,309 INFO L273 TraceCheckUtils]: 9: Hoare triple {1197#(bvslt (bvadd init_nondet_~i~0 (_ bv1 32)) (_ bv5 32))} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {1193#(bvslt init_nondet_~i~0 (_ bv5 32))} is VALID [2018-11-23 10:17:52,310 INFO L273 TraceCheckUtils]: 8: Hoare triple {1197#(bvslt (bvadd init_nondet_~i~0 (_ bv1 32)) (_ bv5 32))} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {1197#(bvslt (bvadd init_nondet_~i~0 (_ bv1 32)) (_ bv5 32))} is VALID [2018-11-23 10:17:52,310 INFO L273 TraceCheckUtils]: 7: Hoare triple {985#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {1197#(bvslt (bvadd init_nondet_~i~0 (_ bv1 32)) (_ bv5 32))} is VALID [2018-11-23 10:17:52,310 INFO L256 TraceCheckUtils]: 6: Hoare triple {985#true} call init_nondet(~#x~0.base, ~#x~0.offset); {985#true} is VALID [2018-11-23 10:17:52,311 INFO L273 TraceCheckUtils]: 5: Hoare triple {985#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {985#true} is VALID [2018-11-23 10:17:52,311 INFO L256 TraceCheckUtils]: 4: Hoare triple {985#true} call #t~ret12 := main(); {985#true} is VALID [2018-11-23 10:17:52,311 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {985#true} {985#true} #78#return; {985#true} is VALID [2018-11-23 10:17:52,312 INFO L273 TraceCheckUtils]: 2: Hoare triple {985#true} assume true; {985#true} is VALID [2018-11-23 10:17:52,312 INFO L273 TraceCheckUtils]: 1: Hoare triple {985#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {985#true} is VALID [2018-11-23 10:17:52,312 INFO L256 TraceCheckUtils]: 0: Hoare triple {985#true} call ULTIMATE.init(); {985#true} is VALID [2018-11-23 10:17:52,315 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2018-11-23 10:17:52,319 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 10:17:52,319 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4] total 6 [2018-11-23 10:17:52,319 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 39 [2018-11-23 10:17:52,321 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:17:52,321 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2018-11-23 10:17:52,403 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:17:52,404 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2018-11-23 10:17:52,404 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2018-11-23 10:17:52,404 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=13, Invalid=17, Unknown=0, NotChecked=0, Total=30 [2018-11-23 10:17:52,405 INFO L87 Difference]: Start difference. First operand 37 states and 45 transitions. Second operand 6 states. [2018-11-23 10:17:53,420 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:53,420 INFO L93 Difference]: Finished difference Result 69 states and 87 transitions. [2018-11-23 10:17:53,420 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-23 10:17:53,420 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 39 [2018-11-23 10:17:53,421 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:17:53,421 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2018-11-23 10:17:53,423 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 75 transitions. [2018-11-23 10:17:53,424 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2018-11-23 10:17:53,426 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 75 transitions. [2018-11-23 10:17:53,426 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 75 transitions. [2018-11-23 10:17:53,690 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 75 edges. 75 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:17:53,691 INFO L225 Difference]: With dead ends: 69 [2018-11-23 10:17:53,692 INFO L226 Difference]: Without dead ends: 43 [2018-11-23 10:17:53,692 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 78 GetRequests, 73 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2018-11-23 10:17:53,693 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 43 states. [2018-11-23 10:17:53,771 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 43 to 43. [2018-11-23 10:17:53,771 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:17:53,771 INFO L82 GeneralOperation]: Start isEquivalent. First operand 43 states. Second operand 43 states. [2018-11-23 10:17:53,771 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 43 states. [2018-11-23 10:17:53,772 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 43 states. [2018-11-23 10:17:53,775 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:53,775 INFO L93 Difference]: Finished difference Result 43 states and 51 transitions. [2018-11-23 10:17:53,775 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 51 transitions. [2018-11-23 10:17:53,776 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:17:53,776 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:17:53,776 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 43 states. [2018-11-23 10:17:53,776 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 43 states. [2018-11-23 10:17:53,779 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:53,780 INFO L93 Difference]: Finished difference Result 43 states and 51 transitions. [2018-11-23 10:17:53,780 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 51 transitions. [2018-11-23 10:17:53,781 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:17:53,781 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:17:53,781 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:17:53,781 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:17:53,781 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 43 states. [2018-11-23 10:17:53,784 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 43 states to 43 states and 51 transitions. [2018-11-23 10:17:53,784 INFO L78 Accepts]: Start accepts. Automaton has 43 states and 51 transitions. Word has length 39 [2018-11-23 10:17:53,784 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:17:53,784 INFO L480 AbstractCegarLoop]: Abstraction has 43 states and 51 transitions. [2018-11-23 10:17:53,784 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2018-11-23 10:17:53,785 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 51 transitions. [2018-11-23 10:17:53,786 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 46 [2018-11-23 10:17:53,786 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:17:53,786 INFO L402 BasicCegarLoop]: trace histogram [4, 4, 3, 3, 3, 3, 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 10:17:53,787 INFO L423 AbstractCegarLoop]: === Iteration 5 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:17:53,787 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:17:53,787 INFO L82 PathProgramCache]: Analyzing trace with hash -1232652401, now seen corresponding path program 2 times [2018-11-23 10:17:53,788 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:17:53,788 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 6 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:17:53,806 INFO L101 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2018-11-23 10:17:53,845 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2018-11-23 10:17:53,845 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 10:17:53,865 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:17:53,867 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:17:53,929 INFO L256 TraceCheckUtils]: 0: Hoare triple {1467#true} call ULTIMATE.init(); {1467#true} is VALID [2018-11-23 10:17:53,929 INFO L273 TraceCheckUtils]: 1: Hoare triple {1467#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {1467#true} is VALID [2018-11-23 10:17:53,929 INFO L273 TraceCheckUtils]: 2: Hoare triple {1467#true} assume true; {1467#true} is VALID [2018-11-23 10:17:53,930 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1467#true} {1467#true} #78#return; {1467#true} is VALID [2018-11-23 10:17:53,930 INFO L256 TraceCheckUtils]: 4: Hoare triple {1467#true} call #t~ret12 := main(); {1467#true} is VALID [2018-11-23 10:17:53,931 INFO L273 TraceCheckUtils]: 5: Hoare triple {1467#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {1467#true} is VALID [2018-11-23 10:17:53,931 INFO L256 TraceCheckUtils]: 6: Hoare triple {1467#true} call init_nondet(~#x~0.base, ~#x~0.offset); {1467#true} is VALID [2018-11-23 10:17:53,932 INFO L273 TraceCheckUtils]: 7: Hoare triple {1467#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {1467#true} is VALID [2018-11-23 10:17:53,932 INFO L273 TraceCheckUtils]: 8: Hoare triple {1467#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {1467#true} is VALID [2018-11-23 10:17:53,932 INFO L273 TraceCheckUtils]: 9: Hoare triple {1467#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {1467#true} is VALID [2018-11-23 10:17:53,933 INFO L273 TraceCheckUtils]: 10: Hoare triple {1467#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {1467#true} is VALID [2018-11-23 10:17:53,933 INFO L273 TraceCheckUtils]: 11: Hoare triple {1467#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {1467#true} is VALID [2018-11-23 10:17:53,933 INFO L273 TraceCheckUtils]: 12: Hoare triple {1467#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {1467#true} is VALID [2018-11-23 10:17:53,933 INFO L273 TraceCheckUtils]: 13: Hoare triple {1467#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {1467#true} is VALID [2018-11-23 10:17:53,934 INFO L273 TraceCheckUtils]: 14: Hoare triple {1467#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {1467#true} is VALID [2018-11-23 10:17:53,934 INFO L273 TraceCheckUtils]: 15: Hoare triple {1467#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {1467#true} is VALID [2018-11-23 10:17:53,934 INFO L273 TraceCheckUtils]: 16: Hoare triple {1467#true} assume !~bvslt32(~i~0, 5bv32); {1467#true} is VALID [2018-11-23 10:17:53,935 INFO L273 TraceCheckUtils]: 17: Hoare triple {1467#true} assume true; {1467#true} is VALID [2018-11-23 10:17:53,935 INFO L268 TraceCheckUtils]: 18: Hoare quadruple {1467#true} {1467#true} #82#return; {1467#true} is VALID [2018-11-23 10:17:53,935 INFO L273 TraceCheckUtils]: 19: Hoare triple {1467#true} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {1467#true} is VALID [2018-11-23 10:17:53,935 INFO L256 TraceCheckUtils]: 20: Hoare triple {1467#true} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {1467#true} is VALID [2018-11-23 10:17:53,936 INFO L273 TraceCheckUtils]: 21: Hoare triple {1467#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {1467#true} is VALID [2018-11-23 10:17:53,936 INFO L273 TraceCheckUtils]: 22: Hoare triple {1467#true} assume !~bvslt32(~i~1, 5bv32); {1467#true} is VALID [2018-11-23 10:17:53,936 INFO L273 TraceCheckUtils]: 23: Hoare triple {1467#true} assume !(0bv32 != ~cnt~0);#res := 0bv32; {1467#true} is VALID [2018-11-23 10:17:53,936 INFO L273 TraceCheckUtils]: 24: Hoare triple {1467#true} assume true; {1467#true} is VALID [2018-11-23 10:17:53,937 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {1467#true} {1467#true} #84#return; {1467#true} is VALID [2018-11-23 10:17:53,937 INFO L273 TraceCheckUtils]: 26: Hoare triple {1467#true} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {1467#true} is VALID [2018-11-23 10:17:53,937 INFO L256 TraceCheckUtils]: 27: Hoare triple {1467#true} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {1467#true} is VALID [2018-11-23 10:17:53,938 INFO L273 TraceCheckUtils]: 28: Hoare triple {1467#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {1467#true} is VALID [2018-11-23 10:17:53,938 INFO L273 TraceCheckUtils]: 29: Hoare triple {1467#true} assume !~bvslt32(~i~1, 5bv32); {1467#true} is VALID [2018-11-23 10:17:53,938 INFO L273 TraceCheckUtils]: 30: Hoare triple {1467#true} assume !(0bv32 != ~cnt~0);#res := 0bv32; {1467#true} is VALID [2018-11-23 10:17:53,938 INFO L273 TraceCheckUtils]: 31: Hoare triple {1467#true} assume true; {1467#true} is VALID [2018-11-23 10:17:53,939 INFO L268 TraceCheckUtils]: 32: Hoare quadruple {1467#true} {1467#true} #86#return; {1467#true} is VALID [2018-11-23 10:17:53,939 INFO L273 TraceCheckUtils]: 33: Hoare triple {1467#true} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {1467#true} is VALID [2018-11-23 10:17:53,939 INFO L273 TraceCheckUtils]: 34: Hoare triple {1467#true} assume !~bvslt32(~i~2, 4bv32); {1467#true} is VALID [2018-11-23 10:17:53,939 INFO L273 TraceCheckUtils]: 35: Hoare triple {1467#true} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {1467#true} is VALID [2018-11-23 10:17:53,940 INFO L256 TraceCheckUtils]: 36: Hoare triple {1467#true} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {1467#true} is VALID [2018-11-23 10:17:53,943 INFO L273 TraceCheckUtils]: 37: Hoare triple {1467#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {1583#(= (_ bv0 32) rangesum_~i~1)} is VALID [2018-11-23 10:17:53,943 INFO L273 TraceCheckUtils]: 38: Hoare triple {1583#(= (_ bv0 32) rangesum_~i~1)} assume !~bvslt32(~i~1, 5bv32); {1468#false} is VALID [2018-11-23 10:17:53,944 INFO L273 TraceCheckUtils]: 39: Hoare triple {1468#false} assume !(0bv32 != ~cnt~0);#res := 0bv32; {1468#false} is VALID [2018-11-23 10:17:53,944 INFO L273 TraceCheckUtils]: 40: Hoare triple {1468#false} assume true; {1468#false} is VALID [2018-11-23 10:17:53,944 INFO L268 TraceCheckUtils]: 41: Hoare quadruple {1468#false} {1467#true} #88#return; {1468#false} is VALID [2018-11-23 10:17:53,944 INFO L273 TraceCheckUtils]: 42: Hoare triple {1468#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {1468#false} is VALID [2018-11-23 10:17:53,945 INFO L273 TraceCheckUtils]: 43: Hoare triple {1468#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {1468#false} is VALID [2018-11-23 10:17:53,945 INFO L273 TraceCheckUtils]: 44: Hoare triple {1468#false} assume !false; {1468#false} is VALID [2018-11-23 10:17:53,948 INFO L134 CoverageAnalysis]: Checked inductivity of 31 backedges. 8 proven. 0 refuted. 0 times theorem prover too weak. 23 trivial. 0 not checked. [2018-11-23 10:17:53,948 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 10:17:53,954 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 10:17:53,954 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2018-11-23 10:17:53,955 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 45 [2018-11-23 10:17:53,955 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:17:53,956 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2018-11-23 10:17:54,029 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 35 edges. 35 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:17:54,030 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2018-11-23 10:17:54,030 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2018-11-23 10:17:54,030 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 10:17:54,031 INFO L87 Difference]: Start difference. First operand 43 states and 51 transitions. Second operand 3 states. [2018-11-23 10:17:54,541 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:54,542 INFO L93 Difference]: Finished difference Result 68 states and 87 transitions. [2018-11-23 10:17:54,542 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2018-11-23 10:17:54,542 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 45 [2018-11-23 10:17:54,543 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:17:54,543 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2018-11-23 10:17:54,545 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 68 transitions. [2018-11-23 10:17:54,545 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2018-11-23 10:17:54,547 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 68 transitions. [2018-11-23 10:17:54,547 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 68 transitions. [2018-11-23 10:17:54,828 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 68 edges. 68 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:17:54,831 INFO L225 Difference]: With dead ends: 68 [2018-11-23 10:17:54,831 INFO L226 Difference]: Without dead ends: 46 [2018-11-23 10:17:54,832 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 44 GetRequests, 43 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 10:17:54,832 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 46 states. [2018-11-23 10:17:54,857 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 46 to 45. [2018-11-23 10:17:54,858 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:17:54,858 INFO L82 GeneralOperation]: Start isEquivalent. First operand 46 states. Second operand 45 states. [2018-11-23 10:17:54,858 INFO L74 IsIncluded]: Start isIncluded. First operand 46 states. Second operand 45 states. [2018-11-23 10:17:54,858 INFO L87 Difference]: Start difference. First operand 46 states. Second operand 45 states. [2018-11-23 10:17:54,860 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:54,861 INFO L93 Difference]: Finished difference Result 46 states and 54 transitions. [2018-11-23 10:17:54,861 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 54 transitions. [2018-11-23 10:17:54,861 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:17:54,862 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:17:54,862 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 46 states. [2018-11-23 10:17:54,862 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 46 states. [2018-11-23 10:17:54,865 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:54,865 INFO L93 Difference]: Finished difference Result 46 states and 54 transitions. [2018-11-23 10:17:54,865 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 54 transitions. [2018-11-23 10:17:54,866 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:17:54,866 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:17:54,866 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:17:54,866 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:17:54,867 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 45 states. [2018-11-23 10:17:54,869 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 53 transitions. [2018-11-23 10:17:54,870 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 53 transitions. Word has length 45 [2018-11-23 10:17:54,870 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:17:54,870 INFO L480 AbstractCegarLoop]: Abstraction has 45 states and 53 transitions. [2018-11-23 10:17:54,870 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2018-11-23 10:17:54,870 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 53 transitions. [2018-11-23 10:17:54,872 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 55 [2018-11-23 10:17:54,872 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:17:54,872 INFO L402 BasicCegarLoop]: trace histogram [4, 4, 3, 3, 3, 3, 3, 3, 3, 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 10:17:54,872 INFO L423 AbstractCegarLoop]: === Iteration 6 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:17:54,873 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:17:54,873 INFO L82 PathProgramCache]: Analyzing trace with hash 2144769321, now seen corresponding path program 1 times [2018-11-23 10:17:54,873 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:17:54,873 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 7 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:17:54,904 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 10:17:54,974 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:17:55,018 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:17:55,020 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:17:55,213 INFO L256 TraceCheckUtils]: 0: Hoare triple {1853#true} call ULTIMATE.init(); {1853#true} is VALID [2018-11-23 10:17:55,214 INFO L273 TraceCheckUtils]: 1: Hoare triple {1853#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {1853#true} is VALID [2018-11-23 10:17:55,214 INFO L273 TraceCheckUtils]: 2: Hoare triple {1853#true} assume true; {1853#true} is VALID [2018-11-23 10:17:55,215 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1853#true} {1853#true} #78#return; {1853#true} is VALID [2018-11-23 10:17:55,215 INFO L256 TraceCheckUtils]: 4: Hoare triple {1853#true} call #t~ret12 := main(); {1853#true} is VALID [2018-11-23 10:17:55,216 INFO L273 TraceCheckUtils]: 5: Hoare triple {1853#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {1853#true} is VALID [2018-11-23 10:17:55,216 INFO L256 TraceCheckUtils]: 6: Hoare triple {1853#true} call init_nondet(~#x~0.base, ~#x~0.offset); {1853#true} is VALID [2018-11-23 10:17:55,220 INFO L273 TraceCheckUtils]: 7: Hoare triple {1853#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {1879#(= init_nondet_~i~0 (_ bv0 32))} is VALID [2018-11-23 10:17:55,221 INFO L273 TraceCheckUtils]: 8: Hoare triple {1879#(= init_nondet_~i~0 (_ bv0 32))} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {1879#(= init_nondet_~i~0 (_ bv0 32))} is VALID [2018-11-23 10:17:55,221 INFO L273 TraceCheckUtils]: 9: Hoare triple {1879#(= init_nondet_~i~0 (_ bv0 32))} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {1886#(= (bvadd init_nondet_~i~0 (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:17:55,222 INFO L273 TraceCheckUtils]: 10: Hoare triple {1886#(= (bvadd init_nondet_~i~0 (_ bv4294967295 32)) (_ bv0 32))} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {1886#(= (bvadd init_nondet_~i~0 (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:17:55,222 INFO L273 TraceCheckUtils]: 11: Hoare triple {1886#(= (bvadd init_nondet_~i~0 (_ bv4294967295 32)) (_ bv0 32))} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {1893#(= (bvadd init_nondet_~i~0 (_ bv4294967294 32)) (_ bv0 32))} is VALID [2018-11-23 10:17:55,223 INFO L273 TraceCheckUtils]: 12: Hoare triple {1893#(= (bvadd init_nondet_~i~0 (_ bv4294967294 32)) (_ bv0 32))} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {1893#(= (bvadd init_nondet_~i~0 (_ bv4294967294 32)) (_ bv0 32))} is VALID [2018-11-23 10:17:55,223 INFO L273 TraceCheckUtils]: 13: Hoare triple {1893#(= (bvadd init_nondet_~i~0 (_ bv4294967294 32)) (_ bv0 32))} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {1900#(= (bvadd init_nondet_~i~0 (_ bv4294967293 32)) (_ bv0 32))} is VALID [2018-11-23 10:17:55,224 INFO L273 TraceCheckUtils]: 14: Hoare triple {1900#(= (bvadd init_nondet_~i~0 (_ bv4294967293 32)) (_ bv0 32))} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {1900#(= (bvadd init_nondet_~i~0 (_ bv4294967293 32)) (_ bv0 32))} is VALID [2018-11-23 10:17:55,227 INFO L273 TraceCheckUtils]: 15: Hoare triple {1900#(= (bvadd init_nondet_~i~0 (_ bv4294967293 32)) (_ bv0 32))} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {1907#(= (bvadd init_nondet_~i~0 (_ bv4294967292 32)) (_ bv0 32))} is VALID [2018-11-23 10:17:55,228 INFO L273 TraceCheckUtils]: 16: Hoare triple {1907#(= (bvadd init_nondet_~i~0 (_ bv4294967292 32)) (_ bv0 32))} assume !~bvslt32(~i~0, 5bv32); {1854#false} is VALID [2018-11-23 10:17:55,228 INFO L273 TraceCheckUtils]: 17: Hoare triple {1854#false} assume true; {1854#false} is VALID [2018-11-23 10:17:55,228 INFO L268 TraceCheckUtils]: 18: Hoare quadruple {1854#false} {1853#true} #82#return; {1854#false} is VALID [2018-11-23 10:17:55,228 INFO L273 TraceCheckUtils]: 19: Hoare triple {1854#false} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {1854#false} is VALID [2018-11-23 10:17:55,229 INFO L256 TraceCheckUtils]: 20: Hoare triple {1854#false} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {1854#false} is VALID [2018-11-23 10:17:55,229 INFO L273 TraceCheckUtils]: 21: Hoare triple {1854#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {1854#false} is VALID [2018-11-23 10:17:55,229 INFO L273 TraceCheckUtils]: 22: Hoare triple {1854#false} assume !!~bvslt32(~i~1, 5bv32); {1854#false} is VALID [2018-11-23 10:17:55,230 INFO L273 TraceCheckUtils]: 23: Hoare triple {1854#false} assume !~bvsgt32(~i~1, 2bv32); {1854#false} is VALID [2018-11-23 10:17:55,230 INFO L273 TraceCheckUtils]: 24: Hoare triple {1854#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {1854#false} is VALID [2018-11-23 10:17:55,231 INFO L273 TraceCheckUtils]: 25: Hoare triple {1854#false} assume !~bvslt32(~i~1, 5bv32); {1854#false} is VALID [2018-11-23 10:17:55,231 INFO L273 TraceCheckUtils]: 26: Hoare triple {1854#false} assume !(0bv32 != ~cnt~0);#res := 0bv32; {1854#false} is VALID [2018-11-23 10:17:55,231 INFO L273 TraceCheckUtils]: 27: Hoare triple {1854#false} assume true; {1854#false} is VALID [2018-11-23 10:17:55,232 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {1854#false} {1854#false} #84#return; {1854#false} is VALID [2018-11-23 10:17:55,232 INFO L273 TraceCheckUtils]: 29: Hoare triple {1854#false} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {1854#false} is VALID [2018-11-23 10:17:55,232 INFO L256 TraceCheckUtils]: 30: Hoare triple {1854#false} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {1854#false} is VALID [2018-11-23 10:17:55,233 INFO L273 TraceCheckUtils]: 31: Hoare triple {1854#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {1854#false} is VALID [2018-11-23 10:17:55,233 INFO L273 TraceCheckUtils]: 32: Hoare triple {1854#false} assume !!~bvslt32(~i~1, 5bv32); {1854#false} is VALID [2018-11-23 10:17:55,233 INFO L273 TraceCheckUtils]: 33: Hoare triple {1854#false} assume !~bvsgt32(~i~1, 2bv32); {1854#false} is VALID [2018-11-23 10:17:55,233 INFO L273 TraceCheckUtils]: 34: Hoare triple {1854#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {1854#false} is VALID [2018-11-23 10:17:55,234 INFO L273 TraceCheckUtils]: 35: Hoare triple {1854#false} assume !~bvslt32(~i~1, 5bv32); {1854#false} is VALID [2018-11-23 10:17:55,234 INFO L273 TraceCheckUtils]: 36: Hoare triple {1854#false} assume !(0bv32 != ~cnt~0);#res := 0bv32; {1854#false} is VALID [2018-11-23 10:17:55,234 INFO L273 TraceCheckUtils]: 37: Hoare triple {1854#false} assume true; {1854#false} is VALID [2018-11-23 10:17:55,234 INFO L268 TraceCheckUtils]: 38: Hoare quadruple {1854#false} {1854#false} #86#return; {1854#false} is VALID [2018-11-23 10:17:55,235 INFO L273 TraceCheckUtils]: 39: Hoare triple {1854#false} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {1854#false} is VALID [2018-11-23 10:17:55,235 INFO L273 TraceCheckUtils]: 40: Hoare triple {1854#false} assume !~bvslt32(~i~2, 4bv32); {1854#false} is VALID [2018-11-23 10:17:55,235 INFO L273 TraceCheckUtils]: 41: Hoare triple {1854#false} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {1854#false} is VALID [2018-11-23 10:17:55,236 INFO L256 TraceCheckUtils]: 42: Hoare triple {1854#false} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {1854#false} is VALID [2018-11-23 10:17:55,236 INFO L273 TraceCheckUtils]: 43: Hoare triple {1854#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {1854#false} is VALID [2018-11-23 10:17:55,236 INFO L273 TraceCheckUtils]: 44: Hoare triple {1854#false} assume !!~bvslt32(~i~1, 5bv32); {1854#false} is VALID [2018-11-23 10:17:55,236 INFO L273 TraceCheckUtils]: 45: Hoare triple {1854#false} assume !~bvsgt32(~i~1, 2bv32); {1854#false} is VALID [2018-11-23 10:17:55,236 INFO L273 TraceCheckUtils]: 46: Hoare triple {1854#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {1854#false} is VALID [2018-11-23 10:17:55,237 INFO L273 TraceCheckUtils]: 47: Hoare triple {1854#false} assume !~bvslt32(~i~1, 5bv32); {1854#false} is VALID [2018-11-23 10:17:55,237 INFO L273 TraceCheckUtils]: 48: Hoare triple {1854#false} assume !(0bv32 != ~cnt~0);#res := 0bv32; {1854#false} is VALID [2018-11-23 10:17:55,237 INFO L273 TraceCheckUtils]: 49: Hoare triple {1854#false} assume true; {1854#false} is VALID [2018-11-23 10:17:55,237 INFO L268 TraceCheckUtils]: 50: Hoare quadruple {1854#false} {1854#false} #88#return; {1854#false} is VALID [2018-11-23 10:17:55,237 INFO L273 TraceCheckUtils]: 51: Hoare triple {1854#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {1854#false} is VALID [2018-11-23 10:17:55,238 INFO L273 TraceCheckUtils]: 52: Hoare triple {1854#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {1854#false} is VALID [2018-11-23 10:17:55,238 INFO L273 TraceCheckUtils]: 53: Hoare triple {1854#false} assume !false; {1854#false} is VALID [2018-11-23 10:17:55,241 INFO L134 CoverageAnalysis]: Checked inductivity of 49 backedges. 0 proven. 16 refuted. 0 times theorem prover too weak. 33 trivial. 0 not checked. [2018-11-23 10:17:55,242 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 10:17:55,510 INFO L273 TraceCheckUtils]: 53: Hoare triple {1854#false} assume !false; {1854#false} is VALID [2018-11-23 10:17:55,511 INFO L273 TraceCheckUtils]: 52: Hoare triple {1854#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {1854#false} is VALID [2018-11-23 10:17:55,511 INFO L273 TraceCheckUtils]: 51: Hoare triple {1854#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {1854#false} is VALID [2018-11-23 10:17:55,512 INFO L268 TraceCheckUtils]: 50: Hoare quadruple {1853#true} {1854#false} #88#return; {1854#false} is VALID [2018-11-23 10:17:55,512 INFO L273 TraceCheckUtils]: 49: Hoare triple {1853#true} assume true; {1853#true} is VALID [2018-11-23 10:17:55,512 INFO L273 TraceCheckUtils]: 48: Hoare triple {1853#true} assume !(0bv32 != ~cnt~0);#res := 0bv32; {1853#true} is VALID [2018-11-23 10:17:55,512 INFO L273 TraceCheckUtils]: 47: Hoare triple {1853#true} assume !~bvslt32(~i~1, 5bv32); {1853#true} is VALID [2018-11-23 10:17:55,513 INFO L273 TraceCheckUtils]: 46: Hoare triple {1853#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {1853#true} is VALID [2018-11-23 10:17:55,513 INFO L273 TraceCheckUtils]: 45: Hoare triple {1853#true} assume !~bvsgt32(~i~1, 2bv32); {1853#true} is VALID [2018-11-23 10:17:55,513 INFO L273 TraceCheckUtils]: 44: Hoare triple {1853#true} assume !!~bvslt32(~i~1, 5bv32); {1853#true} is VALID [2018-11-23 10:17:55,513 INFO L273 TraceCheckUtils]: 43: Hoare triple {1853#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {1853#true} is VALID [2018-11-23 10:17:55,514 INFO L256 TraceCheckUtils]: 42: Hoare triple {1854#false} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {1853#true} is VALID [2018-11-23 10:17:55,514 INFO L273 TraceCheckUtils]: 41: Hoare triple {1854#false} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {1854#false} is VALID [2018-11-23 10:17:55,514 INFO L273 TraceCheckUtils]: 40: Hoare triple {1854#false} assume !~bvslt32(~i~2, 4bv32); {1854#false} is VALID [2018-11-23 10:17:55,514 INFO L273 TraceCheckUtils]: 39: Hoare triple {1854#false} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {1854#false} is VALID [2018-11-23 10:17:55,515 INFO L268 TraceCheckUtils]: 38: Hoare quadruple {1853#true} {1854#false} #86#return; {1854#false} is VALID [2018-11-23 10:17:55,515 INFO L273 TraceCheckUtils]: 37: Hoare triple {1853#true} assume true; {1853#true} is VALID [2018-11-23 10:17:55,515 INFO L273 TraceCheckUtils]: 36: Hoare triple {1853#true} assume !(0bv32 != ~cnt~0);#res := 0bv32; {1853#true} is VALID [2018-11-23 10:17:55,515 INFO L273 TraceCheckUtils]: 35: Hoare triple {1853#true} assume !~bvslt32(~i~1, 5bv32); {1853#true} is VALID [2018-11-23 10:17:55,516 INFO L273 TraceCheckUtils]: 34: Hoare triple {1853#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {1853#true} is VALID [2018-11-23 10:17:55,516 INFO L273 TraceCheckUtils]: 33: Hoare triple {1853#true} assume !~bvsgt32(~i~1, 2bv32); {1853#true} is VALID [2018-11-23 10:17:55,516 INFO L273 TraceCheckUtils]: 32: Hoare triple {1853#true} assume !!~bvslt32(~i~1, 5bv32); {1853#true} is VALID [2018-11-23 10:17:55,516 INFO L273 TraceCheckUtils]: 31: Hoare triple {1853#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {1853#true} is VALID [2018-11-23 10:17:55,516 INFO L256 TraceCheckUtils]: 30: Hoare triple {1854#false} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {1853#true} is VALID [2018-11-23 10:17:55,517 INFO L273 TraceCheckUtils]: 29: Hoare triple {1854#false} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {1854#false} is VALID [2018-11-23 10:17:55,517 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {1853#true} {1854#false} #84#return; {1854#false} is VALID [2018-11-23 10:17:55,517 INFO L273 TraceCheckUtils]: 27: Hoare triple {1853#true} assume true; {1853#true} is VALID [2018-11-23 10:17:55,517 INFO L273 TraceCheckUtils]: 26: Hoare triple {1853#true} assume !(0bv32 != ~cnt~0);#res := 0bv32; {1853#true} is VALID [2018-11-23 10:17:55,518 INFO L273 TraceCheckUtils]: 25: Hoare triple {1853#true} assume !~bvslt32(~i~1, 5bv32); {1853#true} is VALID [2018-11-23 10:17:55,518 INFO L273 TraceCheckUtils]: 24: Hoare triple {1853#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {1853#true} is VALID [2018-11-23 10:17:55,518 INFO L273 TraceCheckUtils]: 23: Hoare triple {1853#true} assume !~bvsgt32(~i~1, 2bv32); {1853#true} is VALID [2018-11-23 10:17:55,518 INFO L273 TraceCheckUtils]: 22: Hoare triple {1853#true} assume !!~bvslt32(~i~1, 5bv32); {1853#true} is VALID [2018-11-23 10:17:55,518 INFO L273 TraceCheckUtils]: 21: Hoare triple {1853#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {1853#true} is VALID [2018-11-23 10:17:55,519 INFO L256 TraceCheckUtils]: 20: Hoare triple {1854#false} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {1853#true} is VALID [2018-11-23 10:17:55,519 INFO L273 TraceCheckUtils]: 19: Hoare triple {1854#false} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {1854#false} is VALID [2018-11-23 10:17:55,519 INFO L268 TraceCheckUtils]: 18: Hoare quadruple {1854#false} {1853#true} #82#return; {1854#false} is VALID [2018-11-23 10:17:55,519 INFO L273 TraceCheckUtils]: 17: Hoare triple {1854#false} assume true; {1854#false} is VALID [2018-11-23 10:17:55,520 INFO L273 TraceCheckUtils]: 16: Hoare triple {2136#(bvslt init_nondet_~i~0 (_ bv5 32))} assume !~bvslt32(~i~0, 5bv32); {1854#false} is VALID [2018-11-23 10:17:55,521 INFO L273 TraceCheckUtils]: 15: Hoare triple {2140#(bvslt (bvadd init_nondet_~i~0 (_ bv1 32)) (_ bv5 32))} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {2136#(bvslt init_nondet_~i~0 (_ bv5 32))} is VALID [2018-11-23 10:17:55,522 INFO L273 TraceCheckUtils]: 14: Hoare triple {2140#(bvslt (bvadd init_nondet_~i~0 (_ bv1 32)) (_ bv5 32))} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {2140#(bvslt (bvadd init_nondet_~i~0 (_ bv1 32)) (_ bv5 32))} is VALID [2018-11-23 10:17:55,526 INFO L273 TraceCheckUtils]: 13: Hoare triple {2147#(bvslt (bvadd init_nondet_~i~0 (_ bv2 32)) (_ bv5 32))} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {2140#(bvslt (bvadd init_nondet_~i~0 (_ bv1 32)) (_ bv5 32))} is VALID [2018-11-23 10:17:55,527 INFO L273 TraceCheckUtils]: 12: Hoare triple {2147#(bvslt (bvadd init_nondet_~i~0 (_ bv2 32)) (_ bv5 32))} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {2147#(bvslt (bvadd init_nondet_~i~0 (_ bv2 32)) (_ bv5 32))} is VALID [2018-11-23 10:17:55,530 INFO L273 TraceCheckUtils]: 11: Hoare triple {2154#(bvslt (bvadd init_nondet_~i~0 (_ bv3 32)) (_ bv5 32))} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {2147#(bvslt (bvadd init_nondet_~i~0 (_ bv2 32)) (_ bv5 32))} is VALID [2018-11-23 10:17:55,531 INFO L273 TraceCheckUtils]: 10: Hoare triple {2154#(bvslt (bvadd init_nondet_~i~0 (_ bv3 32)) (_ bv5 32))} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {2154#(bvslt (bvadd init_nondet_~i~0 (_ bv3 32)) (_ bv5 32))} is VALID [2018-11-23 10:17:55,534 INFO L273 TraceCheckUtils]: 9: Hoare triple {2161#(bvslt (bvadd init_nondet_~i~0 (_ bv4 32)) (_ bv5 32))} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {2154#(bvslt (bvadd init_nondet_~i~0 (_ bv3 32)) (_ bv5 32))} is VALID [2018-11-23 10:17:55,534 INFO L273 TraceCheckUtils]: 8: Hoare triple {2161#(bvslt (bvadd init_nondet_~i~0 (_ bv4 32)) (_ bv5 32))} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {2161#(bvslt (bvadd init_nondet_~i~0 (_ bv4 32)) (_ bv5 32))} is VALID [2018-11-23 10:17:55,535 INFO L273 TraceCheckUtils]: 7: Hoare triple {1853#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {2161#(bvslt (bvadd init_nondet_~i~0 (_ bv4 32)) (_ bv5 32))} is VALID [2018-11-23 10:17:55,535 INFO L256 TraceCheckUtils]: 6: Hoare triple {1853#true} call init_nondet(~#x~0.base, ~#x~0.offset); {1853#true} is VALID [2018-11-23 10:17:55,535 INFO L273 TraceCheckUtils]: 5: Hoare triple {1853#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {1853#true} is VALID [2018-11-23 10:17:55,535 INFO L256 TraceCheckUtils]: 4: Hoare triple {1853#true} call #t~ret12 := main(); {1853#true} is VALID [2018-11-23 10:17:55,535 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1853#true} {1853#true} #78#return; {1853#true} is VALID [2018-11-23 10:17:55,536 INFO L273 TraceCheckUtils]: 2: Hoare triple {1853#true} assume true; {1853#true} is VALID [2018-11-23 10:17:55,536 INFO L273 TraceCheckUtils]: 1: Hoare triple {1853#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {1853#true} is VALID [2018-11-23 10:17:55,536 INFO L256 TraceCheckUtils]: 0: Hoare triple {1853#true} call ULTIMATE.init(); {1853#true} is VALID [2018-11-23 10:17:55,538 INFO L134 CoverageAnalysis]: Checked inductivity of 49 backedges. 0 proven. 16 refuted. 0 times theorem prover too weak. 33 trivial. 0 not checked. [2018-11-23 10:17:55,540 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 10:17:55,540 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 12 [2018-11-23 10:17:55,540 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 54 [2018-11-23 10:17:55,541 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:17:55,542 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2018-11-23 10:17:55,681 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:17:55,681 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2018-11-23 10:17:55,682 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2018-11-23 10:17:55,682 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=36, Invalid=96, Unknown=0, NotChecked=0, Total=132 [2018-11-23 10:17:55,683 INFO L87 Difference]: Start difference. First operand 45 states and 53 transitions. Second operand 12 states. [2018-11-23 10:17:57,321 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:57,321 INFO L93 Difference]: Finished difference Result 76 states and 92 transitions. [2018-11-23 10:17:57,321 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2018-11-23 10:17:57,321 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 54 [2018-11-23 10:17:57,322 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:17:57,322 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2018-11-23 10:17:57,327 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 76 transitions. [2018-11-23 10:17:57,328 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2018-11-23 10:17:57,330 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 76 transitions. [2018-11-23 10:17:57,331 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 76 transitions. [2018-11-23 10:17:57,604 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 76 edges. 76 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:17:57,607 INFO L225 Difference]: With dead ends: 76 [2018-11-23 10:17:57,607 INFO L226 Difference]: Without dead ends: 48 [2018-11-23 10:17:57,609 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 107 GetRequests, 97 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 10 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=36, Invalid=96, Unknown=0, NotChecked=0, Total=132 [2018-11-23 10:17:57,609 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2018-11-23 10:17:57,636 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 47. [2018-11-23 10:17:57,636 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:17:57,636 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 47 states. [2018-11-23 10:17:57,636 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 47 states. [2018-11-23 10:17:57,637 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 47 states. [2018-11-23 10:17:57,639 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:57,640 INFO L93 Difference]: Finished difference Result 48 states and 56 transitions. [2018-11-23 10:17:57,640 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 56 transitions. [2018-11-23 10:17:57,640 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:17:57,640 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:17:57,641 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 48 states. [2018-11-23 10:17:57,641 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 48 states. [2018-11-23 10:17:57,643 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:57,644 INFO L93 Difference]: Finished difference Result 48 states and 56 transitions. [2018-11-23 10:17:57,644 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 56 transitions. [2018-11-23 10:17:57,644 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:17:57,644 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:17:57,645 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:17:57,645 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:17:57,645 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 47 states. [2018-11-23 10:17:57,647 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 55 transitions. [2018-11-23 10:17:57,647 INFO L78 Accepts]: Start accepts. Automaton has 47 states and 55 transitions. Word has length 54 [2018-11-23 10:17:57,648 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:17:57,648 INFO L480 AbstractCegarLoop]: Abstraction has 47 states and 55 transitions. [2018-11-23 10:17:57,648 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2018-11-23 10:17:57,648 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 55 transitions. [2018-11-23 10:17:57,649 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 57 [2018-11-23 10:17:57,649 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:17:57,649 INFO L402 BasicCegarLoop]: trace histogram [5, 5, 3, 3, 3, 3, 3, 3, 3, 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 10:17:57,650 INFO L423 AbstractCegarLoop]: === Iteration 7 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:17:57,650 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:17:57,650 INFO L82 PathProgramCache]: Analyzing trace with hash -1165991573, now seen corresponding path program 2 times [2018-11-23 10:17:57,650 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:17:57,650 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 8 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:17:57,675 INFO L101 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2018-11-23 10:17:57,757 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-23 10:17:57,757 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 10:17:57,794 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:17:57,796 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:17:57,920 INFO L256 TraceCheckUtils]: 0: Hoare triple {2455#true} call ULTIMATE.init(); {2455#true} is VALID [2018-11-23 10:17:57,920 INFO L273 TraceCheckUtils]: 1: Hoare triple {2455#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {2455#true} is VALID [2018-11-23 10:17:57,921 INFO L273 TraceCheckUtils]: 2: Hoare triple {2455#true} assume true; {2455#true} is VALID [2018-11-23 10:17:57,921 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2455#true} {2455#true} #78#return; {2455#true} is VALID [2018-11-23 10:17:57,921 INFO L256 TraceCheckUtils]: 4: Hoare triple {2455#true} call #t~ret12 := main(); {2455#true} is VALID [2018-11-23 10:17:57,921 INFO L273 TraceCheckUtils]: 5: Hoare triple {2455#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {2455#true} is VALID [2018-11-23 10:17:57,922 INFO L256 TraceCheckUtils]: 6: Hoare triple {2455#true} call init_nondet(~#x~0.base, ~#x~0.offset); {2455#true} is VALID [2018-11-23 10:17:57,922 INFO L273 TraceCheckUtils]: 7: Hoare triple {2455#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {2455#true} is VALID [2018-11-23 10:17:57,922 INFO L273 TraceCheckUtils]: 8: Hoare triple {2455#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {2455#true} is VALID [2018-11-23 10:17:57,922 INFO L273 TraceCheckUtils]: 9: Hoare triple {2455#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {2455#true} is VALID [2018-11-23 10:17:57,923 INFO L273 TraceCheckUtils]: 10: Hoare triple {2455#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {2455#true} is VALID [2018-11-23 10:17:57,923 INFO L273 TraceCheckUtils]: 11: Hoare triple {2455#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {2455#true} is VALID [2018-11-23 10:17:57,923 INFO L273 TraceCheckUtils]: 12: Hoare triple {2455#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {2455#true} is VALID [2018-11-23 10:17:57,924 INFO L273 TraceCheckUtils]: 13: Hoare triple {2455#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {2455#true} is VALID [2018-11-23 10:17:57,924 INFO L273 TraceCheckUtils]: 14: Hoare triple {2455#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {2455#true} is VALID [2018-11-23 10:17:57,924 INFO L273 TraceCheckUtils]: 15: Hoare triple {2455#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {2455#true} is VALID [2018-11-23 10:17:57,924 INFO L273 TraceCheckUtils]: 16: Hoare triple {2455#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {2455#true} is VALID [2018-11-23 10:17:57,925 INFO L273 TraceCheckUtils]: 17: Hoare triple {2455#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {2455#true} is VALID [2018-11-23 10:17:57,925 INFO L273 TraceCheckUtils]: 18: Hoare triple {2455#true} assume !~bvslt32(~i~0, 5bv32); {2455#true} is VALID [2018-11-23 10:17:57,925 INFO L273 TraceCheckUtils]: 19: Hoare triple {2455#true} assume true; {2455#true} is VALID [2018-11-23 10:17:57,925 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {2455#true} {2455#true} #82#return; {2455#true} is VALID [2018-11-23 10:17:57,926 INFO L273 TraceCheckUtils]: 21: Hoare triple {2455#true} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {2455#true} is VALID [2018-11-23 10:17:57,926 INFO L256 TraceCheckUtils]: 22: Hoare triple {2455#true} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {2455#true} is VALID [2018-11-23 10:17:57,938 INFO L273 TraceCheckUtils]: 23: Hoare triple {2455#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {2529#(= (_ bv0 32) rangesum_~i~1)} is VALID [2018-11-23 10:17:57,950 INFO L273 TraceCheckUtils]: 24: Hoare triple {2529#(= (_ bv0 32) rangesum_~i~1)} assume !!~bvslt32(~i~1, 5bv32); {2529#(= (_ bv0 32) rangesum_~i~1)} is VALID [2018-11-23 10:17:57,965 INFO L273 TraceCheckUtils]: 25: Hoare triple {2529#(= (_ bv0 32) rangesum_~i~1)} assume !~bvsgt32(~i~1, 2bv32); {2529#(= (_ bv0 32) rangesum_~i~1)} is VALID [2018-11-23 10:17:57,974 INFO L273 TraceCheckUtils]: 26: Hoare triple {2529#(= (_ bv0 32) rangesum_~i~1)} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {2539#(= (_ bv1 32) rangesum_~i~1)} is VALID [2018-11-23 10:17:57,978 INFO L273 TraceCheckUtils]: 27: Hoare triple {2539#(= (_ bv1 32) rangesum_~i~1)} assume !~bvslt32(~i~1, 5bv32); {2456#false} is VALID [2018-11-23 10:17:57,978 INFO L273 TraceCheckUtils]: 28: Hoare triple {2456#false} assume !(0bv32 != ~cnt~0);#res := 0bv32; {2456#false} is VALID [2018-11-23 10:17:57,978 INFO L273 TraceCheckUtils]: 29: Hoare triple {2456#false} assume true; {2456#false} is VALID [2018-11-23 10:17:57,979 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {2456#false} {2455#true} #84#return; {2456#false} is VALID [2018-11-23 10:17:57,979 INFO L273 TraceCheckUtils]: 31: Hoare triple {2456#false} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {2456#false} is VALID [2018-11-23 10:17:57,979 INFO L256 TraceCheckUtils]: 32: Hoare triple {2456#false} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {2456#false} is VALID [2018-11-23 10:17:57,979 INFO L273 TraceCheckUtils]: 33: Hoare triple {2456#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {2456#false} is VALID [2018-11-23 10:17:57,979 INFO L273 TraceCheckUtils]: 34: Hoare triple {2456#false} assume !!~bvslt32(~i~1, 5bv32); {2456#false} is VALID [2018-11-23 10:17:57,980 INFO L273 TraceCheckUtils]: 35: Hoare triple {2456#false} assume !~bvsgt32(~i~1, 2bv32); {2456#false} is VALID [2018-11-23 10:17:57,980 INFO L273 TraceCheckUtils]: 36: Hoare triple {2456#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {2456#false} is VALID [2018-11-23 10:17:57,980 INFO L273 TraceCheckUtils]: 37: Hoare triple {2456#false} assume !~bvslt32(~i~1, 5bv32); {2456#false} is VALID [2018-11-23 10:17:57,980 INFO L273 TraceCheckUtils]: 38: Hoare triple {2456#false} assume !(0bv32 != ~cnt~0);#res := 0bv32; {2456#false} is VALID [2018-11-23 10:17:57,981 INFO L273 TraceCheckUtils]: 39: Hoare triple {2456#false} assume true; {2456#false} is VALID [2018-11-23 10:17:57,981 INFO L268 TraceCheckUtils]: 40: Hoare quadruple {2456#false} {2456#false} #86#return; {2456#false} is VALID [2018-11-23 10:17:57,981 INFO L273 TraceCheckUtils]: 41: Hoare triple {2456#false} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {2456#false} is VALID [2018-11-23 10:17:57,981 INFO L273 TraceCheckUtils]: 42: Hoare triple {2456#false} assume !~bvslt32(~i~2, 4bv32); {2456#false} is VALID [2018-11-23 10:17:57,982 INFO L273 TraceCheckUtils]: 43: Hoare triple {2456#false} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {2456#false} is VALID [2018-11-23 10:17:57,982 INFO L256 TraceCheckUtils]: 44: Hoare triple {2456#false} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {2456#false} is VALID [2018-11-23 10:17:57,998 INFO L273 TraceCheckUtils]: 45: Hoare triple {2456#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {2456#false} is VALID [2018-11-23 10:17:57,998 INFO L273 TraceCheckUtils]: 46: Hoare triple {2456#false} assume !!~bvslt32(~i~1, 5bv32); {2456#false} is VALID [2018-11-23 10:17:57,998 INFO L273 TraceCheckUtils]: 47: Hoare triple {2456#false} assume !~bvsgt32(~i~1, 2bv32); {2456#false} is VALID [2018-11-23 10:17:57,999 INFO L273 TraceCheckUtils]: 48: Hoare triple {2456#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {2456#false} is VALID [2018-11-23 10:17:57,999 INFO L273 TraceCheckUtils]: 49: Hoare triple {2456#false} assume !~bvslt32(~i~1, 5bv32); {2456#false} is VALID [2018-11-23 10:17:57,999 INFO L273 TraceCheckUtils]: 50: Hoare triple {2456#false} assume !(0bv32 != ~cnt~0);#res := 0bv32; {2456#false} is VALID [2018-11-23 10:17:57,999 INFO L273 TraceCheckUtils]: 51: Hoare triple {2456#false} assume true; {2456#false} is VALID [2018-11-23 10:17:57,999 INFO L268 TraceCheckUtils]: 52: Hoare quadruple {2456#false} {2456#false} #88#return; {2456#false} is VALID [2018-11-23 10:17:58,000 INFO L273 TraceCheckUtils]: 53: Hoare triple {2456#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {2456#false} is VALID [2018-11-23 10:17:58,000 INFO L273 TraceCheckUtils]: 54: Hoare triple {2456#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {2456#false} is VALID [2018-11-23 10:17:58,000 INFO L273 TraceCheckUtils]: 55: Hoare triple {2456#false} assume !false; {2456#false} is VALID [2018-11-23 10:17:58,004 INFO L134 CoverageAnalysis]: Checked inductivity of 58 backedges. 14 proven. 1 refuted. 0 times theorem prover too weak. 43 trivial. 0 not checked. [2018-11-23 10:17:58,004 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 10:17:58,126 INFO L273 TraceCheckUtils]: 55: Hoare triple {2456#false} assume !false; {2456#false} is VALID [2018-11-23 10:17:58,126 INFO L273 TraceCheckUtils]: 54: Hoare triple {2456#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {2456#false} is VALID [2018-11-23 10:17:58,127 INFO L273 TraceCheckUtils]: 53: Hoare triple {2456#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {2456#false} is VALID [2018-11-23 10:17:58,127 INFO L268 TraceCheckUtils]: 52: Hoare quadruple {2455#true} {2456#false} #88#return; {2456#false} is VALID [2018-11-23 10:17:58,127 INFO L273 TraceCheckUtils]: 51: Hoare triple {2455#true} assume true; {2455#true} is VALID [2018-11-23 10:17:58,127 INFO L273 TraceCheckUtils]: 50: Hoare triple {2455#true} assume !(0bv32 != ~cnt~0);#res := 0bv32; {2455#true} is VALID [2018-11-23 10:17:58,128 INFO L273 TraceCheckUtils]: 49: Hoare triple {2455#true} assume !~bvslt32(~i~1, 5bv32); {2455#true} is VALID [2018-11-23 10:17:58,128 INFO L273 TraceCheckUtils]: 48: Hoare triple {2455#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {2455#true} is VALID [2018-11-23 10:17:58,128 INFO L273 TraceCheckUtils]: 47: Hoare triple {2455#true} assume !~bvsgt32(~i~1, 2bv32); {2455#true} is VALID [2018-11-23 10:17:58,128 INFO L273 TraceCheckUtils]: 46: Hoare triple {2455#true} assume !!~bvslt32(~i~1, 5bv32); {2455#true} is VALID [2018-11-23 10:17:58,129 INFO L273 TraceCheckUtils]: 45: Hoare triple {2455#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {2455#true} is VALID [2018-11-23 10:17:58,129 INFO L256 TraceCheckUtils]: 44: Hoare triple {2456#false} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {2455#true} is VALID [2018-11-23 10:17:58,129 INFO L273 TraceCheckUtils]: 43: Hoare triple {2456#false} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {2456#false} is VALID [2018-11-23 10:17:58,129 INFO L273 TraceCheckUtils]: 42: Hoare triple {2456#false} assume !~bvslt32(~i~2, 4bv32); {2456#false} is VALID [2018-11-23 10:17:58,129 INFO L273 TraceCheckUtils]: 41: Hoare triple {2456#false} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {2456#false} is VALID [2018-11-23 10:17:58,129 INFO L268 TraceCheckUtils]: 40: Hoare quadruple {2455#true} {2456#false} #86#return; {2456#false} is VALID [2018-11-23 10:17:58,130 INFO L273 TraceCheckUtils]: 39: Hoare triple {2455#true} assume true; {2455#true} is VALID [2018-11-23 10:17:58,130 INFO L273 TraceCheckUtils]: 38: Hoare triple {2455#true} assume !(0bv32 != ~cnt~0);#res := 0bv32; {2455#true} is VALID [2018-11-23 10:17:58,130 INFO L273 TraceCheckUtils]: 37: Hoare triple {2455#true} assume !~bvslt32(~i~1, 5bv32); {2455#true} is VALID [2018-11-23 10:17:58,130 INFO L273 TraceCheckUtils]: 36: Hoare triple {2455#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {2455#true} is VALID [2018-11-23 10:17:58,130 INFO L273 TraceCheckUtils]: 35: Hoare triple {2455#true} assume !~bvsgt32(~i~1, 2bv32); {2455#true} is VALID [2018-11-23 10:17:58,130 INFO L273 TraceCheckUtils]: 34: Hoare triple {2455#true} assume !!~bvslt32(~i~1, 5bv32); {2455#true} is VALID [2018-11-23 10:17:58,130 INFO L273 TraceCheckUtils]: 33: Hoare triple {2455#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {2455#true} is VALID [2018-11-23 10:17:58,131 INFO L256 TraceCheckUtils]: 32: Hoare triple {2456#false} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {2455#true} is VALID [2018-11-23 10:17:58,131 INFO L273 TraceCheckUtils]: 31: Hoare triple {2456#false} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {2456#false} is VALID [2018-11-23 10:17:58,131 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {2456#false} {2455#true} #84#return; {2456#false} is VALID [2018-11-23 10:17:58,131 INFO L273 TraceCheckUtils]: 29: Hoare triple {2456#false} assume true; {2456#false} is VALID [2018-11-23 10:17:58,131 INFO L273 TraceCheckUtils]: 28: Hoare triple {2456#false} assume !(0bv32 != ~cnt~0);#res := 0bv32; {2456#false} is VALID [2018-11-23 10:17:58,131 INFO L273 TraceCheckUtils]: 27: Hoare triple {2714#(bvslt rangesum_~i~1 (_ bv5 32))} assume !~bvslt32(~i~1, 5bv32); {2456#false} is VALID [2018-11-23 10:17:58,134 INFO L273 TraceCheckUtils]: 26: Hoare triple {2718#(bvslt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv5 32))} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {2714#(bvslt rangesum_~i~1 (_ bv5 32))} is VALID [2018-11-23 10:17:58,135 INFO L273 TraceCheckUtils]: 25: Hoare triple {2718#(bvslt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv5 32))} assume !~bvsgt32(~i~1, 2bv32); {2718#(bvslt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv5 32))} is VALID [2018-11-23 10:17:58,135 INFO L273 TraceCheckUtils]: 24: Hoare triple {2718#(bvslt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv5 32))} assume !!~bvslt32(~i~1, 5bv32); {2718#(bvslt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv5 32))} is VALID [2018-11-23 10:17:58,136 INFO L273 TraceCheckUtils]: 23: Hoare triple {2455#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {2718#(bvslt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv5 32))} is VALID [2018-11-23 10:17:58,136 INFO L256 TraceCheckUtils]: 22: Hoare triple {2455#true} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {2455#true} is VALID [2018-11-23 10:17:58,136 INFO L273 TraceCheckUtils]: 21: Hoare triple {2455#true} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {2455#true} is VALID [2018-11-23 10:17:58,136 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {2455#true} {2455#true} #82#return; {2455#true} is VALID [2018-11-23 10:17:58,136 INFO L273 TraceCheckUtils]: 19: Hoare triple {2455#true} assume true; {2455#true} is VALID [2018-11-23 10:17:58,137 INFO L273 TraceCheckUtils]: 18: Hoare triple {2455#true} assume !~bvslt32(~i~0, 5bv32); {2455#true} is VALID [2018-11-23 10:17:58,137 INFO L273 TraceCheckUtils]: 17: Hoare triple {2455#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {2455#true} is VALID [2018-11-23 10:17:58,137 INFO L273 TraceCheckUtils]: 16: Hoare triple {2455#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {2455#true} is VALID [2018-11-23 10:17:58,137 INFO L273 TraceCheckUtils]: 15: Hoare triple {2455#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {2455#true} is VALID [2018-11-23 10:17:58,137 INFO L273 TraceCheckUtils]: 14: Hoare triple {2455#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {2455#true} is VALID [2018-11-23 10:17:58,137 INFO L273 TraceCheckUtils]: 13: Hoare triple {2455#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {2455#true} is VALID [2018-11-23 10:17:58,138 INFO L273 TraceCheckUtils]: 12: Hoare triple {2455#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {2455#true} is VALID [2018-11-23 10:17:58,138 INFO L273 TraceCheckUtils]: 11: Hoare triple {2455#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {2455#true} is VALID [2018-11-23 10:17:58,138 INFO L273 TraceCheckUtils]: 10: Hoare triple {2455#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {2455#true} is VALID [2018-11-23 10:17:58,138 INFO L273 TraceCheckUtils]: 9: Hoare triple {2455#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {2455#true} is VALID [2018-11-23 10:17:58,138 INFO L273 TraceCheckUtils]: 8: Hoare triple {2455#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {2455#true} is VALID [2018-11-23 10:17:58,138 INFO L273 TraceCheckUtils]: 7: Hoare triple {2455#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {2455#true} is VALID [2018-11-23 10:17:58,138 INFO L256 TraceCheckUtils]: 6: Hoare triple {2455#true} call init_nondet(~#x~0.base, ~#x~0.offset); {2455#true} is VALID [2018-11-23 10:17:58,139 INFO L273 TraceCheckUtils]: 5: Hoare triple {2455#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {2455#true} is VALID [2018-11-23 10:17:58,139 INFO L256 TraceCheckUtils]: 4: Hoare triple {2455#true} call #t~ret12 := main(); {2455#true} is VALID [2018-11-23 10:17:58,139 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2455#true} {2455#true} #78#return; {2455#true} is VALID [2018-11-23 10:17:58,139 INFO L273 TraceCheckUtils]: 2: Hoare triple {2455#true} assume true; {2455#true} is VALID [2018-11-23 10:17:58,139 INFO L273 TraceCheckUtils]: 1: Hoare triple {2455#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {2455#true} is VALID [2018-11-23 10:17:58,139 INFO L256 TraceCheckUtils]: 0: Hoare triple {2455#true} call ULTIMATE.init(); {2455#true} is VALID [2018-11-23 10:17:58,141 INFO L134 CoverageAnalysis]: Checked inductivity of 58 backedges. 0 proven. 19 refuted. 0 times theorem prover too weak. 39 trivial. 0 not checked. [2018-11-23 10:17:58,142 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 10:17:58,143 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4] total 6 [2018-11-23 10:17:58,143 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 56 [2018-11-23 10:17:58,144 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:17:58,144 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2018-11-23 10:17:58,213 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:17:58,214 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2018-11-23 10:17:58,214 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2018-11-23 10:17:58,214 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=13, Invalid=17, Unknown=0, NotChecked=0, Total=30 [2018-11-23 10:17:58,214 INFO L87 Difference]: Start difference. First operand 47 states and 55 transitions. Second operand 6 states. [2018-11-23 10:17:59,010 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:59,010 INFO L93 Difference]: Finished difference Result 78 states and 100 transitions. [2018-11-23 10:17:59,010 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-23 10:17:59,011 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 56 [2018-11-23 10:17:59,011 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:17:59,011 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2018-11-23 10:17:59,013 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 78 transitions. [2018-11-23 10:17:59,014 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2018-11-23 10:17:59,016 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 78 transitions. [2018-11-23 10:17:59,016 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 78 transitions. [2018-11-23 10:17:59,286 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 78 edges. 78 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:17:59,288 INFO L225 Difference]: With dead ends: 78 [2018-11-23 10:17:59,289 INFO L226 Difference]: Without dead ends: 54 [2018-11-23 10:17:59,290 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 113 GetRequests, 108 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2018-11-23 10:17:59,290 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2018-11-23 10:17:59,317 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 51. [2018-11-23 10:17:59,318 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:17:59,318 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand 51 states. [2018-11-23 10:17:59,318 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 51 states. [2018-11-23 10:17:59,318 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 51 states. [2018-11-23 10:17:59,320 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:59,320 INFO L93 Difference]: Finished difference Result 54 states and 62 transitions. [2018-11-23 10:17:59,320 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 62 transitions. [2018-11-23 10:17:59,320 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:17:59,320 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:17:59,321 INFO L74 IsIncluded]: Start isIncluded. First operand 51 states. Second operand 54 states. [2018-11-23 10:17:59,321 INFO L87 Difference]: Start difference. First operand 51 states. Second operand 54 states. [2018-11-23 10:17:59,323 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:17:59,323 INFO L93 Difference]: Finished difference Result 54 states and 62 transitions. [2018-11-23 10:17:59,323 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 62 transitions. [2018-11-23 10:17:59,324 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:17:59,324 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:17:59,324 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:17:59,324 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:17:59,325 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 51 states. [2018-11-23 10:17:59,326 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 51 states to 51 states and 58 transitions. [2018-11-23 10:17:59,327 INFO L78 Accepts]: Start accepts. Automaton has 51 states and 58 transitions. Word has length 56 [2018-11-23 10:17:59,327 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:17:59,327 INFO L480 AbstractCegarLoop]: Abstraction has 51 states and 58 transitions. [2018-11-23 10:17:59,327 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2018-11-23 10:17:59,327 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 58 transitions. [2018-11-23 10:17:59,328 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 84 [2018-11-23 10:17:59,328 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:17:59,328 INFO L402 BasicCegarLoop]: trace histogram [12, 12, 6, 6, 5, 5, 3, 3, 3, 3, 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 10:17:59,329 INFO L423 AbstractCegarLoop]: === Iteration 8 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:17:59,329 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:17:59,329 INFO L82 PathProgramCache]: Analyzing trace with hash -1472347954, now seen corresponding path program 1 times [2018-11-23 10:17:59,329 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:17:59,330 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 9 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:17:59,352 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 10:18:00,511 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:18:00,995 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:18:00,997 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:18:01,191 INFO L256 TraceCheckUtils]: 0: Hoare triple {3088#true} call ULTIMATE.init(); {3088#true} is VALID [2018-11-23 10:18:01,192 INFO L273 TraceCheckUtils]: 1: Hoare triple {3088#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {3088#true} is VALID [2018-11-23 10:18:01,192 INFO L273 TraceCheckUtils]: 2: Hoare triple {3088#true} assume true; {3088#true} is VALID [2018-11-23 10:18:01,192 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {3088#true} {3088#true} #78#return; {3088#true} is VALID [2018-11-23 10:18:01,192 INFO L256 TraceCheckUtils]: 4: Hoare triple {3088#true} call #t~ret12 := main(); {3088#true} is VALID [2018-11-23 10:18:01,193 INFO L273 TraceCheckUtils]: 5: Hoare triple {3088#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {3088#true} is VALID [2018-11-23 10:18:01,193 INFO L256 TraceCheckUtils]: 6: Hoare triple {3088#true} call init_nondet(~#x~0.base, ~#x~0.offset); {3088#true} is VALID [2018-11-23 10:18:01,193 INFO L273 TraceCheckUtils]: 7: Hoare triple {3088#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {3088#true} is VALID [2018-11-23 10:18:01,193 INFO L273 TraceCheckUtils]: 8: Hoare triple {3088#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3088#true} is VALID [2018-11-23 10:18:01,194 INFO L273 TraceCheckUtils]: 9: Hoare triple {3088#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3088#true} is VALID [2018-11-23 10:18:01,194 INFO L273 TraceCheckUtils]: 10: Hoare triple {3088#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3088#true} is VALID [2018-11-23 10:18:01,194 INFO L273 TraceCheckUtils]: 11: Hoare triple {3088#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3088#true} is VALID [2018-11-23 10:18:01,194 INFO L273 TraceCheckUtils]: 12: Hoare triple {3088#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3088#true} is VALID [2018-11-23 10:18:01,194 INFO L273 TraceCheckUtils]: 13: Hoare triple {3088#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3088#true} is VALID [2018-11-23 10:18:01,194 INFO L273 TraceCheckUtils]: 14: Hoare triple {3088#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3088#true} is VALID [2018-11-23 10:18:01,194 INFO L273 TraceCheckUtils]: 15: Hoare triple {3088#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3088#true} is VALID [2018-11-23 10:18:01,195 INFO L273 TraceCheckUtils]: 16: Hoare triple {3088#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3088#true} is VALID [2018-11-23 10:18:01,195 INFO L273 TraceCheckUtils]: 17: Hoare triple {3088#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3088#true} is VALID [2018-11-23 10:18:01,195 INFO L273 TraceCheckUtils]: 18: Hoare triple {3088#true} assume !~bvslt32(~i~0, 5bv32); {3088#true} is VALID [2018-11-23 10:18:01,195 INFO L273 TraceCheckUtils]: 19: Hoare triple {3088#true} assume true; {3088#true} is VALID [2018-11-23 10:18:01,195 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {3088#true} {3088#true} #82#return; {3088#true} is VALID [2018-11-23 10:18:01,195 INFO L273 TraceCheckUtils]: 21: Hoare triple {3088#true} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {3088#true} is VALID [2018-11-23 10:18:01,196 INFO L256 TraceCheckUtils]: 22: Hoare triple {3088#true} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {3088#true} is VALID [2018-11-23 10:18:01,198 INFO L273 TraceCheckUtils]: 23: Hoare triple {3088#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {3162#(= (_ bv0 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:01,198 INFO L273 TraceCheckUtils]: 24: Hoare triple {3162#(= (_ bv0 32) rangesum_~i~1)} assume !!~bvslt32(~i~1, 5bv32); {3162#(= (_ bv0 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:01,199 INFO L273 TraceCheckUtils]: 25: Hoare triple {3162#(= (_ bv0 32) rangesum_~i~1)} assume !~bvsgt32(~i~1, 2bv32); {3162#(= (_ bv0 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:01,199 INFO L273 TraceCheckUtils]: 26: Hoare triple {3162#(= (_ bv0 32) rangesum_~i~1)} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3172#(= (_ bv1 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:01,199 INFO L273 TraceCheckUtils]: 27: Hoare triple {3172#(= (_ bv1 32) rangesum_~i~1)} assume !!~bvslt32(~i~1, 5bv32); {3172#(= (_ bv1 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:01,200 INFO L273 TraceCheckUtils]: 28: Hoare triple {3172#(= (_ bv1 32) rangesum_~i~1)} assume !~bvsgt32(~i~1, 2bv32); {3172#(= (_ bv1 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:01,200 INFO L273 TraceCheckUtils]: 29: Hoare triple {3172#(= (_ bv1 32) rangesum_~i~1)} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3182#(= (_ bv2 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:01,211 INFO L273 TraceCheckUtils]: 30: Hoare triple {3182#(= (_ bv2 32) rangesum_~i~1)} assume !!~bvslt32(~i~1, 5bv32); {3182#(= (_ bv2 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:01,212 INFO L273 TraceCheckUtils]: 31: Hoare triple {3182#(= (_ bv2 32) rangesum_~i~1)} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3089#false} is VALID [2018-11-23 10:18:01,213 INFO L273 TraceCheckUtils]: 32: Hoare triple {3089#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3089#false} is VALID [2018-11-23 10:18:01,213 INFO L273 TraceCheckUtils]: 33: Hoare triple {3089#false} assume !!~bvslt32(~i~1, 5bv32); {3089#false} is VALID [2018-11-23 10:18:01,213 INFO L273 TraceCheckUtils]: 34: Hoare triple {3089#false} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3089#false} is VALID [2018-11-23 10:18:01,213 INFO L273 TraceCheckUtils]: 35: Hoare triple {3089#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3089#false} is VALID [2018-11-23 10:18:01,213 INFO L273 TraceCheckUtils]: 36: Hoare triple {3089#false} assume !~bvslt32(~i~1, 5bv32); {3089#false} is VALID [2018-11-23 10:18:01,213 INFO L273 TraceCheckUtils]: 37: Hoare triple {3089#false} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {3089#false} is VALID [2018-11-23 10:18:01,214 INFO L273 TraceCheckUtils]: 38: Hoare triple {3089#false} assume true; {3089#false} is VALID [2018-11-23 10:18:01,214 INFO L268 TraceCheckUtils]: 39: Hoare quadruple {3089#false} {3088#true} #84#return; {3089#false} is VALID [2018-11-23 10:18:01,214 INFO L273 TraceCheckUtils]: 40: Hoare triple {3089#false} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {3089#false} is VALID [2018-11-23 10:18:01,214 INFO L256 TraceCheckUtils]: 41: Hoare triple {3089#false} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {3089#false} is VALID [2018-11-23 10:18:01,214 INFO L273 TraceCheckUtils]: 42: Hoare triple {3089#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {3089#false} is VALID [2018-11-23 10:18:01,214 INFO L273 TraceCheckUtils]: 43: Hoare triple {3089#false} assume !!~bvslt32(~i~1, 5bv32); {3089#false} is VALID [2018-11-23 10:18:01,215 INFO L273 TraceCheckUtils]: 44: Hoare triple {3089#false} assume !~bvsgt32(~i~1, 2bv32); {3089#false} is VALID [2018-11-23 10:18:01,215 INFO L273 TraceCheckUtils]: 45: Hoare triple {3089#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3089#false} is VALID [2018-11-23 10:18:01,215 INFO L273 TraceCheckUtils]: 46: Hoare triple {3089#false} assume !!~bvslt32(~i~1, 5bv32); {3089#false} is VALID [2018-11-23 10:18:01,215 INFO L273 TraceCheckUtils]: 47: Hoare triple {3089#false} assume !~bvsgt32(~i~1, 2bv32); {3089#false} is VALID [2018-11-23 10:18:01,215 INFO L273 TraceCheckUtils]: 48: Hoare triple {3089#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3089#false} is VALID [2018-11-23 10:18:01,215 INFO L273 TraceCheckUtils]: 49: Hoare triple {3089#false} assume !!~bvslt32(~i~1, 5bv32); {3089#false} is VALID [2018-11-23 10:18:01,216 INFO L273 TraceCheckUtils]: 50: Hoare triple {3089#false} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3089#false} is VALID [2018-11-23 10:18:01,216 INFO L273 TraceCheckUtils]: 51: Hoare triple {3089#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3089#false} is VALID [2018-11-23 10:18:01,216 INFO L273 TraceCheckUtils]: 52: Hoare triple {3089#false} assume !!~bvslt32(~i~1, 5bv32); {3089#false} is VALID [2018-11-23 10:18:01,216 INFO L273 TraceCheckUtils]: 53: Hoare triple {3089#false} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3089#false} is VALID [2018-11-23 10:18:01,216 INFO L273 TraceCheckUtils]: 54: Hoare triple {3089#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3089#false} is VALID [2018-11-23 10:18:01,216 INFO L273 TraceCheckUtils]: 55: Hoare triple {3089#false} assume !~bvslt32(~i~1, 5bv32); {3089#false} is VALID [2018-11-23 10:18:01,217 INFO L273 TraceCheckUtils]: 56: Hoare triple {3089#false} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {3089#false} is VALID [2018-11-23 10:18:01,217 INFO L273 TraceCheckUtils]: 57: Hoare triple {3089#false} assume true; {3089#false} is VALID [2018-11-23 10:18:01,217 INFO L268 TraceCheckUtils]: 58: Hoare quadruple {3089#false} {3089#false} #86#return; {3089#false} is VALID [2018-11-23 10:18:01,217 INFO L273 TraceCheckUtils]: 59: Hoare triple {3089#false} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {3089#false} is VALID [2018-11-23 10:18:01,218 INFO L273 TraceCheckUtils]: 60: Hoare triple {3089#false} assume !~bvslt32(~i~2, 4bv32); {3089#false} is VALID [2018-11-23 10:18:01,218 INFO L273 TraceCheckUtils]: 61: Hoare triple {3089#false} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {3089#false} is VALID [2018-11-23 10:18:01,218 INFO L256 TraceCheckUtils]: 62: Hoare triple {3089#false} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {3089#false} is VALID [2018-11-23 10:18:01,218 INFO L273 TraceCheckUtils]: 63: Hoare triple {3089#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {3089#false} is VALID [2018-11-23 10:18:01,219 INFO L273 TraceCheckUtils]: 64: Hoare triple {3089#false} assume !!~bvslt32(~i~1, 5bv32); {3089#false} is VALID [2018-11-23 10:18:01,219 INFO L273 TraceCheckUtils]: 65: Hoare triple {3089#false} assume !~bvsgt32(~i~1, 2bv32); {3089#false} is VALID [2018-11-23 10:18:01,219 INFO L273 TraceCheckUtils]: 66: Hoare triple {3089#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3089#false} is VALID [2018-11-23 10:18:01,219 INFO L273 TraceCheckUtils]: 67: Hoare triple {3089#false} assume !!~bvslt32(~i~1, 5bv32); {3089#false} is VALID [2018-11-23 10:18:01,220 INFO L273 TraceCheckUtils]: 68: Hoare triple {3089#false} assume !~bvsgt32(~i~1, 2bv32); {3089#false} is VALID [2018-11-23 10:18:01,220 INFO L273 TraceCheckUtils]: 69: Hoare triple {3089#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3089#false} is VALID [2018-11-23 10:18:01,220 INFO L273 TraceCheckUtils]: 70: Hoare triple {3089#false} assume !!~bvslt32(~i~1, 5bv32); {3089#false} is VALID [2018-11-23 10:18:01,220 INFO L273 TraceCheckUtils]: 71: Hoare triple {3089#false} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3089#false} is VALID [2018-11-23 10:18:01,221 INFO L273 TraceCheckUtils]: 72: Hoare triple {3089#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3089#false} is VALID [2018-11-23 10:18:01,221 INFO L273 TraceCheckUtils]: 73: Hoare triple {3089#false} assume !!~bvslt32(~i~1, 5bv32); {3089#false} is VALID [2018-11-23 10:18:01,221 INFO L273 TraceCheckUtils]: 74: Hoare triple {3089#false} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3089#false} is VALID [2018-11-23 10:18:01,221 INFO L273 TraceCheckUtils]: 75: Hoare triple {3089#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3089#false} is VALID [2018-11-23 10:18:01,221 INFO L273 TraceCheckUtils]: 76: Hoare triple {3089#false} assume !~bvslt32(~i~1, 5bv32); {3089#false} is VALID [2018-11-23 10:18:01,222 INFO L273 TraceCheckUtils]: 77: Hoare triple {3089#false} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {3089#false} is VALID [2018-11-23 10:18:01,222 INFO L273 TraceCheckUtils]: 78: Hoare triple {3089#false} assume true; {3089#false} is VALID [2018-11-23 10:18:01,222 INFO L268 TraceCheckUtils]: 79: Hoare quadruple {3089#false} {3089#false} #88#return; {3089#false} is VALID [2018-11-23 10:18:01,222 INFO L273 TraceCheckUtils]: 80: Hoare triple {3089#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {3089#false} is VALID [2018-11-23 10:18:01,223 INFO L273 TraceCheckUtils]: 81: Hoare triple {3089#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {3089#false} is VALID [2018-11-23 10:18:01,223 INFO L273 TraceCheckUtils]: 82: Hoare triple {3089#false} assume !false; {3089#false} is VALID [2018-11-23 10:18:01,230 INFO L134 CoverageAnalysis]: Checked inductivity of 274 backedges. 85 proven. 7 refuted. 0 times theorem prover too weak. 182 trivial. 0 not checked. [2018-11-23 10:18:01,230 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 10:18:01,389 INFO L273 TraceCheckUtils]: 82: Hoare triple {3089#false} assume !false; {3089#false} is VALID [2018-11-23 10:18:01,390 INFO L273 TraceCheckUtils]: 81: Hoare triple {3089#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {3089#false} is VALID [2018-11-23 10:18:01,390 INFO L273 TraceCheckUtils]: 80: Hoare triple {3089#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {3089#false} is VALID [2018-11-23 10:18:01,390 INFO L268 TraceCheckUtils]: 79: Hoare quadruple {3088#true} {3089#false} #88#return; {3089#false} is VALID [2018-11-23 10:18:01,390 INFO L273 TraceCheckUtils]: 78: Hoare triple {3088#true} assume true; {3088#true} is VALID [2018-11-23 10:18:01,390 INFO L273 TraceCheckUtils]: 77: Hoare triple {3088#true} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {3088#true} is VALID [2018-11-23 10:18:01,391 INFO L273 TraceCheckUtils]: 76: Hoare triple {3088#true} assume !~bvslt32(~i~1, 5bv32); {3088#true} is VALID [2018-11-23 10:18:01,391 INFO L273 TraceCheckUtils]: 75: Hoare triple {3088#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3088#true} is VALID [2018-11-23 10:18:01,391 INFO L273 TraceCheckUtils]: 74: Hoare triple {3088#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3088#true} is VALID [2018-11-23 10:18:01,391 INFO L273 TraceCheckUtils]: 73: Hoare triple {3088#true} assume !!~bvslt32(~i~1, 5bv32); {3088#true} is VALID [2018-11-23 10:18:01,391 INFO L273 TraceCheckUtils]: 72: Hoare triple {3088#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3088#true} is VALID [2018-11-23 10:18:01,391 INFO L273 TraceCheckUtils]: 71: Hoare triple {3088#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3088#true} is VALID [2018-11-23 10:18:01,391 INFO L273 TraceCheckUtils]: 70: Hoare triple {3088#true} assume !!~bvslt32(~i~1, 5bv32); {3088#true} is VALID [2018-11-23 10:18:01,391 INFO L273 TraceCheckUtils]: 69: Hoare triple {3088#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3088#true} is VALID [2018-11-23 10:18:01,392 INFO L273 TraceCheckUtils]: 68: Hoare triple {3088#true} assume !~bvsgt32(~i~1, 2bv32); {3088#true} is VALID [2018-11-23 10:18:01,392 INFO L273 TraceCheckUtils]: 67: Hoare triple {3088#true} assume !!~bvslt32(~i~1, 5bv32); {3088#true} is VALID [2018-11-23 10:18:01,392 INFO L273 TraceCheckUtils]: 66: Hoare triple {3088#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3088#true} is VALID [2018-11-23 10:18:01,392 INFO L273 TraceCheckUtils]: 65: Hoare triple {3088#true} assume !~bvsgt32(~i~1, 2bv32); {3088#true} is VALID [2018-11-23 10:18:01,392 INFO L273 TraceCheckUtils]: 64: Hoare triple {3088#true} assume !!~bvslt32(~i~1, 5bv32); {3088#true} is VALID [2018-11-23 10:18:01,393 INFO L273 TraceCheckUtils]: 63: Hoare triple {3088#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {3088#true} is VALID [2018-11-23 10:18:01,393 INFO L256 TraceCheckUtils]: 62: Hoare triple {3089#false} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {3088#true} is VALID [2018-11-23 10:18:01,393 INFO L273 TraceCheckUtils]: 61: Hoare triple {3089#false} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {3089#false} is VALID [2018-11-23 10:18:01,393 INFO L273 TraceCheckUtils]: 60: Hoare triple {3089#false} assume !~bvslt32(~i~2, 4bv32); {3089#false} is VALID [2018-11-23 10:18:01,393 INFO L273 TraceCheckUtils]: 59: Hoare triple {3089#false} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {3089#false} is VALID [2018-11-23 10:18:01,394 INFO L268 TraceCheckUtils]: 58: Hoare quadruple {3088#true} {3089#false} #86#return; {3089#false} is VALID [2018-11-23 10:18:01,394 INFO L273 TraceCheckUtils]: 57: Hoare triple {3088#true} assume true; {3088#true} is VALID [2018-11-23 10:18:01,394 INFO L273 TraceCheckUtils]: 56: Hoare triple {3088#true} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {3088#true} is VALID [2018-11-23 10:18:01,394 INFO L273 TraceCheckUtils]: 55: Hoare triple {3088#true} assume !~bvslt32(~i~1, 5bv32); {3088#true} is VALID [2018-11-23 10:18:01,394 INFO L273 TraceCheckUtils]: 54: Hoare triple {3088#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3088#true} is VALID [2018-11-23 10:18:01,394 INFO L273 TraceCheckUtils]: 53: Hoare triple {3088#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3088#true} is VALID [2018-11-23 10:18:01,395 INFO L273 TraceCheckUtils]: 52: Hoare triple {3088#true} assume !!~bvslt32(~i~1, 5bv32); {3088#true} is VALID [2018-11-23 10:18:01,395 INFO L273 TraceCheckUtils]: 51: Hoare triple {3088#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3088#true} is VALID [2018-11-23 10:18:01,395 INFO L273 TraceCheckUtils]: 50: Hoare triple {3088#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3088#true} is VALID [2018-11-23 10:18:01,395 INFO L273 TraceCheckUtils]: 49: Hoare triple {3088#true} assume !!~bvslt32(~i~1, 5bv32); {3088#true} is VALID [2018-11-23 10:18:01,395 INFO L273 TraceCheckUtils]: 48: Hoare triple {3088#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3088#true} is VALID [2018-11-23 10:18:01,396 INFO L273 TraceCheckUtils]: 47: Hoare triple {3088#true} assume !~bvsgt32(~i~1, 2bv32); {3088#true} is VALID [2018-11-23 10:18:01,396 INFO L273 TraceCheckUtils]: 46: Hoare triple {3088#true} assume !!~bvslt32(~i~1, 5bv32); {3088#true} is VALID [2018-11-23 10:18:01,396 INFO L273 TraceCheckUtils]: 45: Hoare triple {3088#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3088#true} is VALID [2018-11-23 10:18:01,396 INFO L273 TraceCheckUtils]: 44: Hoare triple {3088#true} assume !~bvsgt32(~i~1, 2bv32); {3088#true} is VALID [2018-11-23 10:18:01,396 INFO L273 TraceCheckUtils]: 43: Hoare triple {3088#true} assume !!~bvslt32(~i~1, 5bv32); {3088#true} is VALID [2018-11-23 10:18:01,396 INFO L273 TraceCheckUtils]: 42: Hoare triple {3088#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {3088#true} is VALID [2018-11-23 10:18:01,397 INFO L256 TraceCheckUtils]: 41: Hoare triple {3089#false} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {3088#true} is VALID [2018-11-23 10:18:01,397 INFO L273 TraceCheckUtils]: 40: Hoare triple {3089#false} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {3089#false} is VALID [2018-11-23 10:18:01,397 INFO L268 TraceCheckUtils]: 39: Hoare quadruple {3089#false} {3088#true} #84#return; {3089#false} is VALID [2018-11-23 10:18:01,397 INFO L273 TraceCheckUtils]: 38: Hoare triple {3089#false} assume true; {3089#false} is VALID [2018-11-23 10:18:01,397 INFO L273 TraceCheckUtils]: 37: Hoare triple {3089#false} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {3089#false} is VALID [2018-11-23 10:18:01,398 INFO L273 TraceCheckUtils]: 36: Hoare triple {3089#false} assume !~bvslt32(~i~1, 5bv32); {3089#false} is VALID [2018-11-23 10:18:01,398 INFO L273 TraceCheckUtils]: 35: Hoare triple {3089#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3089#false} is VALID [2018-11-23 10:18:01,398 INFO L273 TraceCheckUtils]: 34: Hoare triple {3089#false} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3089#false} is VALID [2018-11-23 10:18:01,398 INFO L273 TraceCheckUtils]: 33: Hoare triple {3089#false} assume !!~bvslt32(~i~1, 5bv32); {3089#false} is VALID [2018-11-23 10:18:01,398 INFO L273 TraceCheckUtils]: 32: Hoare triple {3089#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3089#false} is VALID [2018-11-23 10:18:01,402 INFO L273 TraceCheckUtils]: 31: Hoare triple {3498#(not (bvsgt rangesum_~i~1 (_ bv2 32)))} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3089#false} is VALID [2018-11-23 10:18:01,403 INFO L273 TraceCheckUtils]: 30: Hoare triple {3498#(not (bvsgt rangesum_~i~1 (_ bv2 32)))} assume !!~bvslt32(~i~1, 5bv32); {3498#(not (bvsgt rangesum_~i~1 (_ bv2 32)))} is VALID [2018-11-23 10:18:01,405 INFO L273 TraceCheckUtils]: 29: Hoare triple {3505#(not (bvsgt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv2 32)))} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3498#(not (bvsgt rangesum_~i~1 (_ bv2 32)))} is VALID [2018-11-23 10:18:01,411 INFO L273 TraceCheckUtils]: 28: Hoare triple {3505#(not (bvsgt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv2 32)))} assume !~bvsgt32(~i~1, 2bv32); {3505#(not (bvsgt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv2 32)))} is VALID [2018-11-23 10:18:01,411 INFO L273 TraceCheckUtils]: 27: Hoare triple {3505#(not (bvsgt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv2 32)))} assume !!~bvslt32(~i~1, 5bv32); {3505#(not (bvsgt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv2 32)))} is VALID [2018-11-23 10:18:01,414 INFO L273 TraceCheckUtils]: 26: Hoare triple {3515#(not (bvsgt (bvadd rangesum_~i~1 (_ bv2 32)) (_ bv2 32)))} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3505#(not (bvsgt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv2 32)))} is VALID [2018-11-23 10:18:01,415 INFO L273 TraceCheckUtils]: 25: Hoare triple {3515#(not (bvsgt (bvadd rangesum_~i~1 (_ bv2 32)) (_ bv2 32)))} assume !~bvsgt32(~i~1, 2bv32); {3515#(not (bvsgt (bvadd rangesum_~i~1 (_ bv2 32)) (_ bv2 32)))} is VALID [2018-11-23 10:18:01,415 INFO L273 TraceCheckUtils]: 24: Hoare triple {3515#(not (bvsgt (bvadd rangesum_~i~1 (_ bv2 32)) (_ bv2 32)))} assume !!~bvslt32(~i~1, 5bv32); {3515#(not (bvsgt (bvadd rangesum_~i~1 (_ bv2 32)) (_ bv2 32)))} is VALID [2018-11-23 10:18:01,417 INFO L273 TraceCheckUtils]: 23: Hoare triple {3088#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {3515#(not (bvsgt (bvadd rangesum_~i~1 (_ bv2 32)) (_ bv2 32)))} is VALID [2018-11-23 10:18:01,417 INFO L256 TraceCheckUtils]: 22: Hoare triple {3088#true} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {3088#true} is VALID [2018-11-23 10:18:01,417 INFO L273 TraceCheckUtils]: 21: Hoare triple {3088#true} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {3088#true} is VALID [2018-11-23 10:18:01,417 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {3088#true} {3088#true} #82#return; {3088#true} is VALID [2018-11-23 10:18:01,418 INFO L273 TraceCheckUtils]: 19: Hoare triple {3088#true} assume true; {3088#true} is VALID [2018-11-23 10:18:01,418 INFO L273 TraceCheckUtils]: 18: Hoare triple {3088#true} assume !~bvslt32(~i~0, 5bv32); {3088#true} is VALID [2018-11-23 10:18:01,418 INFO L273 TraceCheckUtils]: 17: Hoare triple {3088#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3088#true} is VALID [2018-11-23 10:18:01,418 INFO L273 TraceCheckUtils]: 16: Hoare triple {3088#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3088#true} is VALID [2018-11-23 10:18:01,418 INFO L273 TraceCheckUtils]: 15: Hoare triple {3088#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3088#true} is VALID [2018-11-23 10:18:01,419 INFO L273 TraceCheckUtils]: 14: Hoare triple {3088#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3088#true} is VALID [2018-11-23 10:18:01,419 INFO L273 TraceCheckUtils]: 13: Hoare triple {3088#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3088#true} is VALID [2018-11-23 10:18:01,419 INFO L273 TraceCheckUtils]: 12: Hoare triple {3088#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3088#true} is VALID [2018-11-23 10:18:01,419 INFO L273 TraceCheckUtils]: 11: Hoare triple {3088#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3088#true} is VALID [2018-11-23 10:18:01,419 INFO L273 TraceCheckUtils]: 10: Hoare triple {3088#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3088#true} is VALID [2018-11-23 10:18:01,419 INFO L273 TraceCheckUtils]: 9: Hoare triple {3088#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3088#true} is VALID [2018-11-23 10:18:01,420 INFO L273 TraceCheckUtils]: 8: Hoare triple {3088#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3088#true} is VALID [2018-11-23 10:18:01,420 INFO L273 TraceCheckUtils]: 7: Hoare triple {3088#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {3088#true} is VALID [2018-11-23 10:18:01,420 INFO L256 TraceCheckUtils]: 6: Hoare triple {3088#true} call init_nondet(~#x~0.base, ~#x~0.offset); {3088#true} is VALID [2018-11-23 10:18:01,420 INFO L273 TraceCheckUtils]: 5: Hoare triple {3088#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {3088#true} is VALID [2018-11-23 10:18:01,420 INFO L256 TraceCheckUtils]: 4: Hoare triple {3088#true} call #t~ret12 := main(); {3088#true} is VALID [2018-11-23 10:18:01,420 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {3088#true} {3088#true} #78#return; {3088#true} is VALID [2018-11-23 10:18:01,420 INFO L273 TraceCheckUtils]: 2: Hoare triple {3088#true} assume true; {3088#true} is VALID [2018-11-23 10:18:01,420 INFO L273 TraceCheckUtils]: 1: Hoare triple {3088#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {3088#true} is VALID [2018-11-23 10:18:01,421 INFO L256 TraceCheckUtils]: 0: Hoare triple {3088#true} call ULTIMATE.init(); {3088#true} is VALID [2018-11-23 10:18:01,427 INFO L134 CoverageAnalysis]: Checked inductivity of 274 backedges. 13 proven. 127 refuted. 0 times theorem prover too weak. 134 trivial. 0 not checked. [2018-11-23 10:18:01,436 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 10:18:01,437 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5] total 8 [2018-11-23 10:18:01,439 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 83 [2018-11-23 10:18:01,441 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:18:01,441 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2018-11-23 10:18:01,711 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:18:01,711 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2018-11-23 10:18:01,711 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2018-11-23 10:18:01,712 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=37, Unknown=0, NotChecked=0, Total=56 [2018-11-23 10:18:01,712 INFO L87 Difference]: Start difference. First operand 51 states and 58 transitions. Second operand 8 states. [2018-11-23 10:18:02,997 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:18:02,997 INFO L93 Difference]: Finished difference Result 80 states and 95 transitions. [2018-11-23 10:18:02,997 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-23 10:18:02,998 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 83 [2018-11-23 10:18:02,998 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:18:02,998 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2018-11-23 10:18:03,000 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 74 transitions. [2018-11-23 10:18:03,000 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2018-11-23 10:18:03,002 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 74 transitions. [2018-11-23 10:18:03,002 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 74 transitions. [2018-11-23 10:18:03,290 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 74 edges. 74 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:18:03,291 INFO L225 Difference]: With dead ends: 80 [2018-11-23 10:18:03,292 INFO L226 Difference]: Without dead ends: 52 [2018-11-23 10:18:03,293 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 165 GetRequests, 159 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 3 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=19, Invalid=37, Unknown=0, NotChecked=0, Total=56 [2018-11-23 10:18:03,293 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2018-11-23 10:18:03,318 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 51. [2018-11-23 10:18:03,318 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:18:03,319 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 51 states. [2018-11-23 10:18:03,319 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 51 states. [2018-11-23 10:18:03,319 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 51 states. [2018-11-23 10:18:03,321 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:18:03,322 INFO L93 Difference]: Finished difference Result 52 states and 58 transitions. [2018-11-23 10:18:03,322 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 58 transitions. [2018-11-23 10:18:03,322 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:18:03,322 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:18:03,323 INFO L74 IsIncluded]: Start isIncluded. First operand 51 states. Second operand 52 states. [2018-11-23 10:18:03,323 INFO L87 Difference]: Start difference. First operand 51 states. Second operand 52 states. [2018-11-23 10:18:03,325 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:18:03,325 INFO L93 Difference]: Finished difference Result 52 states and 58 transitions. [2018-11-23 10:18:03,325 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 58 transitions. [2018-11-23 10:18:03,325 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:18:03,326 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:18:03,326 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:18:03,326 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:18:03,326 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 51 states. [2018-11-23 10:18:03,328 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 51 states to 51 states and 57 transitions. [2018-11-23 10:18:03,328 INFO L78 Accepts]: Start accepts. Automaton has 51 states and 57 transitions. Word has length 83 [2018-11-23 10:18:03,328 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:18:03,328 INFO L480 AbstractCegarLoop]: Abstraction has 51 states and 57 transitions. [2018-11-23 10:18:03,329 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2018-11-23 10:18:03,329 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 57 transitions. [2018-11-23 10:18:03,329 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 84 [2018-11-23 10:18:03,330 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:18:03,330 INFO L402 BasicCegarLoop]: trace histogram [12, 12, 9, 5, 5, 3, 3, 3, 3, 3, 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 10:18:03,330 INFO L423 AbstractCegarLoop]: === Iteration 9 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:18:03,330 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:18:03,330 INFO L82 PathProgramCache]: Analyzing trace with hash 251770956, now seen corresponding path program 2 times [2018-11-23 10:18:03,331 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:18:03,331 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 10 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 10 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:18:03,357 INFO L101 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2018-11-23 10:18:05,359 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-23 10:18:05,360 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 10:18:05,833 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:18:05,836 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:18:06,128 INFO L256 TraceCheckUtils]: 0: Hoare triple {3881#true} call ULTIMATE.init(); {3881#true} is VALID [2018-11-23 10:18:06,128 INFO L273 TraceCheckUtils]: 1: Hoare triple {3881#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {3881#true} is VALID [2018-11-23 10:18:06,128 INFO L273 TraceCheckUtils]: 2: Hoare triple {3881#true} assume true; {3881#true} is VALID [2018-11-23 10:18:06,128 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {3881#true} {3881#true} #78#return; {3881#true} is VALID [2018-11-23 10:18:06,129 INFO L256 TraceCheckUtils]: 4: Hoare triple {3881#true} call #t~ret12 := main(); {3881#true} is VALID [2018-11-23 10:18:06,129 INFO L273 TraceCheckUtils]: 5: Hoare triple {3881#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {3881#true} is VALID [2018-11-23 10:18:06,129 INFO L256 TraceCheckUtils]: 6: Hoare triple {3881#true} call init_nondet(~#x~0.base, ~#x~0.offset); {3881#true} is VALID [2018-11-23 10:18:06,129 INFO L273 TraceCheckUtils]: 7: Hoare triple {3881#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {3881#true} is VALID [2018-11-23 10:18:06,129 INFO L273 TraceCheckUtils]: 8: Hoare triple {3881#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3881#true} is VALID [2018-11-23 10:18:06,129 INFO L273 TraceCheckUtils]: 9: Hoare triple {3881#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3881#true} is VALID [2018-11-23 10:18:06,129 INFO L273 TraceCheckUtils]: 10: Hoare triple {3881#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3881#true} is VALID [2018-11-23 10:18:06,129 INFO L273 TraceCheckUtils]: 11: Hoare triple {3881#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3881#true} is VALID [2018-11-23 10:18:06,130 INFO L273 TraceCheckUtils]: 12: Hoare triple {3881#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3881#true} is VALID [2018-11-23 10:18:06,130 INFO L273 TraceCheckUtils]: 13: Hoare triple {3881#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3881#true} is VALID [2018-11-23 10:18:06,130 INFO L273 TraceCheckUtils]: 14: Hoare triple {3881#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3881#true} is VALID [2018-11-23 10:18:06,130 INFO L273 TraceCheckUtils]: 15: Hoare triple {3881#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3881#true} is VALID [2018-11-23 10:18:06,130 INFO L273 TraceCheckUtils]: 16: Hoare triple {3881#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3881#true} is VALID [2018-11-23 10:18:06,130 INFO L273 TraceCheckUtils]: 17: Hoare triple {3881#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3881#true} is VALID [2018-11-23 10:18:06,130 INFO L273 TraceCheckUtils]: 18: Hoare triple {3881#true} assume !~bvslt32(~i~0, 5bv32); {3881#true} is VALID [2018-11-23 10:18:06,130 INFO L273 TraceCheckUtils]: 19: Hoare triple {3881#true} assume true; {3881#true} is VALID [2018-11-23 10:18:06,131 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {3881#true} {3881#true} #82#return; {3881#true} is VALID [2018-11-23 10:18:06,131 INFO L273 TraceCheckUtils]: 21: Hoare triple {3881#true} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {3881#true} is VALID [2018-11-23 10:18:06,131 INFO L256 TraceCheckUtils]: 22: Hoare triple {3881#true} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {3881#true} is VALID [2018-11-23 10:18:06,134 INFO L273 TraceCheckUtils]: 23: Hoare triple {3881#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {3955#(= (_ bv0 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:06,134 INFO L273 TraceCheckUtils]: 24: Hoare triple {3955#(= (_ bv0 32) rangesum_~i~1)} assume !!~bvslt32(~i~1, 5bv32); {3955#(= (_ bv0 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:06,136 INFO L273 TraceCheckUtils]: 25: Hoare triple {3955#(= (_ bv0 32) rangesum_~i~1)} assume !~bvsgt32(~i~1, 2bv32); {3955#(= (_ bv0 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:06,136 INFO L273 TraceCheckUtils]: 26: Hoare triple {3955#(= (_ bv0 32) rangesum_~i~1)} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3965#(= (_ bv1 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:06,138 INFO L273 TraceCheckUtils]: 27: Hoare triple {3965#(= (_ bv1 32) rangesum_~i~1)} assume !!~bvslt32(~i~1, 5bv32); {3965#(= (_ bv1 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:06,138 INFO L273 TraceCheckUtils]: 28: Hoare triple {3965#(= (_ bv1 32) rangesum_~i~1)} assume !~bvsgt32(~i~1, 2bv32); {3965#(= (_ bv1 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:06,140 INFO L273 TraceCheckUtils]: 29: Hoare triple {3965#(= (_ bv1 32) rangesum_~i~1)} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3975#(= (_ bv2 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:06,140 INFO L273 TraceCheckUtils]: 30: Hoare triple {3975#(= (_ bv2 32) rangesum_~i~1)} assume !!~bvslt32(~i~1, 5bv32); {3975#(= (_ bv2 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:06,143 INFO L273 TraceCheckUtils]: 31: Hoare triple {3975#(= (_ bv2 32) rangesum_~i~1)} assume !~bvsgt32(~i~1, 2bv32); {3975#(= (_ bv2 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:06,143 INFO L273 TraceCheckUtils]: 32: Hoare triple {3975#(= (_ bv2 32) rangesum_~i~1)} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3985#(= (_ bv3 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:06,145 INFO L273 TraceCheckUtils]: 33: Hoare triple {3985#(= (_ bv3 32) rangesum_~i~1)} assume !!~bvslt32(~i~1, 5bv32); {3985#(= (_ bv3 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:06,164 INFO L273 TraceCheckUtils]: 34: Hoare triple {3985#(= (_ bv3 32) rangesum_~i~1)} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3985#(= (_ bv3 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:06,165 INFO L273 TraceCheckUtils]: 35: Hoare triple {3985#(= (_ bv3 32) rangesum_~i~1)} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3995#(= (_ bv4 32) rangesum_~i~1)} is VALID [2018-11-23 10:18:06,166 INFO L273 TraceCheckUtils]: 36: Hoare triple {3995#(= (_ bv4 32) rangesum_~i~1)} assume !~bvslt32(~i~1, 5bv32); {3882#false} is VALID [2018-11-23 10:18:06,166 INFO L273 TraceCheckUtils]: 37: Hoare triple {3882#false} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {3882#false} is VALID [2018-11-23 10:18:06,166 INFO L273 TraceCheckUtils]: 38: Hoare triple {3882#false} assume true; {3882#false} is VALID [2018-11-23 10:18:06,166 INFO L268 TraceCheckUtils]: 39: Hoare quadruple {3882#false} {3881#true} #84#return; {3882#false} is VALID [2018-11-23 10:18:06,166 INFO L273 TraceCheckUtils]: 40: Hoare triple {3882#false} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {3882#false} is VALID [2018-11-23 10:18:06,166 INFO L256 TraceCheckUtils]: 41: Hoare triple {3882#false} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {3882#false} is VALID [2018-11-23 10:18:06,167 INFO L273 TraceCheckUtils]: 42: Hoare triple {3882#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {3882#false} is VALID [2018-11-23 10:18:06,167 INFO L273 TraceCheckUtils]: 43: Hoare triple {3882#false} assume !!~bvslt32(~i~1, 5bv32); {3882#false} is VALID [2018-11-23 10:18:06,167 INFO L273 TraceCheckUtils]: 44: Hoare triple {3882#false} assume !~bvsgt32(~i~1, 2bv32); {3882#false} is VALID [2018-11-23 10:18:06,167 INFO L273 TraceCheckUtils]: 45: Hoare triple {3882#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3882#false} is VALID [2018-11-23 10:18:06,167 INFO L273 TraceCheckUtils]: 46: Hoare triple {3882#false} assume !!~bvslt32(~i~1, 5bv32); {3882#false} is VALID [2018-11-23 10:18:06,167 INFO L273 TraceCheckUtils]: 47: Hoare triple {3882#false} assume !~bvsgt32(~i~1, 2bv32); {3882#false} is VALID [2018-11-23 10:18:06,167 INFO L273 TraceCheckUtils]: 48: Hoare triple {3882#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3882#false} is VALID [2018-11-23 10:18:06,168 INFO L273 TraceCheckUtils]: 49: Hoare triple {3882#false} assume !!~bvslt32(~i~1, 5bv32); {3882#false} is VALID [2018-11-23 10:18:06,168 INFO L273 TraceCheckUtils]: 50: Hoare triple {3882#false} assume !~bvsgt32(~i~1, 2bv32); {3882#false} is VALID [2018-11-23 10:18:06,168 INFO L273 TraceCheckUtils]: 51: Hoare triple {3882#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3882#false} is VALID [2018-11-23 10:18:06,168 INFO L273 TraceCheckUtils]: 52: Hoare triple {3882#false} assume !!~bvslt32(~i~1, 5bv32); {3882#false} is VALID [2018-11-23 10:18:06,168 INFO L273 TraceCheckUtils]: 53: Hoare triple {3882#false} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3882#false} is VALID [2018-11-23 10:18:06,169 INFO L273 TraceCheckUtils]: 54: Hoare triple {3882#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3882#false} is VALID [2018-11-23 10:18:06,169 INFO L273 TraceCheckUtils]: 55: Hoare triple {3882#false} assume !~bvslt32(~i~1, 5bv32); {3882#false} is VALID [2018-11-23 10:18:06,169 INFO L273 TraceCheckUtils]: 56: Hoare triple {3882#false} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {3882#false} is VALID [2018-11-23 10:18:06,169 INFO L273 TraceCheckUtils]: 57: Hoare triple {3882#false} assume true; {3882#false} is VALID [2018-11-23 10:18:06,169 INFO L268 TraceCheckUtils]: 58: Hoare quadruple {3882#false} {3882#false} #86#return; {3882#false} is VALID [2018-11-23 10:18:06,169 INFO L273 TraceCheckUtils]: 59: Hoare triple {3882#false} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {3882#false} is VALID [2018-11-23 10:18:06,170 INFO L273 TraceCheckUtils]: 60: Hoare triple {3882#false} assume !~bvslt32(~i~2, 4bv32); {3882#false} is VALID [2018-11-23 10:18:06,170 INFO L273 TraceCheckUtils]: 61: Hoare triple {3882#false} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {3882#false} is VALID [2018-11-23 10:18:06,170 INFO L256 TraceCheckUtils]: 62: Hoare triple {3882#false} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {3882#false} is VALID [2018-11-23 10:18:06,170 INFO L273 TraceCheckUtils]: 63: Hoare triple {3882#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {3882#false} is VALID [2018-11-23 10:18:06,170 INFO L273 TraceCheckUtils]: 64: Hoare triple {3882#false} assume !!~bvslt32(~i~1, 5bv32); {3882#false} is VALID [2018-11-23 10:18:06,170 INFO L273 TraceCheckUtils]: 65: Hoare triple {3882#false} assume !~bvsgt32(~i~1, 2bv32); {3882#false} is VALID [2018-11-23 10:18:06,171 INFO L273 TraceCheckUtils]: 66: Hoare triple {3882#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3882#false} is VALID [2018-11-23 10:18:06,171 INFO L273 TraceCheckUtils]: 67: Hoare triple {3882#false} assume !!~bvslt32(~i~1, 5bv32); {3882#false} is VALID [2018-11-23 10:18:06,171 INFO L273 TraceCheckUtils]: 68: Hoare triple {3882#false} assume !~bvsgt32(~i~1, 2bv32); {3882#false} is VALID [2018-11-23 10:18:06,171 INFO L273 TraceCheckUtils]: 69: Hoare triple {3882#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3882#false} is VALID [2018-11-23 10:18:06,171 INFO L273 TraceCheckUtils]: 70: Hoare triple {3882#false} assume !!~bvslt32(~i~1, 5bv32); {3882#false} is VALID [2018-11-23 10:18:06,172 INFO L273 TraceCheckUtils]: 71: Hoare triple {3882#false} assume !~bvsgt32(~i~1, 2bv32); {3882#false} is VALID [2018-11-23 10:18:06,172 INFO L273 TraceCheckUtils]: 72: Hoare triple {3882#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3882#false} is VALID [2018-11-23 10:18:06,172 INFO L273 TraceCheckUtils]: 73: Hoare triple {3882#false} assume !!~bvslt32(~i~1, 5bv32); {3882#false} is VALID [2018-11-23 10:18:06,172 INFO L273 TraceCheckUtils]: 74: Hoare triple {3882#false} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3882#false} is VALID [2018-11-23 10:18:06,172 INFO L273 TraceCheckUtils]: 75: Hoare triple {3882#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3882#false} is VALID [2018-11-23 10:18:06,172 INFO L273 TraceCheckUtils]: 76: Hoare triple {3882#false} assume !~bvslt32(~i~1, 5bv32); {3882#false} is VALID [2018-11-23 10:18:06,173 INFO L273 TraceCheckUtils]: 77: Hoare triple {3882#false} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {3882#false} is VALID [2018-11-23 10:18:06,173 INFO L273 TraceCheckUtils]: 78: Hoare triple {3882#false} assume true; {3882#false} is VALID [2018-11-23 10:18:06,173 INFO L268 TraceCheckUtils]: 79: Hoare quadruple {3882#false} {3882#false} #88#return; {3882#false} is VALID [2018-11-23 10:18:06,173 INFO L273 TraceCheckUtils]: 80: Hoare triple {3882#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {3882#false} is VALID [2018-11-23 10:18:06,173 INFO L273 TraceCheckUtils]: 81: Hoare triple {3882#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {3882#false} is VALID [2018-11-23 10:18:06,173 INFO L273 TraceCheckUtils]: 82: Hoare triple {3882#false} assume !false; {3882#false} is VALID [2018-11-23 10:18:06,177 INFO L134 CoverageAnalysis]: Checked inductivity of 274 backedges. 116 proven. 22 refuted. 0 times theorem prover too weak. 136 trivial. 0 not checked. [2018-11-23 10:18:06,177 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 10:18:06,440 INFO L273 TraceCheckUtils]: 82: Hoare triple {3882#false} assume !false; {3882#false} is VALID [2018-11-23 10:18:06,441 INFO L273 TraceCheckUtils]: 81: Hoare triple {3882#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {3882#false} is VALID [2018-11-23 10:18:06,441 INFO L273 TraceCheckUtils]: 80: Hoare triple {3882#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {3882#false} is VALID [2018-11-23 10:18:06,441 INFO L268 TraceCheckUtils]: 79: Hoare quadruple {3881#true} {3882#false} #88#return; {3882#false} is VALID [2018-11-23 10:18:06,441 INFO L273 TraceCheckUtils]: 78: Hoare triple {3881#true} assume true; {3881#true} is VALID [2018-11-23 10:18:06,442 INFO L273 TraceCheckUtils]: 77: Hoare triple {3881#true} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {3881#true} is VALID [2018-11-23 10:18:06,442 INFO L273 TraceCheckUtils]: 76: Hoare triple {3881#true} assume !~bvslt32(~i~1, 5bv32); {3881#true} is VALID [2018-11-23 10:18:06,442 INFO L273 TraceCheckUtils]: 75: Hoare triple {3881#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3881#true} is VALID [2018-11-23 10:18:06,442 INFO L273 TraceCheckUtils]: 74: Hoare triple {3881#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3881#true} is VALID [2018-11-23 10:18:06,443 INFO L273 TraceCheckUtils]: 73: Hoare triple {3881#true} assume !!~bvslt32(~i~1, 5bv32); {3881#true} is VALID [2018-11-23 10:18:06,443 INFO L273 TraceCheckUtils]: 72: Hoare triple {3881#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3881#true} is VALID [2018-11-23 10:18:06,443 INFO L273 TraceCheckUtils]: 71: Hoare triple {3881#true} assume !~bvsgt32(~i~1, 2bv32); {3881#true} is VALID [2018-11-23 10:18:06,443 INFO L273 TraceCheckUtils]: 70: Hoare triple {3881#true} assume !!~bvslt32(~i~1, 5bv32); {3881#true} is VALID [2018-11-23 10:18:06,443 INFO L273 TraceCheckUtils]: 69: Hoare triple {3881#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3881#true} is VALID [2018-11-23 10:18:06,444 INFO L273 TraceCheckUtils]: 68: Hoare triple {3881#true} assume !~bvsgt32(~i~1, 2bv32); {3881#true} is VALID [2018-11-23 10:18:06,444 INFO L273 TraceCheckUtils]: 67: Hoare triple {3881#true} assume !!~bvslt32(~i~1, 5bv32); {3881#true} is VALID [2018-11-23 10:18:06,444 INFO L273 TraceCheckUtils]: 66: Hoare triple {3881#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3881#true} is VALID [2018-11-23 10:18:06,444 INFO L273 TraceCheckUtils]: 65: Hoare triple {3881#true} assume !~bvsgt32(~i~1, 2bv32); {3881#true} is VALID [2018-11-23 10:18:06,445 INFO L273 TraceCheckUtils]: 64: Hoare triple {3881#true} assume !!~bvslt32(~i~1, 5bv32); {3881#true} is VALID [2018-11-23 10:18:06,445 INFO L273 TraceCheckUtils]: 63: Hoare triple {3881#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {3881#true} is VALID [2018-11-23 10:18:06,445 INFO L256 TraceCheckUtils]: 62: Hoare triple {3882#false} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {3881#true} is VALID [2018-11-23 10:18:06,445 INFO L273 TraceCheckUtils]: 61: Hoare triple {3882#false} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {3882#false} is VALID [2018-11-23 10:18:06,445 INFO L273 TraceCheckUtils]: 60: Hoare triple {3882#false} assume !~bvslt32(~i~2, 4bv32); {3882#false} is VALID [2018-11-23 10:18:06,445 INFO L273 TraceCheckUtils]: 59: Hoare triple {3882#false} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {3882#false} is VALID [2018-11-23 10:18:06,445 INFO L268 TraceCheckUtils]: 58: Hoare quadruple {3881#true} {3882#false} #86#return; {3882#false} is VALID [2018-11-23 10:18:06,445 INFO L273 TraceCheckUtils]: 57: Hoare triple {3881#true} assume true; {3881#true} is VALID [2018-11-23 10:18:06,446 INFO L273 TraceCheckUtils]: 56: Hoare triple {3881#true} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {3881#true} is VALID [2018-11-23 10:18:06,446 INFO L273 TraceCheckUtils]: 55: Hoare triple {3881#true} assume !~bvslt32(~i~1, 5bv32); {3881#true} is VALID [2018-11-23 10:18:06,446 INFO L273 TraceCheckUtils]: 54: Hoare triple {3881#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3881#true} is VALID [2018-11-23 10:18:06,446 INFO L273 TraceCheckUtils]: 53: Hoare triple {3881#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {3881#true} is VALID [2018-11-23 10:18:06,446 INFO L273 TraceCheckUtils]: 52: Hoare triple {3881#true} assume !!~bvslt32(~i~1, 5bv32); {3881#true} is VALID [2018-11-23 10:18:06,446 INFO L273 TraceCheckUtils]: 51: Hoare triple {3881#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3881#true} is VALID [2018-11-23 10:18:06,446 INFO L273 TraceCheckUtils]: 50: Hoare triple {3881#true} assume !~bvsgt32(~i~1, 2bv32); {3881#true} is VALID [2018-11-23 10:18:06,447 INFO L273 TraceCheckUtils]: 49: Hoare triple {3881#true} assume !!~bvslt32(~i~1, 5bv32); {3881#true} is VALID [2018-11-23 10:18:06,447 INFO L273 TraceCheckUtils]: 48: Hoare triple {3881#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3881#true} is VALID [2018-11-23 10:18:06,447 INFO L273 TraceCheckUtils]: 47: Hoare triple {3881#true} assume !~bvsgt32(~i~1, 2bv32); {3881#true} is VALID [2018-11-23 10:18:06,447 INFO L273 TraceCheckUtils]: 46: Hoare triple {3881#true} assume !!~bvslt32(~i~1, 5bv32); {3881#true} is VALID [2018-11-23 10:18:06,447 INFO L273 TraceCheckUtils]: 45: Hoare triple {3881#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3881#true} is VALID [2018-11-23 10:18:06,447 INFO L273 TraceCheckUtils]: 44: Hoare triple {3881#true} assume !~bvsgt32(~i~1, 2bv32); {3881#true} is VALID [2018-11-23 10:18:06,448 INFO L273 TraceCheckUtils]: 43: Hoare triple {3881#true} assume !!~bvslt32(~i~1, 5bv32); {3881#true} is VALID [2018-11-23 10:18:06,448 INFO L273 TraceCheckUtils]: 42: Hoare triple {3881#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {3881#true} is VALID [2018-11-23 10:18:06,448 INFO L256 TraceCheckUtils]: 41: Hoare triple {3882#false} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {3881#true} is VALID [2018-11-23 10:18:06,448 INFO L273 TraceCheckUtils]: 40: Hoare triple {3882#false} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {3882#false} is VALID [2018-11-23 10:18:06,448 INFO L268 TraceCheckUtils]: 39: Hoare quadruple {3882#false} {3881#true} #84#return; {3882#false} is VALID [2018-11-23 10:18:06,449 INFO L273 TraceCheckUtils]: 38: Hoare triple {3882#false} assume true; {3882#false} is VALID [2018-11-23 10:18:06,449 INFO L273 TraceCheckUtils]: 37: Hoare triple {3882#false} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {3882#false} is VALID [2018-11-23 10:18:06,465 INFO L273 TraceCheckUtils]: 36: Hoare triple {4278#(bvslt rangesum_~i~1 (_ bv5 32))} assume !~bvslt32(~i~1, 5bv32); {3882#false} is VALID [2018-11-23 10:18:06,472 INFO L273 TraceCheckUtils]: 35: Hoare triple {4282#(bvslt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv5 32))} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4278#(bvslt rangesum_~i~1 (_ bv5 32))} is VALID [2018-11-23 10:18:06,477 INFO L273 TraceCheckUtils]: 34: Hoare triple {4282#(bvslt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv5 32))} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {4282#(bvslt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv5 32))} is VALID [2018-11-23 10:18:06,477 INFO L273 TraceCheckUtils]: 33: Hoare triple {4282#(bvslt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv5 32))} assume !!~bvslt32(~i~1, 5bv32); {4282#(bvslt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv5 32))} is VALID [2018-11-23 10:18:06,481 INFO L273 TraceCheckUtils]: 32: Hoare triple {4292#(bvslt (bvadd rangesum_~i~1 (_ bv2 32)) (_ bv5 32))} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4282#(bvslt (bvadd rangesum_~i~1 (_ bv1 32)) (_ bv5 32))} is VALID [2018-11-23 10:18:06,482 INFO L273 TraceCheckUtils]: 31: Hoare triple {4292#(bvslt (bvadd rangesum_~i~1 (_ bv2 32)) (_ bv5 32))} assume !~bvsgt32(~i~1, 2bv32); {4292#(bvslt (bvadd rangesum_~i~1 (_ bv2 32)) (_ bv5 32))} is VALID [2018-11-23 10:18:06,482 INFO L273 TraceCheckUtils]: 30: Hoare triple {4292#(bvslt (bvadd rangesum_~i~1 (_ bv2 32)) (_ bv5 32))} assume !!~bvslt32(~i~1, 5bv32); {4292#(bvslt (bvadd rangesum_~i~1 (_ bv2 32)) (_ bv5 32))} is VALID [2018-11-23 10:18:06,486 INFO L273 TraceCheckUtils]: 29: Hoare triple {4302#(bvslt (bvadd rangesum_~i~1 (_ bv3 32)) (_ bv5 32))} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4292#(bvslt (bvadd rangesum_~i~1 (_ bv2 32)) (_ bv5 32))} is VALID [2018-11-23 10:18:06,486 INFO L273 TraceCheckUtils]: 28: Hoare triple {4302#(bvslt (bvadd rangesum_~i~1 (_ bv3 32)) (_ bv5 32))} assume !~bvsgt32(~i~1, 2bv32); {4302#(bvslt (bvadd rangesum_~i~1 (_ bv3 32)) (_ bv5 32))} is VALID [2018-11-23 10:18:06,487 INFO L273 TraceCheckUtils]: 27: Hoare triple {4302#(bvslt (bvadd rangesum_~i~1 (_ bv3 32)) (_ bv5 32))} assume !!~bvslt32(~i~1, 5bv32); {4302#(bvslt (bvadd rangesum_~i~1 (_ bv3 32)) (_ bv5 32))} is VALID [2018-11-23 10:18:06,490 INFO L273 TraceCheckUtils]: 26: Hoare triple {4312#(bvslt (bvadd rangesum_~i~1 (_ bv4 32)) (_ bv5 32))} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4302#(bvslt (bvadd rangesum_~i~1 (_ bv3 32)) (_ bv5 32))} is VALID [2018-11-23 10:18:06,491 INFO L273 TraceCheckUtils]: 25: Hoare triple {4312#(bvslt (bvadd rangesum_~i~1 (_ bv4 32)) (_ bv5 32))} assume !~bvsgt32(~i~1, 2bv32); {4312#(bvslt (bvadd rangesum_~i~1 (_ bv4 32)) (_ bv5 32))} is VALID [2018-11-23 10:18:06,491 INFO L273 TraceCheckUtils]: 24: Hoare triple {4312#(bvslt (bvadd rangesum_~i~1 (_ bv4 32)) (_ bv5 32))} assume !!~bvslt32(~i~1, 5bv32); {4312#(bvslt (bvadd rangesum_~i~1 (_ bv4 32)) (_ bv5 32))} is VALID [2018-11-23 10:18:06,492 INFO L273 TraceCheckUtils]: 23: Hoare triple {3881#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {4312#(bvslt (bvadd rangesum_~i~1 (_ bv4 32)) (_ bv5 32))} is VALID [2018-11-23 10:18:06,492 INFO L256 TraceCheckUtils]: 22: Hoare triple {3881#true} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {3881#true} is VALID [2018-11-23 10:18:06,492 INFO L273 TraceCheckUtils]: 21: Hoare triple {3881#true} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {3881#true} is VALID [2018-11-23 10:18:06,492 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {3881#true} {3881#true} #82#return; {3881#true} is VALID [2018-11-23 10:18:06,493 INFO L273 TraceCheckUtils]: 19: Hoare triple {3881#true} assume true; {3881#true} is VALID [2018-11-23 10:18:06,493 INFO L273 TraceCheckUtils]: 18: Hoare triple {3881#true} assume !~bvslt32(~i~0, 5bv32); {3881#true} is VALID [2018-11-23 10:18:06,493 INFO L273 TraceCheckUtils]: 17: Hoare triple {3881#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3881#true} is VALID [2018-11-23 10:18:06,493 INFO L273 TraceCheckUtils]: 16: Hoare triple {3881#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3881#true} is VALID [2018-11-23 10:18:06,493 INFO L273 TraceCheckUtils]: 15: Hoare triple {3881#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3881#true} is VALID [2018-11-23 10:18:06,493 INFO L273 TraceCheckUtils]: 14: Hoare triple {3881#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3881#true} is VALID [2018-11-23 10:18:06,493 INFO L273 TraceCheckUtils]: 13: Hoare triple {3881#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3881#true} is VALID [2018-11-23 10:18:06,493 INFO L273 TraceCheckUtils]: 12: Hoare triple {3881#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3881#true} is VALID [2018-11-23 10:18:06,494 INFO L273 TraceCheckUtils]: 11: Hoare triple {3881#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3881#true} is VALID [2018-11-23 10:18:06,494 INFO L273 TraceCheckUtils]: 10: Hoare triple {3881#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3881#true} is VALID [2018-11-23 10:18:06,494 INFO L273 TraceCheckUtils]: 9: Hoare triple {3881#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {3881#true} is VALID [2018-11-23 10:18:06,494 INFO L273 TraceCheckUtils]: 8: Hoare triple {3881#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {3881#true} is VALID [2018-11-23 10:18:06,494 INFO L273 TraceCheckUtils]: 7: Hoare triple {3881#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {3881#true} is VALID [2018-11-23 10:18:06,494 INFO L256 TraceCheckUtils]: 6: Hoare triple {3881#true} call init_nondet(~#x~0.base, ~#x~0.offset); {3881#true} is VALID [2018-11-23 10:18:06,494 INFO L273 TraceCheckUtils]: 5: Hoare triple {3881#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {3881#true} is VALID [2018-11-23 10:18:06,495 INFO L256 TraceCheckUtils]: 4: Hoare triple {3881#true} call #t~ret12 := main(); {3881#true} is VALID [2018-11-23 10:18:06,495 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {3881#true} {3881#true} #78#return; {3881#true} is VALID [2018-11-23 10:18:06,495 INFO L273 TraceCheckUtils]: 2: Hoare triple {3881#true} assume true; {3881#true} is VALID [2018-11-23 10:18:06,495 INFO L273 TraceCheckUtils]: 1: Hoare triple {3881#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {3881#true} is VALID [2018-11-23 10:18:06,495 INFO L256 TraceCheckUtils]: 0: Hoare triple {3881#true} call ULTIMATE.init(); {3881#true} is VALID [2018-11-23 10:18:06,500 INFO L134 CoverageAnalysis]: Checked inductivity of 274 backedges. 0 proven. 142 refuted. 0 times theorem prover too weak. 132 trivial. 0 not checked. [2018-11-23 10:18:06,510 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 10:18:06,510 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 12 [2018-11-23 10:18:06,511 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 83 [2018-11-23 10:18:06,512 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:18:06,513 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2018-11-23 10:18:06,944 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 75 edges. 75 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:18:06,944 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2018-11-23 10:18:06,945 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2018-11-23 10:18:06,945 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=36, Invalid=96, Unknown=0, NotChecked=0, Total=132 [2018-11-23 10:18:06,945 INFO L87 Difference]: Start difference. First operand 51 states and 57 transitions. Second operand 12 states. [2018-11-23 10:18:08,921 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:18:08,921 INFO L93 Difference]: Finished difference Result 87 states and 104 transitions. [2018-11-23 10:18:08,921 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2018-11-23 10:18:08,922 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 83 [2018-11-23 10:18:08,922 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:18:08,922 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2018-11-23 10:18:08,924 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 85 transitions. [2018-11-23 10:18:08,924 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2018-11-23 10:18:08,926 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 85 transitions. [2018-11-23 10:18:08,926 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 85 transitions. [2018-11-23 10:18:09,217 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 85 edges. 85 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:18:09,220 INFO L225 Difference]: With dead ends: 87 [2018-11-23 10:18:09,220 INFO L226 Difference]: Without dead ends: 59 [2018-11-23 10:18:09,221 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 167 GetRequests, 155 SyntacticMatches, 0 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 11 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=129, Unknown=0, NotChecked=0, Total=182 [2018-11-23 10:18:09,221 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 59 states. [2018-11-23 10:18:09,254 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 59 to 58. [2018-11-23 10:18:09,254 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:18:09,254 INFO L82 GeneralOperation]: Start isEquivalent. First operand 59 states. Second operand 58 states. [2018-11-23 10:18:09,254 INFO L74 IsIncluded]: Start isIncluded. First operand 59 states. Second operand 58 states. [2018-11-23 10:18:09,254 INFO L87 Difference]: Start difference. First operand 59 states. Second operand 58 states. [2018-11-23 10:18:09,257 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:18:09,257 INFO L93 Difference]: Finished difference Result 59 states and 66 transitions. [2018-11-23 10:18:09,257 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 66 transitions. [2018-11-23 10:18:09,257 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:18:09,258 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:18:09,258 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand 59 states. [2018-11-23 10:18:09,258 INFO L87 Difference]: Start difference. First operand 58 states. Second operand 59 states. [2018-11-23 10:18:09,260 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:18:09,261 INFO L93 Difference]: Finished difference Result 59 states and 66 transitions. [2018-11-23 10:18:09,261 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 66 transitions. [2018-11-23 10:18:09,261 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:18:09,262 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:18:09,262 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:18:09,262 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:18:09,262 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 58 states. [2018-11-23 10:18:09,265 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 58 states to 58 states and 65 transitions. [2018-11-23 10:18:09,265 INFO L78 Accepts]: Start accepts. Automaton has 58 states and 65 transitions. Word has length 83 [2018-11-23 10:18:09,265 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:18:09,265 INFO L480 AbstractCegarLoop]: Abstraction has 58 states and 65 transitions. [2018-11-23 10:18:09,265 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2018-11-23 10:18:09,266 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 65 transitions. [2018-11-23 10:18:09,267 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 93 [2018-11-23 10:18:09,267 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:18:09,267 INFO L402 BasicCegarLoop]: trace histogram [15, 15, 9, 6, 5, 5, 3, 3, 3, 3, 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 10:18:09,267 INFO L423 AbstractCegarLoop]: === Iteration 10 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:18:09,268 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:18:09,268 INFO L82 PathProgramCache]: Analyzing trace with hash 516945678, now seen corresponding path program 3 times [2018-11-23 10:18:09,268 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:18:09,269 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 11 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 11 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:18:09,296 INFO L101 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2018-11-23 10:18:10,981 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 2 check-sat command(s) [2018-11-23 10:18:10,982 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 10:18:11,300 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:18:11,302 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:18:11,465 INFO L256 TraceCheckUtils]: 0: Hoare triple {4714#true} call ULTIMATE.init(); {4714#true} is VALID [2018-11-23 10:18:11,465 INFO L273 TraceCheckUtils]: 1: Hoare triple {4714#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {4714#true} is VALID [2018-11-23 10:18:11,466 INFO L273 TraceCheckUtils]: 2: Hoare triple {4714#true} assume true; {4714#true} is VALID [2018-11-23 10:18:11,466 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {4714#true} {4714#true} #78#return; {4714#true} is VALID [2018-11-23 10:18:11,466 INFO L256 TraceCheckUtils]: 4: Hoare triple {4714#true} call #t~ret12 := main(); {4714#true} is VALID [2018-11-23 10:18:11,466 INFO L273 TraceCheckUtils]: 5: Hoare triple {4714#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {4714#true} is VALID [2018-11-23 10:18:11,467 INFO L256 TraceCheckUtils]: 6: Hoare triple {4714#true} call init_nondet(~#x~0.base, ~#x~0.offset); {4714#true} is VALID [2018-11-23 10:18:11,467 INFO L273 TraceCheckUtils]: 7: Hoare triple {4714#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {4714#true} is VALID [2018-11-23 10:18:11,467 INFO L273 TraceCheckUtils]: 8: Hoare triple {4714#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {4714#true} is VALID [2018-11-23 10:18:11,467 INFO L273 TraceCheckUtils]: 9: Hoare triple {4714#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {4714#true} is VALID [2018-11-23 10:18:11,467 INFO L273 TraceCheckUtils]: 10: Hoare triple {4714#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {4714#true} is VALID [2018-11-23 10:18:11,468 INFO L273 TraceCheckUtils]: 11: Hoare triple {4714#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {4714#true} is VALID [2018-11-23 10:18:11,468 INFO L273 TraceCheckUtils]: 12: Hoare triple {4714#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {4714#true} is VALID [2018-11-23 10:18:11,468 INFO L273 TraceCheckUtils]: 13: Hoare triple {4714#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {4714#true} is VALID [2018-11-23 10:18:11,468 INFO L273 TraceCheckUtils]: 14: Hoare triple {4714#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {4714#true} is VALID [2018-11-23 10:18:11,468 INFO L273 TraceCheckUtils]: 15: Hoare triple {4714#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {4714#true} is VALID [2018-11-23 10:18:11,469 INFO L273 TraceCheckUtils]: 16: Hoare triple {4714#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {4714#true} is VALID [2018-11-23 10:18:11,469 INFO L273 TraceCheckUtils]: 17: Hoare triple {4714#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {4714#true} is VALID [2018-11-23 10:18:11,469 INFO L273 TraceCheckUtils]: 18: Hoare triple {4714#true} assume !~bvslt32(~i~0, 5bv32); {4714#true} is VALID [2018-11-23 10:18:11,469 INFO L273 TraceCheckUtils]: 19: Hoare triple {4714#true} assume true; {4714#true} is VALID [2018-11-23 10:18:11,469 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {4714#true} {4714#true} #82#return; {4714#true} is VALID [2018-11-23 10:18:11,469 INFO L273 TraceCheckUtils]: 21: Hoare triple {4714#true} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {4714#true} is VALID [2018-11-23 10:18:11,470 INFO L256 TraceCheckUtils]: 22: Hoare triple {4714#true} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {4714#true} is VALID [2018-11-23 10:18:11,470 INFO L273 TraceCheckUtils]: 23: Hoare triple {4714#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {4714#true} is VALID [2018-11-23 10:18:11,470 INFO L273 TraceCheckUtils]: 24: Hoare triple {4714#true} assume !!~bvslt32(~i~1, 5bv32); {4714#true} is VALID [2018-11-23 10:18:11,470 INFO L273 TraceCheckUtils]: 25: Hoare triple {4714#true} assume !~bvsgt32(~i~1, 2bv32); {4714#true} is VALID [2018-11-23 10:18:11,470 INFO L273 TraceCheckUtils]: 26: Hoare triple {4714#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4714#true} is VALID [2018-11-23 10:18:11,471 INFO L273 TraceCheckUtils]: 27: Hoare triple {4714#true} assume !!~bvslt32(~i~1, 5bv32); {4714#true} is VALID [2018-11-23 10:18:11,471 INFO L273 TraceCheckUtils]: 28: Hoare triple {4714#true} assume !~bvsgt32(~i~1, 2bv32); {4714#true} is VALID [2018-11-23 10:18:11,471 INFO L273 TraceCheckUtils]: 29: Hoare triple {4714#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4714#true} is VALID [2018-11-23 10:18:11,471 INFO L273 TraceCheckUtils]: 30: Hoare triple {4714#true} assume !!~bvslt32(~i~1, 5bv32); {4714#true} is VALID [2018-11-23 10:18:11,471 INFO L273 TraceCheckUtils]: 31: Hoare triple {4714#true} assume !~bvsgt32(~i~1, 2bv32); {4714#true} is VALID [2018-11-23 10:18:11,471 INFO L273 TraceCheckUtils]: 32: Hoare triple {4714#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4714#true} is VALID [2018-11-23 10:18:11,472 INFO L273 TraceCheckUtils]: 33: Hoare triple {4714#true} assume !!~bvslt32(~i~1, 5bv32); {4714#true} is VALID [2018-11-23 10:18:11,472 INFO L273 TraceCheckUtils]: 34: Hoare triple {4714#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {4714#true} is VALID [2018-11-23 10:18:11,472 INFO L273 TraceCheckUtils]: 35: Hoare triple {4714#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4714#true} is VALID [2018-11-23 10:18:11,472 INFO L273 TraceCheckUtils]: 36: Hoare triple {4714#true} assume !!~bvslt32(~i~1, 5bv32); {4714#true} is VALID [2018-11-23 10:18:11,472 INFO L273 TraceCheckUtils]: 37: Hoare triple {4714#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {4714#true} is VALID [2018-11-23 10:18:11,472 INFO L273 TraceCheckUtils]: 38: Hoare triple {4714#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4714#true} is VALID [2018-11-23 10:18:11,473 INFO L273 TraceCheckUtils]: 39: Hoare triple {4714#true} assume !~bvslt32(~i~1, 5bv32); {4714#true} is VALID [2018-11-23 10:18:11,473 INFO L273 TraceCheckUtils]: 40: Hoare triple {4714#true} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {4714#true} is VALID [2018-11-23 10:18:11,473 INFO L273 TraceCheckUtils]: 41: Hoare triple {4714#true} assume true; {4714#true} is VALID [2018-11-23 10:18:11,473 INFO L268 TraceCheckUtils]: 42: Hoare quadruple {4714#true} {4714#true} #84#return; {4714#true} is VALID [2018-11-23 10:18:11,473 INFO L273 TraceCheckUtils]: 43: Hoare triple {4714#true} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {4714#true} is VALID [2018-11-23 10:18:11,473 INFO L256 TraceCheckUtils]: 44: Hoare triple {4714#true} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {4714#true} is VALID [2018-11-23 10:18:11,474 INFO L273 TraceCheckUtils]: 45: Hoare triple {4714#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {4714#true} is VALID [2018-11-23 10:18:11,474 INFO L273 TraceCheckUtils]: 46: Hoare triple {4714#true} assume !!~bvslt32(~i~1, 5bv32); {4714#true} is VALID [2018-11-23 10:18:11,474 INFO L273 TraceCheckUtils]: 47: Hoare triple {4714#true} assume !~bvsgt32(~i~1, 2bv32); {4714#true} is VALID [2018-11-23 10:18:11,474 INFO L273 TraceCheckUtils]: 48: Hoare triple {4714#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4714#true} is VALID [2018-11-23 10:18:11,474 INFO L273 TraceCheckUtils]: 49: Hoare triple {4714#true} assume !!~bvslt32(~i~1, 5bv32); {4714#true} is VALID [2018-11-23 10:18:11,474 INFO L273 TraceCheckUtils]: 50: Hoare triple {4714#true} assume !~bvsgt32(~i~1, 2bv32); {4714#true} is VALID [2018-11-23 10:18:11,475 INFO L273 TraceCheckUtils]: 51: Hoare triple {4714#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4714#true} is VALID [2018-11-23 10:18:11,475 INFO L273 TraceCheckUtils]: 52: Hoare triple {4714#true} assume !!~bvslt32(~i~1, 5bv32); {4714#true} is VALID [2018-11-23 10:18:11,475 INFO L273 TraceCheckUtils]: 53: Hoare triple {4714#true} assume !~bvsgt32(~i~1, 2bv32); {4714#true} is VALID [2018-11-23 10:18:11,475 INFO L273 TraceCheckUtils]: 54: Hoare triple {4714#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4714#true} is VALID [2018-11-23 10:18:11,475 INFO L273 TraceCheckUtils]: 55: Hoare triple {4714#true} assume !!~bvslt32(~i~1, 5bv32); {4714#true} is VALID [2018-11-23 10:18:11,475 INFO L273 TraceCheckUtils]: 56: Hoare triple {4714#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {4714#true} is VALID [2018-11-23 10:18:11,476 INFO L273 TraceCheckUtils]: 57: Hoare triple {4714#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4714#true} is VALID [2018-11-23 10:18:11,476 INFO L273 TraceCheckUtils]: 58: Hoare triple {4714#true} assume !!~bvslt32(~i~1, 5bv32); {4714#true} is VALID [2018-11-23 10:18:11,476 INFO L273 TraceCheckUtils]: 59: Hoare triple {4714#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {4714#true} is VALID [2018-11-23 10:18:11,476 INFO L273 TraceCheckUtils]: 60: Hoare triple {4714#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4714#true} is VALID [2018-11-23 10:18:11,476 INFO L273 TraceCheckUtils]: 61: Hoare triple {4714#true} assume !~bvslt32(~i~1, 5bv32); {4714#true} is VALID [2018-11-23 10:18:11,477 INFO L273 TraceCheckUtils]: 62: Hoare triple {4714#true} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {4714#true} is VALID [2018-11-23 10:18:11,477 INFO L273 TraceCheckUtils]: 63: Hoare triple {4714#true} assume true; {4714#true} is VALID [2018-11-23 10:18:11,477 INFO L268 TraceCheckUtils]: 64: Hoare quadruple {4714#true} {4714#true} #86#return; {4714#true} is VALID [2018-11-23 10:18:11,491 INFO L273 TraceCheckUtils]: 65: Hoare triple {4714#true} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {4914#(= main_~i~2 (_ bv0 32))} is VALID [2018-11-23 10:18:11,500 INFO L273 TraceCheckUtils]: 66: Hoare triple {4914#(= main_~i~2 (_ bv0 32))} assume !~bvslt32(~i~2, 4bv32); {4715#false} is VALID [2018-11-23 10:18:11,500 INFO L273 TraceCheckUtils]: 67: Hoare triple {4715#false} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {4715#false} is VALID [2018-11-23 10:18:11,500 INFO L256 TraceCheckUtils]: 68: Hoare triple {4715#false} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {4715#false} is VALID [2018-11-23 10:18:11,501 INFO L273 TraceCheckUtils]: 69: Hoare triple {4715#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {4715#false} is VALID [2018-11-23 10:18:11,501 INFO L273 TraceCheckUtils]: 70: Hoare triple {4715#false} assume !!~bvslt32(~i~1, 5bv32); {4715#false} is VALID [2018-11-23 10:18:11,501 INFO L273 TraceCheckUtils]: 71: Hoare triple {4715#false} assume !~bvsgt32(~i~1, 2bv32); {4715#false} is VALID [2018-11-23 10:18:11,501 INFO L273 TraceCheckUtils]: 72: Hoare triple {4715#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4715#false} is VALID [2018-11-23 10:18:11,501 INFO L273 TraceCheckUtils]: 73: Hoare triple {4715#false} assume !!~bvslt32(~i~1, 5bv32); {4715#false} is VALID [2018-11-23 10:18:11,501 INFO L273 TraceCheckUtils]: 74: Hoare triple {4715#false} assume !~bvsgt32(~i~1, 2bv32); {4715#false} is VALID [2018-11-23 10:18:11,502 INFO L273 TraceCheckUtils]: 75: Hoare triple {4715#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4715#false} is VALID [2018-11-23 10:18:11,502 INFO L273 TraceCheckUtils]: 76: Hoare triple {4715#false} assume !!~bvslt32(~i~1, 5bv32); {4715#false} is VALID [2018-11-23 10:18:11,502 INFO L273 TraceCheckUtils]: 77: Hoare triple {4715#false} assume !~bvsgt32(~i~1, 2bv32); {4715#false} is VALID [2018-11-23 10:18:11,502 INFO L273 TraceCheckUtils]: 78: Hoare triple {4715#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4715#false} is VALID [2018-11-23 10:18:11,502 INFO L273 TraceCheckUtils]: 79: Hoare triple {4715#false} assume !!~bvslt32(~i~1, 5bv32); {4715#false} is VALID [2018-11-23 10:18:11,502 INFO L273 TraceCheckUtils]: 80: Hoare triple {4715#false} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {4715#false} is VALID [2018-11-23 10:18:11,503 INFO L273 TraceCheckUtils]: 81: Hoare triple {4715#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4715#false} is VALID [2018-11-23 10:18:11,503 INFO L273 TraceCheckUtils]: 82: Hoare triple {4715#false} assume !!~bvslt32(~i~1, 5bv32); {4715#false} is VALID [2018-11-23 10:18:11,503 INFO L273 TraceCheckUtils]: 83: Hoare triple {4715#false} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {4715#false} is VALID [2018-11-23 10:18:11,503 INFO L273 TraceCheckUtils]: 84: Hoare triple {4715#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4715#false} is VALID [2018-11-23 10:18:11,503 INFO L273 TraceCheckUtils]: 85: Hoare triple {4715#false} assume !~bvslt32(~i~1, 5bv32); {4715#false} is VALID [2018-11-23 10:18:11,503 INFO L273 TraceCheckUtils]: 86: Hoare triple {4715#false} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {4715#false} is VALID [2018-11-23 10:18:11,504 INFO L273 TraceCheckUtils]: 87: Hoare triple {4715#false} assume true; {4715#false} is VALID [2018-11-23 10:18:11,504 INFO L268 TraceCheckUtils]: 88: Hoare quadruple {4715#false} {4715#false} #88#return; {4715#false} is VALID [2018-11-23 10:18:11,504 INFO L273 TraceCheckUtils]: 89: Hoare triple {4715#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {4715#false} is VALID [2018-11-23 10:18:11,504 INFO L273 TraceCheckUtils]: 90: Hoare triple {4715#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {4715#false} is VALID [2018-11-23 10:18:11,504 INFO L273 TraceCheckUtils]: 91: Hoare triple {4715#false} assume !false; {4715#false} is VALID [2018-11-23 10:18:11,509 INFO L134 CoverageAnalysis]: Checked inductivity of 400 backedges. 180 proven. 0 refuted. 0 times theorem prover too weak. 220 trivial. 0 not checked. [2018-11-23 10:18:11,509 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 10:18:11,516 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 10:18:11,516 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2018-11-23 10:18:11,516 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 92 [2018-11-23 10:18:11,517 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:18:11,517 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2018-11-23 10:18:11,725 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 43 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:18:11,725 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2018-11-23 10:18:11,726 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2018-11-23 10:18:11,726 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 10:18:11,726 INFO L87 Difference]: Start difference. First operand 58 states and 65 transitions. Second operand 3 states. [2018-11-23 10:18:12,204 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:18:12,204 INFO L93 Difference]: Finished difference Result 90 states and 101 transitions. [2018-11-23 10:18:12,204 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2018-11-23 10:18:12,205 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 92 [2018-11-23 10:18:12,205 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:18:12,205 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2018-11-23 10:18:12,206 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 56 transitions. [2018-11-23 10:18:12,207 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2018-11-23 10:18:12,207 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 56 transitions. [2018-11-23 10:18:12,208 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 56 transitions. [2018-11-23 10:18:12,459 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:18:12,461 INFO L225 Difference]: With dead ends: 90 [2018-11-23 10:18:12,461 INFO L226 Difference]: Without dead ends: 60 [2018-11-23 10:18:12,462 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 91 GetRequests, 90 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 10:18:12,462 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 60 states. [2018-11-23 10:18:12,491 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 60 to 59. [2018-11-23 10:18:12,492 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:18:12,492 INFO L82 GeneralOperation]: Start isEquivalent. First operand 60 states. Second operand 59 states. [2018-11-23 10:18:12,492 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand 59 states. [2018-11-23 10:18:12,492 INFO L87 Difference]: Start difference. First operand 60 states. Second operand 59 states. [2018-11-23 10:18:12,495 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:18:12,496 INFO L93 Difference]: Finished difference Result 60 states and 67 transitions. [2018-11-23 10:18:12,496 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 67 transitions. [2018-11-23 10:18:12,496 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:18:12,496 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:18:12,496 INFO L74 IsIncluded]: Start isIncluded. First operand 59 states. Second operand 60 states. [2018-11-23 10:18:12,497 INFO L87 Difference]: Start difference. First operand 59 states. Second operand 60 states. [2018-11-23 10:18:12,498 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:18:12,498 INFO L93 Difference]: Finished difference Result 60 states and 67 transitions. [2018-11-23 10:18:12,499 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 67 transitions. [2018-11-23 10:18:12,499 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:18:12,499 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:18:12,499 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:18:12,499 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:18:12,500 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 59 states. [2018-11-23 10:18:12,501 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 59 states to 59 states and 66 transitions. [2018-11-23 10:18:12,501 INFO L78 Accepts]: Start accepts. Automaton has 59 states and 66 transitions. Word has length 92 [2018-11-23 10:18:12,502 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:18:12,502 INFO L480 AbstractCegarLoop]: Abstraction has 59 states and 66 transitions. [2018-11-23 10:18:12,502 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2018-11-23 10:18:12,502 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 66 transitions. [2018-11-23 10:18:12,503 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 95 [2018-11-23 10:18:12,503 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:18:12,503 INFO L402 BasicCegarLoop]: trace histogram [15, 15, 9, 6, 5, 5, 3, 3, 3, 3, 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 10:18:12,504 INFO L423 AbstractCegarLoop]: === Iteration 11 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:18:12,504 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:18:12,504 INFO L82 PathProgramCache]: Analyzing trace with hash 1478048176, now seen corresponding path program 1 times [2018-11-23 10:18:12,504 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:18:12,504 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 12 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 12 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:18:12,524 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 10:18:13,855 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:18:14,317 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:18:14,318 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:18:14,426 INFO L256 TraceCheckUtils]: 0: Hoare triple {5320#true} call ULTIMATE.init(); {5320#true} is VALID [2018-11-23 10:18:14,426 INFO L273 TraceCheckUtils]: 1: Hoare triple {5320#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {5320#true} is VALID [2018-11-23 10:18:14,427 INFO L273 TraceCheckUtils]: 2: Hoare triple {5320#true} assume true; {5320#true} is VALID [2018-11-23 10:18:14,427 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {5320#true} {5320#true} #78#return; {5320#true} is VALID [2018-11-23 10:18:14,427 INFO L256 TraceCheckUtils]: 4: Hoare triple {5320#true} call #t~ret12 := main(); {5320#true} is VALID [2018-11-23 10:18:14,427 INFO L273 TraceCheckUtils]: 5: Hoare triple {5320#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {5320#true} is VALID [2018-11-23 10:18:14,427 INFO L256 TraceCheckUtils]: 6: Hoare triple {5320#true} call init_nondet(~#x~0.base, ~#x~0.offset); {5320#true} is VALID [2018-11-23 10:18:14,428 INFO L273 TraceCheckUtils]: 7: Hoare triple {5320#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {5320#true} is VALID [2018-11-23 10:18:14,428 INFO L273 TraceCheckUtils]: 8: Hoare triple {5320#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {5320#true} is VALID [2018-11-23 10:18:14,428 INFO L273 TraceCheckUtils]: 9: Hoare triple {5320#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {5320#true} is VALID [2018-11-23 10:18:14,428 INFO L273 TraceCheckUtils]: 10: Hoare triple {5320#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {5320#true} is VALID [2018-11-23 10:18:14,429 INFO L273 TraceCheckUtils]: 11: Hoare triple {5320#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {5320#true} is VALID [2018-11-23 10:18:14,429 INFO L273 TraceCheckUtils]: 12: Hoare triple {5320#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {5320#true} is VALID [2018-11-23 10:18:14,429 INFO L273 TraceCheckUtils]: 13: Hoare triple {5320#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {5320#true} is VALID [2018-11-23 10:18:14,429 INFO L273 TraceCheckUtils]: 14: Hoare triple {5320#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {5320#true} is VALID [2018-11-23 10:18:14,429 INFO L273 TraceCheckUtils]: 15: Hoare triple {5320#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {5320#true} is VALID [2018-11-23 10:18:14,429 INFO L273 TraceCheckUtils]: 16: Hoare triple {5320#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {5320#true} is VALID [2018-11-23 10:18:14,429 INFO L273 TraceCheckUtils]: 17: Hoare triple {5320#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {5320#true} is VALID [2018-11-23 10:18:14,429 INFO L273 TraceCheckUtils]: 18: Hoare triple {5320#true} assume !~bvslt32(~i~0, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,430 INFO L273 TraceCheckUtils]: 19: Hoare triple {5320#true} assume true; {5320#true} is VALID [2018-11-23 10:18:14,430 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {5320#true} {5320#true} #82#return; {5320#true} is VALID [2018-11-23 10:18:14,430 INFO L273 TraceCheckUtils]: 21: Hoare triple {5320#true} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {5320#true} is VALID [2018-11-23 10:18:14,430 INFO L256 TraceCheckUtils]: 22: Hoare triple {5320#true} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {5320#true} is VALID [2018-11-23 10:18:14,430 INFO L273 TraceCheckUtils]: 23: Hoare triple {5320#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {5320#true} is VALID [2018-11-23 10:18:14,430 INFO L273 TraceCheckUtils]: 24: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,430 INFO L273 TraceCheckUtils]: 25: Hoare triple {5320#true} assume !~bvsgt32(~i~1, 2bv32); {5320#true} is VALID [2018-11-23 10:18:14,430 INFO L273 TraceCheckUtils]: 26: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,430 INFO L273 TraceCheckUtils]: 27: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,431 INFO L273 TraceCheckUtils]: 28: Hoare triple {5320#true} assume !~bvsgt32(~i~1, 2bv32); {5320#true} is VALID [2018-11-23 10:18:14,431 INFO L273 TraceCheckUtils]: 29: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,431 INFO L273 TraceCheckUtils]: 30: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,431 INFO L273 TraceCheckUtils]: 31: Hoare triple {5320#true} assume !~bvsgt32(~i~1, 2bv32); {5320#true} is VALID [2018-11-23 10:18:14,431 INFO L273 TraceCheckUtils]: 32: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,431 INFO L273 TraceCheckUtils]: 33: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,431 INFO L273 TraceCheckUtils]: 34: Hoare triple {5320#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {5320#true} is VALID [2018-11-23 10:18:14,431 INFO L273 TraceCheckUtils]: 35: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,432 INFO L273 TraceCheckUtils]: 36: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,432 INFO L273 TraceCheckUtils]: 37: Hoare triple {5320#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {5320#true} is VALID [2018-11-23 10:18:14,432 INFO L273 TraceCheckUtils]: 38: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,432 INFO L273 TraceCheckUtils]: 39: Hoare triple {5320#true} assume !~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,432 INFO L273 TraceCheckUtils]: 40: Hoare triple {5320#true} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {5320#true} is VALID [2018-11-23 10:18:14,432 INFO L273 TraceCheckUtils]: 41: Hoare triple {5320#true} assume true; {5320#true} is VALID [2018-11-23 10:18:14,432 INFO L268 TraceCheckUtils]: 42: Hoare quadruple {5320#true} {5320#true} #84#return; {5320#true} is VALID [2018-11-23 10:18:14,432 INFO L273 TraceCheckUtils]: 43: Hoare triple {5320#true} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {5320#true} is VALID [2018-11-23 10:18:14,432 INFO L256 TraceCheckUtils]: 44: Hoare triple {5320#true} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {5320#true} is VALID [2018-11-23 10:18:14,433 INFO L273 TraceCheckUtils]: 45: Hoare triple {5320#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {5320#true} is VALID [2018-11-23 10:18:14,433 INFO L273 TraceCheckUtils]: 46: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,433 INFO L273 TraceCheckUtils]: 47: Hoare triple {5320#true} assume !~bvsgt32(~i~1, 2bv32); {5320#true} is VALID [2018-11-23 10:18:14,433 INFO L273 TraceCheckUtils]: 48: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,433 INFO L273 TraceCheckUtils]: 49: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,433 INFO L273 TraceCheckUtils]: 50: Hoare triple {5320#true} assume !~bvsgt32(~i~1, 2bv32); {5320#true} is VALID [2018-11-23 10:18:14,433 INFO L273 TraceCheckUtils]: 51: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,433 INFO L273 TraceCheckUtils]: 52: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,434 INFO L273 TraceCheckUtils]: 53: Hoare triple {5320#true} assume !~bvsgt32(~i~1, 2bv32); {5320#true} is VALID [2018-11-23 10:18:14,434 INFO L273 TraceCheckUtils]: 54: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,434 INFO L273 TraceCheckUtils]: 55: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,434 INFO L273 TraceCheckUtils]: 56: Hoare triple {5320#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {5320#true} is VALID [2018-11-23 10:18:14,434 INFO L273 TraceCheckUtils]: 57: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,434 INFO L273 TraceCheckUtils]: 58: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,434 INFO L273 TraceCheckUtils]: 59: Hoare triple {5320#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {5320#true} is VALID [2018-11-23 10:18:14,434 INFO L273 TraceCheckUtils]: 60: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,434 INFO L273 TraceCheckUtils]: 61: Hoare triple {5320#true} assume !~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,435 INFO L273 TraceCheckUtils]: 62: Hoare triple {5320#true} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {5320#true} is VALID [2018-11-23 10:18:14,435 INFO L273 TraceCheckUtils]: 63: Hoare triple {5320#true} assume true; {5320#true} is VALID [2018-11-23 10:18:14,435 INFO L268 TraceCheckUtils]: 64: Hoare quadruple {5320#true} {5320#true} #86#return; {5320#true} is VALID [2018-11-23 10:18:14,435 INFO L273 TraceCheckUtils]: 65: Hoare triple {5320#true} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {5520#(= main_~i~2 (_ bv0 32))} is VALID [2018-11-23 10:18:14,436 INFO L273 TraceCheckUtils]: 66: Hoare triple {5520#(= main_~i~2 (_ bv0 32))} assume !!~bvslt32(~i~2, 4bv32);call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32);call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32);havoc #t~mem10; {5520#(= main_~i~2 (_ bv0 32))} is VALID [2018-11-23 10:18:14,436 INFO L273 TraceCheckUtils]: 67: Hoare triple {5520#(= main_~i~2 (_ bv0 32))} #t~post9 := ~i~2;~i~2 := ~bvadd32(1bv32, #t~post9);havoc #t~post9; {5527#(= (_ bv1 32) main_~i~2)} is VALID [2018-11-23 10:18:14,437 INFO L273 TraceCheckUtils]: 68: Hoare triple {5527#(= (_ bv1 32) main_~i~2)} assume !~bvslt32(~i~2, 4bv32); {5321#false} is VALID [2018-11-23 10:18:14,437 INFO L273 TraceCheckUtils]: 69: Hoare triple {5321#false} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {5321#false} is VALID [2018-11-23 10:18:14,437 INFO L256 TraceCheckUtils]: 70: Hoare triple {5321#false} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {5321#false} is VALID [2018-11-23 10:18:14,437 INFO L273 TraceCheckUtils]: 71: Hoare triple {5321#false} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {5321#false} is VALID [2018-11-23 10:18:14,437 INFO L273 TraceCheckUtils]: 72: Hoare triple {5321#false} assume !!~bvslt32(~i~1, 5bv32); {5321#false} is VALID [2018-11-23 10:18:14,437 INFO L273 TraceCheckUtils]: 73: Hoare triple {5321#false} assume !~bvsgt32(~i~1, 2bv32); {5321#false} is VALID [2018-11-23 10:18:14,437 INFO L273 TraceCheckUtils]: 74: Hoare triple {5321#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5321#false} is VALID [2018-11-23 10:18:14,437 INFO L273 TraceCheckUtils]: 75: Hoare triple {5321#false} assume !!~bvslt32(~i~1, 5bv32); {5321#false} is VALID [2018-11-23 10:18:14,438 INFO L273 TraceCheckUtils]: 76: Hoare triple {5321#false} assume !~bvsgt32(~i~1, 2bv32); {5321#false} is VALID [2018-11-23 10:18:14,438 INFO L273 TraceCheckUtils]: 77: Hoare triple {5321#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5321#false} is VALID [2018-11-23 10:18:14,438 INFO L273 TraceCheckUtils]: 78: Hoare triple {5321#false} assume !!~bvslt32(~i~1, 5bv32); {5321#false} is VALID [2018-11-23 10:18:14,438 INFO L273 TraceCheckUtils]: 79: Hoare triple {5321#false} assume !~bvsgt32(~i~1, 2bv32); {5321#false} is VALID [2018-11-23 10:18:14,438 INFO L273 TraceCheckUtils]: 80: Hoare triple {5321#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5321#false} is VALID [2018-11-23 10:18:14,439 INFO L273 TraceCheckUtils]: 81: Hoare triple {5321#false} assume !!~bvslt32(~i~1, 5bv32); {5321#false} is VALID [2018-11-23 10:18:14,439 INFO L273 TraceCheckUtils]: 82: Hoare triple {5321#false} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {5321#false} is VALID [2018-11-23 10:18:14,439 INFO L273 TraceCheckUtils]: 83: Hoare triple {5321#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5321#false} is VALID [2018-11-23 10:18:14,440 INFO L273 TraceCheckUtils]: 84: Hoare triple {5321#false} assume !!~bvslt32(~i~1, 5bv32); {5321#false} is VALID [2018-11-23 10:18:14,440 INFO L273 TraceCheckUtils]: 85: Hoare triple {5321#false} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {5321#false} is VALID [2018-11-23 10:18:14,440 INFO L273 TraceCheckUtils]: 86: Hoare triple {5321#false} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5321#false} is VALID [2018-11-23 10:18:14,440 INFO L273 TraceCheckUtils]: 87: Hoare triple {5321#false} assume !~bvslt32(~i~1, 5bv32); {5321#false} is VALID [2018-11-23 10:18:14,441 INFO L273 TraceCheckUtils]: 88: Hoare triple {5321#false} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {5321#false} is VALID [2018-11-23 10:18:14,441 INFO L273 TraceCheckUtils]: 89: Hoare triple {5321#false} assume true; {5321#false} is VALID [2018-11-23 10:18:14,441 INFO L268 TraceCheckUtils]: 90: Hoare quadruple {5321#false} {5321#false} #88#return; {5321#false} is VALID [2018-11-23 10:18:14,441 INFO L273 TraceCheckUtils]: 91: Hoare triple {5321#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {5321#false} is VALID [2018-11-23 10:18:14,441 INFO L273 TraceCheckUtils]: 92: Hoare triple {5321#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {5321#false} is VALID [2018-11-23 10:18:14,441 INFO L273 TraceCheckUtils]: 93: Hoare triple {5321#false} assume !false; {5321#false} is VALID [2018-11-23 10:18:14,446 INFO L134 CoverageAnalysis]: Checked inductivity of 401 backedges. 180 proven. 1 refuted. 0 times theorem prover too weak. 220 trivial. 0 not checked. [2018-11-23 10:18:14,446 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 10:18:14,636 INFO L273 TraceCheckUtils]: 93: Hoare triple {5321#false} assume !false; {5321#false} is VALID [2018-11-23 10:18:14,636 INFO L273 TraceCheckUtils]: 92: Hoare triple {5321#false} assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; {5321#false} is VALID [2018-11-23 10:18:14,636 INFO L273 TraceCheckUtils]: 91: Hoare triple {5321#false} ~ret5~0 := #t~ret11;havoc #t~ret11; {5321#false} is VALID [2018-11-23 10:18:14,637 INFO L268 TraceCheckUtils]: 90: Hoare quadruple {5320#true} {5321#false} #88#return; {5321#false} is VALID [2018-11-23 10:18:14,637 INFO L273 TraceCheckUtils]: 89: Hoare triple {5320#true} assume true; {5320#true} is VALID [2018-11-23 10:18:14,637 INFO L273 TraceCheckUtils]: 88: Hoare triple {5320#true} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {5320#true} is VALID [2018-11-23 10:18:14,637 INFO L273 TraceCheckUtils]: 87: Hoare triple {5320#true} assume !~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,637 INFO L273 TraceCheckUtils]: 86: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,637 INFO L273 TraceCheckUtils]: 85: Hoare triple {5320#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {5320#true} is VALID [2018-11-23 10:18:14,638 INFO L273 TraceCheckUtils]: 84: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,638 INFO L273 TraceCheckUtils]: 83: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,638 INFO L273 TraceCheckUtils]: 82: Hoare triple {5320#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {5320#true} is VALID [2018-11-23 10:18:14,638 INFO L273 TraceCheckUtils]: 81: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,638 INFO L273 TraceCheckUtils]: 80: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,638 INFO L273 TraceCheckUtils]: 79: Hoare triple {5320#true} assume !~bvsgt32(~i~1, 2bv32); {5320#true} is VALID [2018-11-23 10:18:14,638 INFO L273 TraceCheckUtils]: 78: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,638 INFO L273 TraceCheckUtils]: 77: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,639 INFO L273 TraceCheckUtils]: 76: Hoare triple {5320#true} assume !~bvsgt32(~i~1, 2bv32); {5320#true} is VALID [2018-11-23 10:18:14,639 INFO L273 TraceCheckUtils]: 75: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,639 INFO L273 TraceCheckUtils]: 74: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,639 INFO L273 TraceCheckUtils]: 73: Hoare triple {5320#true} assume !~bvsgt32(~i~1, 2bv32); {5320#true} is VALID [2018-11-23 10:18:14,639 INFO L273 TraceCheckUtils]: 72: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,639 INFO L273 TraceCheckUtils]: 71: Hoare triple {5320#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {5320#true} is VALID [2018-11-23 10:18:14,639 INFO L256 TraceCheckUtils]: 70: Hoare triple {5321#false} call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); {5320#true} is VALID [2018-11-23 10:18:14,639 INFO L273 TraceCheckUtils]: 69: Hoare triple {5321#false} call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); {5321#false} is VALID [2018-11-23 10:18:14,640 INFO L273 TraceCheckUtils]: 68: Hoare triple {5681#(bvslt main_~i~2 (_ bv4 32))} assume !~bvslt32(~i~2, 4bv32); {5321#false} is VALID [2018-11-23 10:18:14,640 INFO L273 TraceCheckUtils]: 67: Hoare triple {5685#(bvslt (bvadd main_~i~2 (_ bv1 32)) (_ bv4 32))} #t~post9 := ~i~2;~i~2 := ~bvadd32(1bv32, #t~post9);havoc #t~post9; {5681#(bvslt main_~i~2 (_ bv4 32))} is VALID [2018-11-23 10:18:14,641 INFO L273 TraceCheckUtils]: 66: Hoare triple {5685#(bvslt (bvadd main_~i~2 (_ bv1 32)) (_ bv4 32))} assume !!~bvslt32(~i~2, 4bv32);call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32);call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32);havoc #t~mem10; {5685#(bvslt (bvadd main_~i~2 (_ bv1 32)) (_ bv4 32))} is VALID [2018-11-23 10:18:14,641 INFO L273 TraceCheckUtils]: 65: Hoare triple {5320#true} ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; {5685#(bvslt (bvadd main_~i~2 (_ bv1 32)) (_ bv4 32))} is VALID [2018-11-23 10:18:14,641 INFO L268 TraceCheckUtils]: 64: Hoare quadruple {5320#true} {5320#true} #86#return; {5320#true} is VALID [2018-11-23 10:18:14,641 INFO L273 TraceCheckUtils]: 63: Hoare triple {5320#true} assume true; {5320#true} is VALID [2018-11-23 10:18:14,641 INFO L273 TraceCheckUtils]: 62: Hoare triple {5320#true} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {5320#true} is VALID [2018-11-23 10:18:14,642 INFO L273 TraceCheckUtils]: 61: Hoare triple {5320#true} assume !~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,642 INFO L273 TraceCheckUtils]: 60: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,642 INFO L273 TraceCheckUtils]: 59: Hoare triple {5320#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {5320#true} is VALID [2018-11-23 10:18:14,642 INFO L273 TraceCheckUtils]: 58: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,642 INFO L273 TraceCheckUtils]: 57: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,642 INFO L273 TraceCheckUtils]: 56: Hoare triple {5320#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {5320#true} is VALID [2018-11-23 10:18:14,642 INFO L273 TraceCheckUtils]: 55: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,642 INFO L273 TraceCheckUtils]: 54: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,643 INFO L273 TraceCheckUtils]: 53: Hoare triple {5320#true} assume !~bvsgt32(~i~1, 2bv32); {5320#true} is VALID [2018-11-23 10:18:14,643 INFO L273 TraceCheckUtils]: 52: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,643 INFO L273 TraceCheckUtils]: 51: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,643 INFO L273 TraceCheckUtils]: 50: Hoare triple {5320#true} assume !~bvsgt32(~i~1, 2bv32); {5320#true} is VALID [2018-11-23 10:18:14,643 INFO L273 TraceCheckUtils]: 49: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,643 INFO L273 TraceCheckUtils]: 48: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,643 INFO L273 TraceCheckUtils]: 47: Hoare triple {5320#true} assume !~bvsgt32(~i~1, 2bv32); {5320#true} is VALID [2018-11-23 10:18:14,643 INFO L273 TraceCheckUtils]: 46: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,643 INFO L273 TraceCheckUtils]: 45: Hoare triple {5320#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {5320#true} is VALID [2018-11-23 10:18:14,644 INFO L256 TraceCheckUtils]: 44: Hoare triple {5320#true} call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); {5320#true} is VALID [2018-11-23 10:18:14,644 INFO L273 TraceCheckUtils]: 43: Hoare triple {5320#true} ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); {5320#true} is VALID [2018-11-23 10:18:14,644 INFO L268 TraceCheckUtils]: 42: Hoare quadruple {5320#true} {5320#true} #84#return; {5320#true} is VALID [2018-11-23 10:18:14,644 INFO L273 TraceCheckUtils]: 41: Hoare triple {5320#true} assume true; {5320#true} is VALID [2018-11-23 10:18:14,644 INFO L273 TraceCheckUtils]: 40: Hoare triple {5320#true} assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; {5320#true} is VALID [2018-11-23 10:18:14,644 INFO L273 TraceCheckUtils]: 39: Hoare triple {5320#true} assume !~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,644 INFO L273 TraceCheckUtils]: 38: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,644 INFO L273 TraceCheckUtils]: 37: Hoare triple {5320#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {5320#true} is VALID [2018-11-23 10:18:14,645 INFO L273 TraceCheckUtils]: 36: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,645 INFO L273 TraceCheckUtils]: 35: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,645 INFO L273 TraceCheckUtils]: 34: Hoare triple {5320#true} assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); {5320#true} is VALID [2018-11-23 10:18:14,645 INFO L273 TraceCheckUtils]: 33: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,645 INFO L273 TraceCheckUtils]: 32: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,645 INFO L273 TraceCheckUtils]: 31: Hoare triple {5320#true} assume !~bvsgt32(~i~1, 2bv32); {5320#true} is VALID [2018-11-23 10:18:14,645 INFO L273 TraceCheckUtils]: 30: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,645 INFO L273 TraceCheckUtils]: 29: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,646 INFO L273 TraceCheckUtils]: 28: Hoare triple {5320#true} assume !~bvsgt32(~i~1, 2bv32); {5320#true} is VALID [2018-11-23 10:18:14,646 INFO L273 TraceCheckUtils]: 27: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,646 INFO L273 TraceCheckUtils]: 26: Hoare triple {5320#true} #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {5320#true} is VALID [2018-11-23 10:18:14,646 INFO L273 TraceCheckUtils]: 25: Hoare triple {5320#true} assume !~bvsgt32(~i~1, 2bv32); {5320#true} is VALID [2018-11-23 10:18:14,646 INFO L273 TraceCheckUtils]: 24: Hoare triple {5320#true} assume !!~bvslt32(~i~1, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,646 INFO L273 TraceCheckUtils]: 23: Hoare triple {5320#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; {5320#true} is VALID [2018-11-23 10:18:14,646 INFO L256 TraceCheckUtils]: 22: Hoare triple {5320#true} call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); {5320#true} is VALID [2018-11-23 10:18:14,646 INFO L273 TraceCheckUtils]: 21: Hoare triple {5320#true} havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; {5320#true} is VALID [2018-11-23 10:18:14,646 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {5320#true} {5320#true} #82#return; {5320#true} is VALID [2018-11-23 10:18:14,647 INFO L273 TraceCheckUtils]: 19: Hoare triple {5320#true} assume true; {5320#true} is VALID [2018-11-23 10:18:14,647 INFO L273 TraceCheckUtils]: 18: Hoare triple {5320#true} assume !~bvslt32(~i~0, 5bv32); {5320#true} is VALID [2018-11-23 10:18:14,647 INFO L273 TraceCheckUtils]: 17: Hoare triple {5320#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {5320#true} is VALID [2018-11-23 10:18:14,647 INFO L273 TraceCheckUtils]: 16: Hoare triple {5320#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {5320#true} is VALID [2018-11-23 10:18:14,647 INFO L273 TraceCheckUtils]: 15: Hoare triple {5320#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {5320#true} is VALID [2018-11-23 10:18:14,647 INFO L273 TraceCheckUtils]: 14: Hoare triple {5320#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {5320#true} is VALID [2018-11-23 10:18:14,647 INFO L273 TraceCheckUtils]: 13: Hoare triple {5320#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {5320#true} is VALID [2018-11-23 10:18:14,647 INFO L273 TraceCheckUtils]: 12: Hoare triple {5320#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {5320#true} is VALID [2018-11-23 10:18:14,648 INFO L273 TraceCheckUtils]: 11: Hoare triple {5320#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {5320#true} is VALID [2018-11-23 10:18:14,648 INFO L273 TraceCheckUtils]: 10: Hoare triple {5320#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {5320#true} is VALID [2018-11-23 10:18:14,648 INFO L273 TraceCheckUtils]: 9: Hoare triple {5320#true} #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; {5320#true} is VALID [2018-11-23 10:18:14,648 INFO L273 TraceCheckUtils]: 8: Hoare triple {5320#true} assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; {5320#true} is VALID [2018-11-23 10:18:14,648 INFO L273 TraceCheckUtils]: 7: Hoare triple {5320#true} ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; {5320#true} is VALID [2018-11-23 10:18:14,648 INFO L256 TraceCheckUtils]: 6: Hoare triple {5320#true} call init_nondet(~#x~0.base, ~#x~0.offset); {5320#true} is VALID [2018-11-23 10:18:14,648 INFO L273 TraceCheckUtils]: 5: Hoare triple {5320#true} call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); {5320#true} is VALID [2018-11-23 10:18:14,648 INFO L256 TraceCheckUtils]: 4: Hoare triple {5320#true} call #t~ret12 := main(); {5320#true} is VALID [2018-11-23 10:18:14,649 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {5320#true} {5320#true} #78#return; {5320#true} is VALID [2018-11-23 10:18:14,649 INFO L273 TraceCheckUtils]: 2: Hoare triple {5320#true} assume true; {5320#true} is VALID [2018-11-23 10:18:14,649 INFO L273 TraceCheckUtils]: 1: Hoare triple {5320#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; {5320#true} is VALID [2018-11-23 10:18:14,649 INFO L256 TraceCheckUtils]: 0: Hoare triple {5320#true} call ULTIMATE.init(); {5320#true} is VALID [2018-11-23 10:18:14,655 INFO L134 CoverageAnalysis]: Checked inductivity of 401 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 400 trivial. 0 not checked. [2018-11-23 10:18:14,661 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 10:18:14,662 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4] total 6 [2018-11-23 10:18:14,662 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 94 [2018-11-23 10:18:14,663 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:18:14,663 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2018-11-23 10:18:14,894 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:18:14,894 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2018-11-23 10:18:14,894 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2018-11-23 10:18:14,895 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=13, Invalid=17, Unknown=0, NotChecked=0, Total=30 [2018-11-23 10:18:14,895 INFO L87 Difference]: Start difference. First operand 59 states and 66 transitions. Second operand 6 states. [2018-11-23 10:18:15,836 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:18:15,836 INFO L93 Difference]: Finished difference Result 95 states and 108 transitions. [2018-11-23 10:18:15,836 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-23 10:18:15,837 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 94 [2018-11-23 10:18:15,837 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:18:15,837 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2018-11-23 10:18:15,839 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 63 transitions. [2018-11-23 10:18:15,839 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2018-11-23 10:18:15,840 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 63 transitions. [2018-11-23 10:18:15,841 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 63 transitions. [2018-11-23 10:18:16,276 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:18:16,278 INFO L225 Difference]: With dead ends: 95 [2018-11-23 10:18:16,278 INFO L226 Difference]: Without dead ends: 65 [2018-11-23 10:18:16,278 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 188 GetRequests, 183 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2018-11-23 10:18:16,279 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 65 states. [2018-11-23 10:18:16,336 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 65 to 65. [2018-11-23 10:18:16,336 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:18:16,336 INFO L82 GeneralOperation]: Start isEquivalent. First operand 65 states. Second operand 65 states. [2018-11-23 10:18:16,337 INFO L74 IsIncluded]: Start isIncluded. First operand 65 states. Second operand 65 states. [2018-11-23 10:18:16,337 INFO L87 Difference]: Start difference. First operand 65 states. Second operand 65 states. [2018-11-23 10:18:16,340 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:18:16,340 INFO L93 Difference]: Finished difference Result 65 states and 72 transitions. [2018-11-23 10:18:16,341 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 72 transitions. [2018-11-23 10:18:16,341 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:18:16,341 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:18:16,342 INFO L74 IsIncluded]: Start isIncluded. First operand 65 states. Second operand 65 states. [2018-11-23 10:18:16,342 INFO L87 Difference]: Start difference. First operand 65 states. Second operand 65 states. [2018-11-23 10:18:16,344 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:18:16,344 INFO L93 Difference]: Finished difference Result 65 states and 72 transitions. [2018-11-23 10:18:16,345 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 72 transitions. [2018-11-23 10:18:16,345 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:18:16,345 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:18:16,346 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:18:16,346 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:18:16,346 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 65 states. [2018-11-23 10:18:16,348 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 65 states to 65 states and 72 transitions. [2018-11-23 10:18:16,348 INFO L78 Accepts]: Start accepts. Automaton has 65 states and 72 transitions. Word has length 94 [2018-11-23 10:18:16,348 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:18:16,349 INFO L480 AbstractCegarLoop]: Abstraction has 65 states and 72 transitions. [2018-11-23 10:18:16,349 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2018-11-23 10:18:16,349 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 72 transitions. [2018-11-23 10:18:16,350 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 101 [2018-11-23 10:18:16,350 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:18:16,350 INFO L402 BasicCegarLoop]: trace histogram [15, 15, 9, 6, 5, 5, 4, 4, 3, 3, 3, 3, 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 10:18:16,351 INFO L423 AbstractCegarLoop]: === Iteration 12 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:18:16,351 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:18:16,351 INFO L82 PathProgramCache]: Analyzing trace with hash -1352614250, now seen corresponding path program 2 times [2018-11-23 10:18:16,352 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:18:16,352 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 13 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 13 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:18:16,375 INFO L101 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2018-11-23 10:18:20,238 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-23 10:18:20,238 INFO L250 tOrderPrioritization]: Conjunction of SSA is sat [2018-11-23 10:18:23,927 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 10:18:24,646 INFO L469 BasicCegarLoop]: Counterexample might be feasible ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder.RCFGBacktranslator [?] CALL call ULTIMATE.init(); VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |old(#NULL.base)|=(_ bv0 32), |old(#NULL.offset)|=(_ bv0 32)] [?] #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |old(#NULL.base)|=(_ bv0 32), |old(#NULL.offset)|=(_ bv0 32)] [?] assume true; VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |old(#NULL.base)|=(_ bv0 32), |old(#NULL.offset)|=(_ bv0 32)] [?] RET #78#return; VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32)] [?] CALL call #t~ret12 := main(); VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32)] [?] call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] CALL call init_nondet(~#x~0.base, ~#x~0.offset); VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; VAL [init_nondet_~i~0=(_ bv0 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; VAL [init_nondet_~i~0=(_ bv0 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; VAL [init_nondet_~i~0=(_ bv1 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; VAL [init_nondet_~i~0=(_ bv1 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; VAL [init_nondet_~i~0=(_ bv2 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; VAL [init_nondet_~i~0=(_ bv2 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; VAL [init_nondet_~i~0=(_ bv3 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; VAL [init_nondet_~i~0=(_ bv3 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; VAL [init_nondet_~i~0=(_ bv4 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; VAL [init_nondet_~i~0=(_ bv4 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; VAL [init_nondet_~i~0=(_ bv5 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] assume !~bvslt32(~i~0, 5bv32); VAL [init_nondet_~i~0=(_ bv5 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] assume true; VAL [init_nondet_~i~0=(_ bv5 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] RET #82#return; VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] CALL call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv18446744072666580992 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv18446744072666580992 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv18446744072666580992 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32), |rangesum_#res|=(_ bv12469248 32)] [?] assume true; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32), |rangesum_#res|=(_ bv12469248 32)] [?] RET #84#return; VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_#t~ret4|=(_ bv12469248 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); VAL [main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] CALL call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv18446744072666580992 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv18446744072666580992 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv18446744072666580992 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32), |rangesum_#res|=(_ bv12469248 32)] [?] assume true; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32), |rangesum_#res|=(_ bv12469248 32)] [?] RET #86#return; VAL [main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_#t~ret7|=(_ bv12469248 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; VAL [main_~i~2=(_ bv0 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~2, 4bv32);call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32);call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32);havoc #t~mem10; VAL [main_~i~2=(_ bv0 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] #t~post9 := ~i~2;~i~2 := ~bvadd32(1bv32, #t~post9);havoc #t~post9; VAL [main_~i~2=(_ bv1 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~2, 4bv32);call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32);call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32);havoc #t~mem10; VAL [main_~i~2=(_ bv1 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] #t~post9 := ~i~2;~i~2 := ~bvadd32(1bv32, #t~post9);havoc #t~post9; VAL [main_~i~2=(_ bv2 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~2, 4bv32);call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32);call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32);havoc #t~mem10; VAL [main_~i~2=(_ bv2 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] #t~post9 := ~i~2;~i~2 := ~bvadd32(1bv32, #t~post9);havoc #t~post9; VAL [main_~i~2=(_ bv3 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~2, 4bv32);call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32);call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32);havoc #t~mem10; VAL [main_~i~2=(_ bv3 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] #t~post9 := ~i~2;~i~2 := ~bvadd32(1bv32, #t~post9);havoc #t~post9; VAL [main_~i~2=(_ bv4 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] assume !~bvslt32(~i~2, 4bv32); VAL [main_~i~2=(_ bv4 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); VAL [main_~i~2=(_ bv4 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] CALL call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv1067909120 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv1067909120 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv1067909120 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv1071644672 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv1071644672 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv1071644672 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv1071644672 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32), |rangesum_#res|=(_ bv535822336 32)] [?] assume true; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv1071644672 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32), |rangesum_#res|=(_ bv535822336 32)] [?] RET #88#return; VAL [main_~i~2=(_ bv4 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_#t~ret11|=(_ bv535822336 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] ~ret5~0 := #t~ret11;havoc #t~ret11; VAL [main_~i~2=(_ bv4 32), main_~ret2~0=(_ bv12469248 32), main_~ret5~0=(_ bv535822336 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; VAL [main_~i~2=(_ bv4 32), main_~ret2~0=(_ bv12469248 32), main_~ret5~0=(_ bv535822336 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] assume !false; VAL [main_~i~2=(_ bv4 32), main_~ret2~0=(_ bv12469248 32), main_~ret5~0=(_ bv535822336 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] CALL call ULTIMATE.init(); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, old(#NULL.base)=0bv32, old(#NULL.offset)=0bv32] [?] #NULL.base, #NULL.offset := 0bv32, 0bv32; [?] #valid := #valid[0bv32 := 0bv1]; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, old(#NULL.base)=0bv32, old(#NULL.offset)=0bv32] [?] ensures true; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, old(#NULL.base)=0bv32, old(#NULL.offset)=0bv32] [?] RET call ULTIMATE.init(); VAL [#NULL.base=0bv32, #NULL.offset=0bv32] [?] CALL call #t~ret12 := main(); VAL [#NULL.base=0bv32, #NULL.offset=0bv32] [L31] call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32] [L32] CALL call init_nondet(~#x~0.base, ~#x~0.offset); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32] [L4-L9] ~x.base, ~x.offset := #in~x.base, #in~x.offset; [L5] havoc ~i~0; [L6] ~i~0 := 0bv32; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=0bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=0bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=1bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=1bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=2bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=2bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=3bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=3bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=4bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=4bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=5bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !~bvslt32(~i~0, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=5bv32, ~x.base=32bv32, ~x.offset=0bv32] [L4-L9] ensures true; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=5bv32, ~x.base=32bv32, ~x.offset=0bv32] [L32] RET call init_nondet(~#x~0.base, ~#x~0.offset); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32] [L33] havoc ~temp~0; [L34] havoc ~ret~1; [L35] havoc ~ret2~0; [L36] havoc ~ret5~0; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32] [L38] CALL call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32] [L11-L27] ~x.base, ~x.offset := #in~x.base, #in~x.offset; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L23-L26] assume 0bv32 != ~cnt~0; [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L11-L27] ensures true; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L38] RET call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, #t~ret4=12469248bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32] [L38] ~ret~1 := #t~ret4; [L38] havoc #t~ret4; [L40] call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32); [L40] ~temp~0 := #t~mem5; [L40] havoc #t~mem5; [L40] call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); [L40] call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32); [L40] havoc #t~mem6; [L40] call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] CALL call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32] [L11-L27] ~x.base, ~x.offset := #in~x.base, #in~x.offset; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L23-L26] assume 0bv32 != ~cnt~0; [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L11-L27] ensures true; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L41] RET call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, #t~ret7=12469248bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] ~ret2~0 := #t~ret7; [L41] havoc #t~ret7; [L42] call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32); [L42] ~temp~0 := #t~mem8; [L42] havoc #t~mem8; [L43] ~i~2 := 0bv32; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !!~bvslt32(~i~2, 4bv32); [L44] call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32); [L44] call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32); [L44] havoc #t~mem10; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !!~bvslt32(~i~2, 4bv32); [L44] call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32); [L44] call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32); [L44] havoc #t~mem10; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !!~bvslt32(~i~2, 4bv32); [L44] call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32); [L44] call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32); [L44] havoc #t~mem10; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !!~bvslt32(~i~2, 4bv32); [L44] call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32); [L44] call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32); [L44] havoc #t~mem10; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !~bvslt32(~i~2, 4bv32); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L46] call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] CALL call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32] [L11-L27] ~x.base, ~x.offset := #in~x.base, #in~x.offset; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=1067909120bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L23-L26] assume 0bv32 != ~cnt~0; [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=535822336bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L11-L27] ensures true; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=535822336bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L47] RET call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, #t~ret11=535822336bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] ~ret5~0 := #t~ret11; [L47] havoc #t~ret11; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L49-L51] assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L50] assert false; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.preprocessor.BoogiePreprocessorBacktranslator [?] CALL call ULTIMATE.init(); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, old(#NULL.base)=0bv32, old(#NULL.offset)=0bv32] [?] #NULL.base, #NULL.offset := 0bv32, 0bv32; [?] #valid := #valid[0bv32 := 0bv1]; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, old(#NULL.base)=0bv32, old(#NULL.offset)=0bv32] [?] ensures true; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, old(#NULL.base)=0bv32, old(#NULL.offset)=0bv32] [?] RET call ULTIMATE.init(); VAL [#NULL.base=0bv32, #NULL.offset=0bv32] [?] CALL call #t~ret12 := main(); VAL [#NULL.base=0bv32, #NULL.offset=0bv32] [L31] call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32] [L32] CALL call init_nondet(~#x~0.base, ~#x~0.offset); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32] [L4-L9] ~x.base, ~x.offset := #in~x.base, #in~x.offset; [L5] havoc ~i~0; [L6] ~i~0 := 0bv32; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=0bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=0bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=1bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=1bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=2bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=2bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=3bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=3bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=4bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=4bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=5bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !~bvslt32(~i~0, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=5bv32, ~x.base=32bv32, ~x.offset=0bv32] [L4-L9] ensures true; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=5bv32, ~x.base=32bv32, ~x.offset=0bv32] [L32] RET call init_nondet(~#x~0.base, ~#x~0.offset); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32] [L33] havoc ~temp~0; [L34] havoc ~ret~1; [L35] havoc ~ret2~0; [L36] havoc ~ret5~0; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32] [L38] CALL call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32] [L11-L27] ~x.base, ~x.offset := #in~x.base, #in~x.offset; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L23-L26] assume 0bv32 != ~cnt~0; [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L11-L27] ensures true; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L38] RET call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, #t~ret4=12469248bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32] [L38] ~ret~1 := #t~ret4; [L38] havoc #t~ret4; [L40] call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32); [L40] ~temp~0 := #t~mem5; [L40] havoc #t~mem5; [L40] call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); [L40] call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32); [L40] havoc #t~mem6; [L40] call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] CALL call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32] [L11-L27] ~x.base, ~x.offset := #in~x.base, #in~x.offset; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L23-L26] assume 0bv32 != ~cnt~0; [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L11-L27] ensures true; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L41] RET call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, #t~ret7=12469248bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] ~ret2~0 := #t~ret7; [L41] havoc #t~ret7; [L42] call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32); [L42] ~temp~0 := #t~mem8; [L42] havoc #t~mem8; [L43] ~i~2 := 0bv32; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !!~bvslt32(~i~2, 4bv32); [L44] call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32); [L44] call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32); [L44] havoc #t~mem10; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !!~bvslt32(~i~2, 4bv32); [L44] call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32); [L44] call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32); [L44] havoc #t~mem10; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !!~bvslt32(~i~2, 4bv32); [L44] call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32); [L44] call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32); [L44] havoc #t~mem10; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !!~bvslt32(~i~2, 4bv32); [L44] call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32); [L44] call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32); [L44] havoc #t~mem10; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !~bvslt32(~i~2, 4bv32); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L46] call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] CALL call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32] [L11-L27] ~x.base, ~x.offset := #in~x.base, #in~x.offset; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=1067909120bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L23-L26] assume 0bv32 != ~cnt~0; [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=535822336bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L11-L27] ensures true; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=535822336bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L47] RET call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, #t~ret11=535822336bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] ~ret5~0 := #t~ret11; [L47] havoc #t~ret11; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L49-L51] assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L50] assert false; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [?] CALL call ULTIMATE.init(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, old(#NULL!base)=0bv32, old(#NULL!offset)=0bv32] [?] #NULL := { base: 0bv32, offset: 0bv32 }; [?] #valid[0bv32] := 0bv1; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, old(#NULL!base)=0bv32, old(#NULL!offset)=0bv32] [?] RET call ULTIMATE.init(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32] [?] CALL call #t~ret12 := main(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32] [L31] FCALL call ~#x~0 := #Ultimate.alloc(20bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L32] CALL call init_nondet(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L4-L9] ~x := #in~x; [L5] havoc ~i~0; [L6] ~i~0 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=0bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=0bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=1bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=1bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=2bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=2bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=3bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=3bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=4bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=4bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=5bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND TRUE !~bvslt32(~i~0, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=5bv32, ~x!base=32bv32, ~x!offset=0bv32] [L32] RET call init_nondet(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L33] havoc ~temp~0; [L34] havoc ~ret~1; [L35] havoc ~ret2~0; [L36] havoc ~ret5~0; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L38] CALL call #t~ret4 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L38] RET call #t~ret4 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret4=12469248bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L38] ~ret~1 := #t~ret4; [L38] havoc #t~ret4; [L40] FCALL call #t~mem5 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L40] ~temp~0 := #t~mem5; [L40] havoc #t~mem5; [L40] FCALL call #t~mem6 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(4bv32, ~#x~0!offset) }, 4bv32); [L40] FCALL call write~intINTTYPE4(#t~mem6, { base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L40] havoc #t~mem6; [L40] FCALL call write~intINTTYPE4(~temp~0, { base: ~#x~0!base, offset: ~bvadd32(4bv32, ~#x~0!offset) }, 4bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] CALL call #t~ret7 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L41] RET call #t~ret7 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret7=12469248bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] ~ret2~0 := #t~ret7; [L41] havoc #t~ret7; [L42] FCALL call #t~mem8 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L42] ~temp~0 := #t~mem8; [L42] havoc #t~mem8; [L43] ~i~2 := 0bv32; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND TRUE !~bvslt32(~i~2, 4bv32) VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L46] FCALL call write~intINTTYPE4(~temp~0, { base: ~#x~0!base, offset: ~bvadd32(16bv32, ~#x~0!offset) }, 4bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] CALL call #t~ret11 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=535822336bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L47] RET call #t~ret11 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret11=535822336bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] ~ret5~0 := #t~ret11; [L47] havoc #t~ret11; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L49] COND TRUE ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0 VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L50] assert false; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator [?] CALL call ULTIMATE.init(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, old(#NULL!base)=0bv32, old(#NULL!offset)=0bv32] [?] #NULL := { base: 0bv32, offset: 0bv32 }; [?] #valid[0bv32] := 0bv1; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, old(#NULL!base)=0bv32, old(#NULL!offset)=0bv32] [?] RET call ULTIMATE.init(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32] [?] CALL call #t~ret12 := main(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32] [L31] FCALL call ~#x~0 := #Ultimate.alloc(20bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L32] CALL call init_nondet(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L4-L9] ~x := #in~x; [L5] havoc ~i~0; [L6] ~i~0 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=0bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=0bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=1bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=1bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=2bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=2bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=3bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=3bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=4bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=4bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=5bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND TRUE !~bvslt32(~i~0, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=5bv32, ~x!base=32bv32, ~x!offset=0bv32] [L32] RET call init_nondet(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L33] havoc ~temp~0; [L34] havoc ~ret~1; [L35] havoc ~ret2~0; [L36] havoc ~ret5~0; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L38] CALL call #t~ret4 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L38] RET call #t~ret4 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret4=12469248bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L38] ~ret~1 := #t~ret4; [L38] havoc #t~ret4; [L40] FCALL call #t~mem5 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L40] ~temp~0 := #t~mem5; [L40] havoc #t~mem5; [L40] FCALL call #t~mem6 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(4bv32, ~#x~0!offset) }, 4bv32); [L40] FCALL call write~intINTTYPE4(#t~mem6, { base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L40] havoc #t~mem6; [L40] FCALL call write~intINTTYPE4(~temp~0, { base: ~#x~0!base, offset: ~bvadd32(4bv32, ~#x~0!offset) }, 4bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] CALL call #t~ret7 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L41] RET call #t~ret7 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret7=12469248bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] ~ret2~0 := #t~ret7; [L41] havoc #t~ret7; [L42] FCALL call #t~mem8 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L42] ~temp~0 := #t~mem8; [L42] havoc #t~mem8; [L43] ~i~2 := 0bv32; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND TRUE !~bvslt32(~i~2, 4bv32) VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L46] FCALL call write~intINTTYPE4(~temp~0, { base: ~#x~0!base, offset: ~bvadd32(16bv32, ~#x~0!offset) }, 4bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] CALL call #t~ret11 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=535822336bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L47] RET call #t~ret11 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret11=535822336bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] ~ret5~0 := #t~ret11; [L47] havoc #t~ret11; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L49] COND TRUE ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0 VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L50] assert false; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [?] CALL call ULTIMATE.init(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, old(#NULL!base)=0bv32, old(#NULL!offset)=0bv32] [?] #NULL := { base: 0bv32, offset: 0bv32 }; [?] #valid[0bv32] := 0bv1; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, old(#NULL!base)=0bv32, old(#NULL!offset)=0bv32] [?] RET call ULTIMATE.init(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32] [?] CALL call #t~ret12 := main(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32] [L31] FCALL call ~#x~0 := #Ultimate.alloc(20bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L32] CALL call init_nondet(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L4-L9] ~x := #in~x; [L5] havoc ~i~0; [L6] ~i~0 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=0bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=0bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=1bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=1bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=2bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=2bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=3bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=3bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=4bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=4bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=5bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND TRUE !~bvslt32(~i~0, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=5bv32, ~x!base=32bv32, ~x!offset=0bv32] [L32] RET call init_nondet(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L33] havoc ~temp~0; [L34] havoc ~ret~1; [L35] havoc ~ret2~0; [L36] havoc ~ret5~0; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L38] CALL call #t~ret4 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L38] RET call #t~ret4 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret4=12469248bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L38] ~ret~1 := #t~ret4; [L38] havoc #t~ret4; [L40] FCALL call #t~mem5 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L40] ~temp~0 := #t~mem5; [L40] havoc #t~mem5; [L40] FCALL call #t~mem6 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(4bv32, ~#x~0!offset) }, 4bv32); [L40] FCALL call write~intINTTYPE4(#t~mem6, { base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L40] havoc #t~mem6; [L40] FCALL call write~intINTTYPE4(~temp~0, { base: ~#x~0!base, offset: ~bvadd32(4bv32, ~#x~0!offset) }, 4bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] CALL call #t~ret7 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L41] RET call #t~ret7 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret7=12469248bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] ~ret2~0 := #t~ret7; [L41] havoc #t~ret7; [L42] FCALL call #t~mem8 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L42] ~temp~0 := #t~mem8; [L42] havoc #t~mem8; [L43] ~i~2 := 0bv32; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND TRUE !~bvslt32(~i~2, 4bv32) VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L46] FCALL call write~intINTTYPE4(~temp~0, { base: ~#x~0!base, offset: ~bvadd32(16bv32, ~#x~0!offset) }, 4bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] CALL call #t~ret11 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=535822336bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L47] RET call #t~ret11 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret11=535822336bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] ~ret5~0 := #t~ret11; [L47] havoc #t~ret11; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L49] COND TRUE ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0 VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L50] assert false; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] ----- ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.CACSL2BoogieBacktranslator [?] CALL call ULTIMATE.init(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, old(#NULL!base)=0bv32, old(#NULL!offset)=0bv32] [?] #NULL := { base: 0bv32, offset: 0bv32 }; [?] #valid[0bv32] := 0bv1; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, old(#NULL!base)=0bv32, old(#NULL!offset)=0bv32] [?] RET call ULTIMATE.init(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32] [?] CALL call #t~ret12 := main(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32] [L31] FCALL call ~#x~0 := #Ultimate.alloc(20bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L32] CALL call init_nondet(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L4-L9] ~x := #in~x; [L5] havoc ~i~0; [L6] ~i~0 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=0bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=0bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=1bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=1bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=2bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=2bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=3bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=3bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=4bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=4bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=5bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND TRUE !~bvslt32(~i~0, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=5bv32, ~x!base=32bv32, ~x!offset=0bv32] [L32] RET call init_nondet(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L33] havoc ~temp~0; [L34] havoc ~ret~1; [L35] havoc ~ret2~0; [L36] havoc ~ret5~0; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L38] CALL call #t~ret4 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L38] RET call #t~ret4 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret4=12469248bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L38] ~ret~1 := #t~ret4; [L38] havoc #t~ret4; [L40] FCALL call #t~mem5 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L40] ~temp~0 := #t~mem5; [L40] havoc #t~mem5; [L40] FCALL call #t~mem6 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(4bv32, ~#x~0!offset) }, 4bv32); [L40] FCALL call write~intINTTYPE4(#t~mem6, { base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L40] havoc #t~mem6; [L40] FCALL call write~intINTTYPE4(~temp~0, { base: ~#x~0!base, offset: ~bvadd32(4bv32, ~#x~0!offset) }, 4bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] CALL call #t~ret7 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L41] RET call #t~ret7 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret7=12469248bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] ~ret2~0 := #t~ret7; [L41] havoc #t~ret7; [L42] FCALL call #t~mem8 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L42] ~temp~0 := #t~mem8; [L42] havoc #t~mem8; [L43] ~i~2 := 0bv32; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND TRUE !~bvslt32(~i~2, 4bv32) VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L46] FCALL call write~intINTTYPE4(~temp~0, { base: ~#x~0!base, offset: ~bvadd32(16bv32, ~#x~0!offset) }, 4bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] CALL call #t~ret11 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=535822336bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L47] RET call #t~ret11 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret11=535822336bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] ~ret5~0 := #t~ret11; [L47] havoc #t~ret11; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L49] COND TRUE ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0 VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L50] assert false; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L31] int x[5]; VAL [x={32:0}] [L32] CALL init_nondet(x) VAL [x={32:0}] [L5] int i; [L6] i = 0 VAL [i=0, x={32:0}, x={32:0}] [L6] COND TRUE i < 5 [L7] x[i] = __VERIFIER_nondet_int() [L6] i++ VAL [i=1, x={32:0}, x={32:0}] [L6] COND TRUE i < 5 [L7] x[i] = __VERIFIER_nondet_int() [L6] i++ VAL [i=2, x={32:0}, x={32:0}] [L6] COND TRUE i < 5 [L7] x[i] = __VERIFIER_nondet_int() [L6] i++ VAL [i=3, x={32:0}, x={32:0}] [L6] COND TRUE i < 5 [L7] x[i] = __VERIFIER_nondet_int() [L6] i++ VAL [i=4, x={32:0}, x={32:0}] [L6] COND TRUE i < 5 [L7] x[i] = __VERIFIER_nondet_int() [L6] i++ VAL [i=5, x={32:0}, x={32:0}] [L6] COND FALSE !(i < 5) VAL [i=5, x={32:0}, x={32:0}] [L32] RET init_nondet(x) VAL [x={32:0}] [L33] int temp; [L34] int ret; [L35] int ret2; [L36] int ret5; VAL [x={32:0}] [L38] CALL, EXPR rangesum(x) VAL [x={32:0}] [L13] int i; [L14] long long ret; [L15] ret = 0 [L16] int cnt = 0; [L17] i = 0 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=1, i=3, ret=18446744072666580992, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=1, i=4, ret=18446744072666580992, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=1, i=4, ret=18446744072666580992, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=2, i=4, ret=24938496, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L17] COND FALSE !(i < 5) VAL [cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L23] COND TRUE cnt !=0 [L24] return ret / cnt; VAL [\result=12469248, cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L38] RET, EXPR rangesum(x) VAL [rangesum(x)=12469248, x={32:0}] [L38] ret = rangesum(x) [L40] EXPR x[0] [L40] temp=x[0] [L40] EXPR x[1] [L40] x[0] = x[1] [L40] x[1] = temp VAL [ret=12469248, temp=0, x={32:0}] [L41] CALL, EXPR rangesum(x) VAL [x={32:0}] [L13] int i; [L14] long long ret; [L15] ret = 0 [L16] int cnt = 0; [L17] i = 0 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=1, i=3, ret=18446744072666580992, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=1, i=4, ret=18446744072666580992, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=1, i=4, ret=18446744072666580992, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=2, i=4, ret=24938496, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L17] COND FALSE !(i < 5) VAL [cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L23] COND TRUE cnt !=0 [L24] return ret / cnt; VAL [\result=12469248, cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L41] RET, EXPR rangesum(x) VAL [rangesum(x)=12469248, ret=12469248, temp=0, x={32:0}] [L41] ret2 = rangesum(x) [L42] EXPR x[0] [L42] temp=x[0] [L43] int i =0 ; VAL [i=0, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L43] COND TRUE i<5 -1 [L44] EXPR x[i+1] [L44] x[i] = x[i+1] [L43] i++ VAL [i=1, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L43] COND TRUE i<5 -1 [L44] EXPR x[i+1] [L44] x[i] = x[i+1] [L43] i++ VAL [i=2, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L43] COND TRUE i<5 -1 [L44] EXPR x[i+1] [L44] x[i] = x[i+1] [L43] i++ VAL [i=3, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L43] COND TRUE i<5 -1 [L44] EXPR x[i+1] [L44] x[i] = x[i+1] [L43] i++ VAL [i=4, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L43] COND FALSE !(i<5 -1) VAL [i=4, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L46] x[5 -1] = temp VAL [i=4, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L47] CALL, EXPR rangesum(x) VAL [x={32:0}] [L13] int i; [L14] long long ret; [L15] ret = 0 [L16] int cnt = 0; [L17] i = 0 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=1, i=3, ret=1067909120, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=1, i=4, ret=1067909120, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=1, i=4, ret=1067909120, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=2, i=4, ret=1071644672, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=2, i=5, ret=1071644672, x={32:0}, x={32:0}] [L17] COND FALSE !(i < 5) VAL [cnt=2, i=5, ret=1071644672, x={32:0}, x={32:0}] [L23] COND TRUE cnt !=0 [L24] return ret / cnt; VAL [\result=535822336, cnt=2, i=5, ret=1071644672, x={32:0}, x={32:0}] [L47] RET, EXPR rangesum(x) VAL [i=4, rangesum(x)=535822336, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L47] ret5 = rangesum(x) [L49] COND TRUE ret != ret2 || ret !=ret5 VAL [i=4, ret=12469248, ret2=12469248, ret5=535822336, temp=3735552, x={32:0}] [L50] __VERIFIER_error() VAL [i=4, ret=12469248, ret2=12469248, ret5=535822336, temp=3735552, x={32:0}] ----- [2018-11-23 10:18:24,882 WARN L170 areAnnotationChecker]: ULTIMATE.initENTRY has no Hoare annotation [2018-11-23 10:18:24,883 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2018-11-23 10:18:24,883 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2018-11-23 10:18:24,883 WARN L170 areAnnotationChecker]: mainENTRY has no Hoare annotation [2018-11-23 10:18:24,883 WARN L170 areAnnotationChecker]: rangesumENTRY has no Hoare annotation [2018-11-23 10:18:24,883 WARN L170 areAnnotationChecker]: init_nondetENTRY has no Hoare annotation [2018-11-23 10:18:24,884 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2018-11-23 10:18:24,884 WARN L170 areAnnotationChecker]: L-1 has no Hoare annotation [2018-11-23 10:18:24,884 WARN L170 areAnnotationChecker]: L-1 has no Hoare annotation [2018-11-23 10:18:24,884 WARN L170 areAnnotationChecker]: L32 has no Hoare annotation [2018-11-23 10:18:24,884 WARN L170 areAnnotationChecker]: L32 has no Hoare annotation [2018-11-23 10:18:24,884 WARN L170 areAnnotationChecker]: L17-3 has no Hoare annotation [2018-11-23 10:18:24,884 WARN L170 areAnnotationChecker]: L17-3 has no Hoare annotation [2018-11-23 10:18:24,885 WARN L170 areAnnotationChecker]: L17-3 has no Hoare annotation [2018-11-23 10:18:24,885 WARN L170 areAnnotationChecker]: L6-3 has no Hoare annotation [2018-11-23 10:18:24,885 WARN L170 areAnnotationChecker]: L6-3 has no Hoare annotation [2018-11-23 10:18:24,885 WARN L170 areAnnotationChecker]: L6-3 has no Hoare annotation [2018-11-23 10:18:24,885 WARN L170 areAnnotationChecker]: ULTIMATE.initEXIT has no Hoare annotation [2018-11-23 10:18:24,885 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2018-11-23 10:18:24,885 WARN L170 areAnnotationChecker]: L32-1 has no Hoare annotation [2018-11-23 10:18:24,886 WARN L170 areAnnotationChecker]: L17-4 has no Hoare annotation [2018-11-23 10:18:24,886 WARN L170 areAnnotationChecker]: L17-4 has no Hoare annotation [2018-11-23 10:18:24,886 WARN L170 areAnnotationChecker]: L18 has no Hoare annotation [2018-11-23 10:18:24,886 WARN L170 areAnnotationChecker]: L18 has no Hoare annotation [2018-11-23 10:18:24,886 WARN L170 areAnnotationChecker]: L6-4 has no Hoare annotation [2018-11-23 10:18:24,886 WARN L170 areAnnotationChecker]: L6-2 has no Hoare annotation [2018-11-23 10:18:24,886 WARN L170 areAnnotationChecker]: L38 has no Hoare annotation [2018-11-23 10:18:24,887 WARN L170 areAnnotationChecker]: L38 has no Hoare annotation [2018-11-23 10:18:24,887 WARN L170 areAnnotationChecker]: rangesumFINAL has no Hoare annotation [2018-11-23 10:18:24,887 WARN L170 areAnnotationChecker]: L17-2 has no Hoare annotation [2018-11-23 10:18:24,887 WARN L170 areAnnotationChecker]: init_nondetEXIT has no Hoare annotation [2018-11-23 10:18:24,887 WARN L170 areAnnotationChecker]: L38-1 has no Hoare annotation [2018-11-23 10:18:24,887 WARN L170 areAnnotationChecker]: rangesumEXIT has no Hoare annotation [2018-11-23 10:18:24,887 WARN L170 areAnnotationChecker]: rangesumEXIT has no Hoare annotation [2018-11-23 10:18:24,888 WARN L170 areAnnotationChecker]: rangesumEXIT has no Hoare annotation [2018-11-23 10:18:24,888 WARN L170 areAnnotationChecker]: L41 has no Hoare annotation [2018-11-23 10:18:24,888 WARN L170 areAnnotationChecker]: L41 has no Hoare annotation [2018-11-23 10:18:24,888 WARN L170 areAnnotationChecker]: L41-1 has no Hoare annotation [2018-11-23 10:18:24,888 WARN L170 areAnnotationChecker]: L47-1 has no Hoare annotation [2018-11-23 10:18:24,888 WARN L170 areAnnotationChecker]: L43-3 has no Hoare annotation [2018-11-23 10:18:24,888 WARN L170 areAnnotationChecker]: L43-3 has no Hoare annotation [2018-11-23 10:18:24,889 WARN L170 areAnnotationChecker]: L43-3 has no Hoare annotation [2018-11-23 10:18:24,890 WARN L170 areAnnotationChecker]: L49 has no Hoare annotation [2018-11-23 10:18:24,890 WARN L170 areAnnotationChecker]: L49 has no Hoare annotation [2018-11-23 10:18:24,891 WARN L170 areAnnotationChecker]: L43-4 has no Hoare annotation [2018-11-23 10:18:24,891 WARN L170 areAnnotationChecker]: L43-2 has no Hoare annotation [2018-11-23 10:18:24,891 WARN L170 areAnnotationChecker]: L50 has no Hoare annotation [2018-11-23 10:18:24,891 WARN L170 areAnnotationChecker]: L50 has no Hoare annotation [2018-11-23 10:18:24,891 WARN L170 areAnnotationChecker]: L49-2 has no Hoare annotation [2018-11-23 10:18:24,891 WARN L170 areAnnotationChecker]: L47 has no Hoare annotation [2018-11-23 10:18:24,891 WARN L170 areAnnotationChecker]: L47 has no Hoare annotation [2018-11-23 10:18:24,892 WARN L170 areAnnotationChecker]: mainFINAL has no Hoare annotation [2018-11-23 10:18:24,892 WARN L170 areAnnotationChecker]: mainEXIT has no Hoare annotation [2018-11-23 10:18:24,892 INFO L163 areAnnotationChecker]: CFG has 0 edges. 0 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. 0 times interpolants missing. [2018-11-23 10:18:24,895 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 23.11 10:18:24 BoogieIcfgContainer [2018-11-23 10:18:24,896 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2018-11-23 10:18:24,896 INFO L113 PluginConnector]: ------------------------Witness Printer---------------------------- [2018-11-23 10:18:24,896 INFO L271 PluginConnector]: Initializing Witness Printer... [2018-11-23 10:18:24,896 INFO L276 PluginConnector]: Witness Printer initialized [2018-11-23 10:18:24,897 INFO L185 PluginConnector]: Executing the observer RCFGCatcher from plugin Witness Printer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 10:17:46" (3/4) ... [2018-11-23 10:18:24,900 INFO L138 WitnessPrinter]: Generating witness for reachability counterexample ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder.RCFGBacktranslator [?] CALL call ULTIMATE.init(); VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |old(#NULL.base)|=(_ bv0 32), |old(#NULL.offset)|=(_ bv0 32)] [?] #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1]; VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |old(#NULL.base)|=(_ bv0 32), |old(#NULL.offset)|=(_ bv0 32)] [?] assume true; VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |old(#NULL.base)|=(_ bv0 32), |old(#NULL.offset)|=(_ bv0 32)] [?] RET #78#return; VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32)] [?] CALL call #t~ret12 := main(); VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32)] [?] call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] CALL call init_nondet(~#x~0.base, ~#x~0.offset); VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~0;~i~0 := 0bv32; VAL [init_nondet_~i~0=(_ bv0 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; VAL [init_nondet_~i~0=(_ bv0 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; VAL [init_nondet_~i~0=(_ bv1 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; VAL [init_nondet_~i~0=(_ bv1 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; VAL [init_nondet_~i~0=(_ bv2 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; VAL [init_nondet_~i~0=(_ bv2 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; VAL [init_nondet_~i~0=(_ bv3 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; VAL [init_nondet_~i~0=(_ bv3 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; VAL [init_nondet_~i~0=(_ bv4 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~0, 5bv32);call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32);havoc #t~nondet1; VAL [init_nondet_~i~0=(_ bv4 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] #t~post0 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post0);havoc #t~post0; VAL [init_nondet_~i~0=(_ bv5 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] assume !~bvslt32(~i~0, 5bv32); VAL [init_nondet_~i~0=(_ bv5 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] assume true; VAL [init_nondet_~i~0=(_ bv5 32), init_nondet_~x.base=(_ bv32 32), init_nondet_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |init_nondet_#in~x.base|=(_ bv32 32), |init_nondet_#in~x.offset|=(_ bv0 32)] [?] RET #82#return; VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] havoc ~temp~0;havoc ~ret~1;havoc ~ret2~0;havoc ~ret5~0; VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] CALL call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv18446744072666580992 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv18446744072666580992 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv18446744072666580992 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32), |rangesum_#res|=(_ bv12469248 32)] [?] assume true; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32), |rangesum_#res|=(_ bv12469248 32)] [?] RET #84#return; VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_#t~ret4|=(_ bv12469248 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] ~ret~1 := #t~ret4;havoc #t~ret4;call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem5;havoc #t~mem5;call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32);call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32);havoc #t~mem6;call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); VAL [main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] CALL call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv18446744072666580992 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv18446744072666580992 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv18446744072666580992 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32), |rangesum_#res|=(_ bv12469248 32)] [?] assume true; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv24938496 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32), |rangesum_#res|=(_ bv12469248 32)] [?] RET #86#return; VAL [main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_#t~ret7|=(_ bv12469248 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] ~ret2~0 := #t~ret7;havoc #t~ret7;call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32);~temp~0 := #t~mem8;havoc #t~mem8;~i~2 := 0bv32; VAL [main_~i~2=(_ bv0 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~2, 4bv32);call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32);call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32);havoc #t~mem10; VAL [main_~i~2=(_ bv0 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] #t~post9 := ~i~2;~i~2 := ~bvadd32(1bv32, #t~post9);havoc #t~post9; VAL [main_~i~2=(_ bv1 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~2, 4bv32);call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32);call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32);havoc #t~mem10; VAL [main_~i~2=(_ bv1 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] #t~post9 := ~i~2;~i~2 := ~bvadd32(1bv32, #t~post9);havoc #t~post9; VAL [main_~i~2=(_ bv2 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~2, 4bv32);call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32);call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32);havoc #t~mem10; VAL [main_~i~2=(_ bv2 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] #t~post9 := ~i~2;~i~2 := ~bvadd32(1bv32, #t~post9);havoc #t~post9; VAL [main_~i~2=(_ bv3 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~2, 4bv32);call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32);call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32);havoc #t~mem10; VAL [main_~i~2=(_ bv3 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] #t~post9 := ~i~2;~i~2 := ~bvadd32(1bv32, #t~post9);havoc #t~post9; VAL [main_~i~2=(_ bv4 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] assume !~bvslt32(~i~2, 4bv32); VAL [main_~i~2=(_ bv4 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); VAL [main_~i~2=(_ bv4 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] CALL call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); VAL [|#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] ~x.base, ~x.offset := #in~x.base, #in~x.offset;havoc ~i~1;havoc ~ret~0;~ret~0 := ~sign_extendFrom32To64(0bv32);~cnt~0 := 0bv32;~i~1 := 0bv32; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv0 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv1 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvsgt32(~i~1, 2bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv2 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv0 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv0 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv3 32), rangesum_~ret~0=(_ bv1067909120 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv1067909120 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !!~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv1 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv1067909120 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume ~bvsgt32(~i~1, 2bv32);call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32);~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3));havoc #t~mem3;~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv4 32), rangesum_~ret~0=(_ bv1071644672 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] #t~post2 := ~i~1;~i~1 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv1071644672 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume !~bvslt32(~i~1, 5bv32); VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv1071644672 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32)] [?] assume 0bv32 != ~cnt~0;#res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv1071644672 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32), |rangesum_#res|=(_ bv535822336 32)] [?] assume true; VAL [rangesum_~cnt~0=(_ bv2 32), rangesum_~i~1=(_ bv5 32), rangesum_~ret~0=(_ bv1071644672 64), rangesum_~x.base=(_ bv32 32), rangesum_~x.offset=(_ bv0 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |rangesum_#in~x.base|=(_ bv32 32), |rangesum_#in~x.offset|=(_ bv0 32), |rangesum_#res|=(_ bv535822336 32)] [?] RET #88#return; VAL [main_~i~2=(_ bv4 32), main_~ret2~0=(_ bv12469248 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_#t~ret11|=(_ bv535822336 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] ~ret5~0 := #t~ret11;havoc #t~ret11; VAL [main_~i~2=(_ bv4 32), main_~ret2~0=(_ bv12469248 32), main_~ret5~0=(_ bv535822336 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; VAL [main_~i~2=(_ bv4 32), main_~ret2~0=(_ bv12469248 32), main_~ret5~0=(_ bv535822336 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] assume !false; VAL [main_~i~2=(_ bv4 32), main_~ret2~0=(_ bv12469248 32), main_~ret5~0=(_ bv535822336 32), main_~ret~1=(_ bv12469248 32), main_~temp~0=(_ bv3735552 32), |#NULL.base|=(_ bv0 32), |#NULL.offset|=(_ bv0 32), |main_~#x~0.base|=(_ bv32 32), |main_~#x~0.offset|=(_ bv0 32)] [?] CALL call ULTIMATE.init(); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, old(#NULL.base)=0bv32, old(#NULL.offset)=0bv32] [?] #NULL.base, #NULL.offset := 0bv32, 0bv32; [?] #valid := #valid[0bv32 := 0bv1]; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, old(#NULL.base)=0bv32, old(#NULL.offset)=0bv32] [?] ensures true; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, old(#NULL.base)=0bv32, old(#NULL.offset)=0bv32] [?] RET call ULTIMATE.init(); VAL [#NULL.base=0bv32, #NULL.offset=0bv32] [?] CALL call #t~ret12 := main(); VAL [#NULL.base=0bv32, #NULL.offset=0bv32] [L31] call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32] [L32] CALL call init_nondet(~#x~0.base, ~#x~0.offset); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32] [L4-L9] ~x.base, ~x.offset := #in~x.base, #in~x.offset; [L5] havoc ~i~0; [L6] ~i~0 := 0bv32; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=0bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=0bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=1bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=1bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=2bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=2bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=3bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=3bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=4bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=4bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=5bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !~bvslt32(~i~0, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=5bv32, ~x.base=32bv32, ~x.offset=0bv32] [L4-L9] ensures true; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=5bv32, ~x.base=32bv32, ~x.offset=0bv32] [L32] RET call init_nondet(~#x~0.base, ~#x~0.offset); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32] [L33] havoc ~temp~0; [L34] havoc ~ret~1; [L35] havoc ~ret2~0; [L36] havoc ~ret5~0; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32] [L38] CALL call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32] [L11-L27] ~x.base, ~x.offset := #in~x.base, #in~x.offset; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L23-L26] assume 0bv32 != ~cnt~0; [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L11-L27] ensures true; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L38] RET call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, #t~ret4=12469248bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32] [L38] ~ret~1 := #t~ret4; [L38] havoc #t~ret4; [L40] call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32); [L40] ~temp~0 := #t~mem5; [L40] havoc #t~mem5; [L40] call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); [L40] call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32); [L40] havoc #t~mem6; [L40] call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] CALL call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32] [L11-L27] ~x.base, ~x.offset := #in~x.base, #in~x.offset; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L23-L26] assume 0bv32 != ~cnt~0; [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L11-L27] ensures true; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L41] RET call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, #t~ret7=12469248bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] ~ret2~0 := #t~ret7; [L41] havoc #t~ret7; [L42] call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32); [L42] ~temp~0 := #t~mem8; [L42] havoc #t~mem8; [L43] ~i~2 := 0bv32; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !!~bvslt32(~i~2, 4bv32); [L44] call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32); [L44] call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32); [L44] havoc #t~mem10; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !!~bvslt32(~i~2, 4bv32); [L44] call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32); [L44] call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32); [L44] havoc #t~mem10; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !!~bvslt32(~i~2, 4bv32); [L44] call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32); [L44] call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32); [L44] havoc #t~mem10; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !!~bvslt32(~i~2, 4bv32); [L44] call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32); [L44] call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32); [L44] havoc #t~mem10; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !~bvslt32(~i~2, 4bv32); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L46] call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] CALL call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32] [L11-L27] ~x.base, ~x.offset := #in~x.base, #in~x.offset; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=1067909120bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L23-L26] assume 0bv32 != ~cnt~0; [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=535822336bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L11-L27] ensures true; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=535822336bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L47] RET call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, #t~ret11=535822336bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] ~ret5~0 := #t~ret11; [L47] havoc #t~ret11; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L49-L51] assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L50] assert false; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.preprocessor.BoogiePreprocessorBacktranslator [?] CALL call ULTIMATE.init(); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, old(#NULL.base)=0bv32, old(#NULL.offset)=0bv32] [?] #NULL.base, #NULL.offset := 0bv32, 0bv32; [?] #valid := #valid[0bv32 := 0bv1]; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, old(#NULL.base)=0bv32, old(#NULL.offset)=0bv32] [?] ensures true; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, old(#NULL.base)=0bv32, old(#NULL.offset)=0bv32] [?] RET call ULTIMATE.init(); VAL [#NULL.base=0bv32, #NULL.offset=0bv32] [?] CALL call #t~ret12 := main(); VAL [#NULL.base=0bv32, #NULL.offset=0bv32] [L31] call ~#x~0.base, ~#x~0.offset := #Ultimate.alloc(20bv32); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32] [L32] CALL call init_nondet(~#x~0.base, ~#x~0.offset); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32] [L4-L9] ~x.base, ~x.offset := #in~x.base, #in~x.offset; [L5] havoc ~i~0; [L6] ~i~0 := 0bv32; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=0bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=0bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=1bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=1bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=2bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=2bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=3bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=3bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=4bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !!~bvslt32(~i~0, 5bv32); [L7] call write~intINTTYPE4(#t~nondet1, ~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); [L7] havoc #t~nondet1; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=4bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=5bv32, ~x.base=32bv32, ~x.offset=0bv32] [L6-L8] assume !~bvslt32(~i~0, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=5bv32, ~x.base=32bv32, ~x.offset=0bv32] [L4-L9] ensures true; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~i~0=5bv32, ~x.base=32bv32, ~x.offset=0bv32] [L32] RET call init_nondet(~#x~0.base, ~#x~0.offset); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32] [L33] havoc ~temp~0; [L34] havoc ~ret~1; [L35] havoc ~ret2~0; [L36] havoc ~ret5~0; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32] [L38] CALL call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32] [L11-L27] ~x.base, ~x.offset := #in~x.base, #in~x.offset; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L23-L26] assume 0bv32 != ~cnt~0; [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L11-L27] ensures true; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L38] RET call #t~ret4 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, #t~ret4=12469248bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32] [L38] ~ret~1 := #t~ret4; [L38] havoc #t~ret4; [L40] call #t~mem5 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32); [L40] ~temp~0 := #t~mem5; [L40] havoc #t~mem5; [L40] call #t~mem6 := read~intINTTYPE4(~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); [L40] call write~intINTTYPE4(#t~mem6, ~#x~0.base, ~#x~0.offset, 4bv32); [L40] havoc #t~mem6; [L40] call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(4bv32, ~#x~0.offset), 4bv32); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] CALL call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32] [L11-L27] ~x.base, ~x.offset := #in~x.base, #in~x.offset; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L23-L26] assume 0bv32 != ~cnt~0; [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L11-L27] ensures true; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x.base=32bv32, ~x.offset=0bv32] [L41] RET call #t~ret7 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, #t~ret7=12469248bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] ~ret2~0 := #t~ret7; [L41] havoc #t~ret7; [L42] call #t~mem8 := read~intINTTYPE4(~#x~0.base, ~#x~0.offset, 4bv32); [L42] ~temp~0 := #t~mem8; [L42] havoc #t~mem8; [L43] ~i~2 := 0bv32; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !!~bvslt32(~i~2, 4bv32); [L44] call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32); [L44] call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32); [L44] havoc #t~mem10; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !!~bvslt32(~i~2, 4bv32); [L44] call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32); [L44] call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32); [L44] havoc #t~mem10; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !!~bvslt32(~i~2, 4bv32); [L44] call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32); [L44] call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32); [L44] havoc #t~mem10; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !!~bvslt32(~i~2, 4bv32); [L44] call #t~mem10 := read~intINTTYPE4(~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))), 4bv32); [L44] call write~intINTTYPE4(#t~mem10, ~#x~0.base, ~bvadd32(~#x~0.offset, ~bvmul32(4bv32, ~i~2)), 4bv32); [L44] havoc #t~mem10; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] assume !~bvslt32(~i~2, 4bv32); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L46] call write~intINTTYPE4(~temp~0, ~#x~0.base, ~bvadd32(16bv32, ~#x~0.offset), 4bv32); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] CALL call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32] [L11-L27] ~x.base, ~x.offset := #in~x.base, #in~x.offset; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume !~bvsgt32(~i~1, 2bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=1067909120bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !!~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x.base=32bv32, ~x.offset=0bv32] [L18-L21] assume ~bvsgt32(~i~1, 2bv32); [L19] call #t~mem3 := read~intINTTYPE4(~x.base, ~bvadd32(~x.offset, ~bvmul32(4bv32, ~i~1)), 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L17-L22] assume !~bvslt32(~i~1, 5bv32); VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L23-L26] assume 0bv32 != ~cnt~0; [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=535822336bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L11-L27] ensures true; VAL [#in~x.base=32bv32, #in~x.offset=0bv32, #NULL.base=0bv32, #NULL.offset=0bv32, #res=535822336bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x.base=32bv32, ~x.offset=0bv32] [L47] RET call #t~ret11 := rangesum(~#x~0.base, ~#x~0.offset); VAL [#NULL.base=0bv32, #NULL.offset=0bv32, #t~ret11=535822336bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] ~ret5~0 := #t~ret11; [L47] havoc #t~ret11; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L49-L51] assume ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L50] assert false; VAL [#NULL.base=0bv32, #NULL.offset=0bv32, ~#x~0.base=32bv32, ~#x~0.offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [?] CALL call ULTIMATE.init(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, old(#NULL!base)=0bv32, old(#NULL!offset)=0bv32] [?] #NULL := { base: 0bv32, offset: 0bv32 }; [?] #valid[0bv32] := 0bv1; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, old(#NULL!base)=0bv32, old(#NULL!offset)=0bv32] [?] RET call ULTIMATE.init(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32] [?] CALL call #t~ret12 := main(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32] [L31] FCALL call ~#x~0 := #Ultimate.alloc(20bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L32] CALL call init_nondet(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L4-L9] ~x := #in~x; [L5] havoc ~i~0; [L6] ~i~0 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=0bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=0bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=1bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=1bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=2bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=2bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=3bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=3bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=4bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=4bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=5bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND TRUE !~bvslt32(~i~0, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=5bv32, ~x!base=32bv32, ~x!offset=0bv32] [L32] RET call init_nondet(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L33] havoc ~temp~0; [L34] havoc ~ret~1; [L35] havoc ~ret2~0; [L36] havoc ~ret5~0; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L38] CALL call #t~ret4 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L38] RET call #t~ret4 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret4=12469248bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L38] ~ret~1 := #t~ret4; [L38] havoc #t~ret4; [L40] FCALL call #t~mem5 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L40] ~temp~0 := #t~mem5; [L40] havoc #t~mem5; [L40] FCALL call #t~mem6 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(4bv32, ~#x~0!offset) }, 4bv32); [L40] FCALL call write~intINTTYPE4(#t~mem6, { base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L40] havoc #t~mem6; [L40] FCALL call write~intINTTYPE4(~temp~0, { base: ~#x~0!base, offset: ~bvadd32(4bv32, ~#x~0!offset) }, 4bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] CALL call #t~ret7 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L41] RET call #t~ret7 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret7=12469248bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] ~ret2~0 := #t~ret7; [L41] havoc #t~ret7; [L42] FCALL call #t~mem8 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L42] ~temp~0 := #t~mem8; [L42] havoc #t~mem8; [L43] ~i~2 := 0bv32; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND TRUE !~bvslt32(~i~2, 4bv32) VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L46] FCALL call write~intINTTYPE4(~temp~0, { base: ~#x~0!base, offset: ~bvadd32(16bv32, ~#x~0!offset) }, 4bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] CALL call #t~ret11 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=535822336bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L47] RET call #t~ret11 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret11=535822336bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] ~ret5~0 := #t~ret11; [L47] havoc #t~ret11; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L49] COND TRUE ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0 VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L50] assert false; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator [?] CALL call ULTIMATE.init(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, old(#NULL!base)=0bv32, old(#NULL!offset)=0bv32] [?] #NULL := { base: 0bv32, offset: 0bv32 }; [?] #valid[0bv32] := 0bv1; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, old(#NULL!base)=0bv32, old(#NULL!offset)=0bv32] [?] RET call ULTIMATE.init(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32] [?] CALL call #t~ret12 := main(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32] [L31] FCALL call ~#x~0 := #Ultimate.alloc(20bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L32] CALL call init_nondet(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L4-L9] ~x := #in~x; [L5] havoc ~i~0; [L6] ~i~0 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=0bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=0bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=1bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=1bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=2bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=2bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=3bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=3bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=4bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=4bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=5bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND TRUE !~bvslt32(~i~0, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=5bv32, ~x!base=32bv32, ~x!offset=0bv32] [L32] RET call init_nondet(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L33] havoc ~temp~0; [L34] havoc ~ret~1; [L35] havoc ~ret2~0; [L36] havoc ~ret5~0; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L38] CALL call #t~ret4 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L38] RET call #t~ret4 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret4=12469248bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L38] ~ret~1 := #t~ret4; [L38] havoc #t~ret4; [L40] FCALL call #t~mem5 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L40] ~temp~0 := #t~mem5; [L40] havoc #t~mem5; [L40] FCALL call #t~mem6 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(4bv32, ~#x~0!offset) }, 4bv32); [L40] FCALL call write~intINTTYPE4(#t~mem6, { base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L40] havoc #t~mem6; [L40] FCALL call write~intINTTYPE4(~temp~0, { base: ~#x~0!base, offset: ~bvadd32(4bv32, ~#x~0!offset) }, 4bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] CALL call #t~ret7 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L41] RET call #t~ret7 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret7=12469248bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] ~ret2~0 := #t~ret7; [L41] havoc #t~ret7; [L42] FCALL call #t~mem8 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L42] ~temp~0 := #t~mem8; [L42] havoc #t~mem8; [L43] ~i~2 := 0bv32; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND TRUE !~bvslt32(~i~2, 4bv32) VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L46] FCALL call write~intINTTYPE4(~temp~0, { base: ~#x~0!base, offset: ~bvadd32(16bv32, ~#x~0!offset) }, 4bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] CALL call #t~ret11 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=535822336bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L47] RET call #t~ret11 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret11=535822336bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] ~ret5~0 := #t~ret11; [L47] havoc #t~ret11; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L49] COND TRUE ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0 VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L50] assert false; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [?] CALL call ULTIMATE.init(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, old(#NULL!base)=0bv32, old(#NULL!offset)=0bv32] [?] #NULL := { base: 0bv32, offset: 0bv32 }; [?] #valid[0bv32] := 0bv1; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, old(#NULL!base)=0bv32, old(#NULL!offset)=0bv32] [?] RET call ULTIMATE.init(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32] [?] CALL call #t~ret12 := main(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32] [L31] FCALL call ~#x~0 := #Ultimate.alloc(20bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L32] CALL call init_nondet(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L4-L9] ~x := #in~x; [L5] havoc ~i~0; [L6] ~i~0 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=0bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=0bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=1bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=1bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=2bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=2bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=3bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=3bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=4bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=4bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=5bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND TRUE !~bvslt32(~i~0, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=5bv32, ~x!base=32bv32, ~x!offset=0bv32] [L32] RET call init_nondet(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L33] havoc ~temp~0; [L34] havoc ~ret~1; [L35] havoc ~ret2~0; [L36] havoc ~ret5~0; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L38] CALL call #t~ret4 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L38] RET call #t~ret4 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret4=12469248bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L38] ~ret~1 := #t~ret4; [L38] havoc #t~ret4; [L40] FCALL call #t~mem5 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L40] ~temp~0 := #t~mem5; [L40] havoc #t~mem5; [L40] FCALL call #t~mem6 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(4bv32, ~#x~0!offset) }, 4bv32); [L40] FCALL call write~intINTTYPE4(#t~mem6, { base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L40] havoc #t~mem6; [L40] FCALL call write~intINTTYPE4(~temp~0, { base: ~#x~0!base, offset: ~bvadd32(4bv32, ~#x~0!offset) }, 4bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] CALL call #t~ret7 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L41] RET call #t~ret7 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret7=12469248bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] ~ret2~0 := #t~ret7; [L41] havoc #t~ret7; [L42] FCALL call #t~mem8 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L42] ~temp~0 := #t~mem8; [L42] havoc #t~mem8; [L43] ~i~2 := 0bv32; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND TRUE !~bvslt32(~i~2, 4bv32) VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L46] FCALL call write~intINTTYPE4(~temp~0, { base: ~#x~0!base, offset: ~bvadd32(16bv32, ~#x~0!offset) }, 4bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] CALL call #t~ret11 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=535822336bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L47] RET call #t~ret11 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret11=535822336bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] ~ret5~0 := #t~ret11; [L47] havoc #t~ret11; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L49] COND TRUE ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0 VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L50] assert false; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] ----- ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.CACSL2BoogieBacktranslator [?] CALL call ULTIMATE.init(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, old(#NULL!base)=0bv32, old(#NULL!offset)=0bv32] [?] #NULL := { base: 0bv32, offset: 0bv32 }; [?] #valid[0bv32] := 0bv1; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, old(#NULL!base)=0bv32, old(#NULL!offset)=0bv32] [?] RET call ULTIMATE.init(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32] [?] CALL call #t~ret12 := main(); VAL [#NULL!base=0bv32, #NULL!offset=0bv32] [L31] FCALL call ~#x~0 := #Ultimate.alloc(20bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L32] CALL call init_nondet(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L4-L9] ~x := #in~x; [L5] havoc ~i~0; [L6] ~i~0 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=0bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=0bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=1bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=1bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=2bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=2bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=3bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=3bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=4bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND FALSE !(!~bvslt32(~i~0, 5bv32)) [L7] FCALL call write~intINTTYPE4(#t~nondet1, { base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~0)) }, 4bv32); [L7] havoc #t~nondet1; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=4bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6] #t~post0 := ~i~0; [L6] ~i~0 := ~bvadd32(1bv32, #t~post0); [L6] havoc #t~post0; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=5bv32, ~x!base=32bv32, ~x!offset=0bv32] [L6-L8] COND TRUE !~bvslt32(~i~0, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~i~0=5bv32, ~x!base=32bv32, ~x!offset=0bv32] [L32] RET call init_nondet(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L33] havoc ~temp~0; [L34] havoc ~ret~1; [L35] havoc ~ret2~0; [L36] havoc ~ret5~0; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L38] CALL call #t~ret4 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L38] RET call #t~ret4 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret4=12469248bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32] [L38] ~ret~1 := #t~ret4; [L38] havoc #t~ret4; [L40] FCALL call #t~mem5 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L40] ~temp~0 := #t~mem5; [L40] havoc #t~mem5; [L40] FCALL call #t~mem6 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(4bv32, ~#x~0!offset) }, 4bv32); [L40] FCALL call write~intINTTYPE4(#t~mem6, { base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L40] havoc #t~mem6; [L40] FCALL call write~intINTTYPE4(~temp~0, { base: ~#x~0!base, offset: ~bvadd32(4bv32, ~#x~0!offset) }, 4bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] CALL call #t~ret7 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=18446744072666580992bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=12469248bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=24938496bv64, ~x!base=32bv32, ~x!offset=0bv32] [L41] RET call #t~ret7 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret7=12469248bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~ret~1=12469248bv32, ~temp~0=0bv32] [L41] ~ret2~0 := #t~ret7; [L41] havoc #t~ret7; [L42] FCALL call #t~mem8 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~#x~0!offset }, 4bv32); [L42] ~temp~0 := #t~mem8; [L42] havoc #t~mem8; [L43] ~i~2 := 0bv32; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=0bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=1bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=2bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND FALSE !(!~bvslt32(~i~2, 4bv32)) [L44] FCALL call #t~mem10 := read~intINTTYPE4({ base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~bvadd32(1bv32, ~i~2))) }, 4bv32); [L44] FCALL call write~intINTTYPE4(#t~mem10, { base: ~#x~0!base, offset: ~bvadd32(~#x~0!offset, ~bvmul32(4bv32, ~i~2)) }, 4bv32); [L44] havoc #t~mem10; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=3bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43] #t~post9 := ~i~2; [L43] ~i~2 := ~bvadd32(1bv32, #t~post9); [L43] havoc #t~post9; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L43-L45] COND TRUE !~bvslt32(~i~2, 4bv32) VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L46] FCALL call write~intINTTYPE4(~temp~0, { base: ~#x~0!base, offset: ~bvadd32(16bv32, ~#x~0!offset) }, 4bv32); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] CALL call #t~ret11 := rangesum(~#x~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32] [L11-L27] ~x := #in~x; [L13] havoc ~i~1; [L14] havoc ~ret~0; [L15] ~ret~0 := ~sign_extendFrom32To64(0bv32); [L16] ~cnt~0 := 0bv32; [L17] ~i~1 := 0bv32; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=0bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=1bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND FALSE !(~bvsgt32(~i~1, 2bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=2bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=0bv32, ~i~1=3bv32, ~ret~0=0bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=3bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND FALSE !(!~bvslt32(~i~1, 5bv32)) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=1bv32, ~i~1=4bv32, ~ret~0=1067909120bv64, ~x!base=32bv32, ~x!offset=0bv32] [L18] COND TRUE ~bvsgt32(~i~1, 2bv32) [L19] FCALL call #t~mem3 := read~intINTTYPE4({ base: ~x!base, offset: ~bvadd32(~x!offset, ~bvmul32(4bv32, ~i~1)) }, 4bv32); [L19] ~ret~0 := ~bvadd64(~ret~0, ~sign_extendFrom32To64(#t~mem3)); [L19] havoc #t~mem3; [L20] ~cnt~0 := ~bvadd32(1bv32, ~cnt~0); VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=4bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17] #t~post2 := ~i~1; [L17] ~i~1 := ~bvadd32(1bv32, #t~post2); [L17] havoc #t~post2; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L17-L22] COND TRUE !~bvslt32(~i~1, 5bv32) VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L23] COND TRUE 0bv32 != ~cnt~0 [L24] #res := ~bvsdiv64(~ret~0, ~sign_extendFrom32To64(~cnt~0))[32:0]; VAL [#in~x!base=32bv32, #in~x!offset=0bv32, #NULL!base=0bv32, #NULL!offset=0bv32, #res=535822336bv32, ~cnt~0=2bv32, ~i~1=5bv32, ~ret~0=1071644672bv64, ~x!base=32bv32, ~x!offset=0bv32] [L47] RET call #t~ret11 := rangesum(~#x~0); VAL [#NULL!base=0bv32, #NULL!offset=0bv32, #t~ret11=535822336bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L47] ~ret5~0 := #t~ret11; [L47] havoc #t~ret11; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L49] COND TRUE ~ret~1 != ~ret2~0 || ~ret~1 != ~ret5~0 VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L50] assert false; VAL [#NULL!base=0bv32, #NULL!offset=0bv32, ~#x~0!base=32bv32, ~#x~0!offset=0bv32, ~i~2=4bv32, ~ret2~0=12469248bv32, ~ret5~0=535822336bv32, ~ret~1=12469248bv32, ~temp~0=3735552bv32] [L31] int x[5]; VAL [x={32:0}] [L32] CALL init_nondet(x) VAL [x={32:0}] [L5] int i; [L6] i = 0 VAL [i=0, x={32:0}, x={32:0}] [L6] COND TRUE i < 5 [L7] x[i] = __VERIFIER_nondet_int() [L6] i++ VAL [i=1, x={32:0}, x={32:0}] [L6] COND TRUE i < 5 [L7] x[i] = __VERIFIER_nondet_int() [L6] i++ VAL [i=2, x={32:0}, x={32:0}] [L6] COND TRUE i < 5 [L7] x[i] = __VERIFIER_nondet_int() [L6] i++ VAL [i=3, x={32:0}, x={32:0}] [L6] COND TRUE i < 5 [L7] x[i] = __VERIFIER_nondet_int() [L6] i++ VAL [i=4, x={32:0}, x={32:0}] [L6] COND TRUE i < 5 [L7] x[i] = __VERIFIER_nondet_int() [L6] i++ VAL [i=5, x={32:0}, x={32:0}] [L6] COND FALSE !(i < 5) VAL [i=5, x={32:0}, x={32:0}] [L32] RET init_nondet(x) VAL [x={32:0}] [L33] int temp; [L34] int ret; [L35] int ret2; [L36] int ret5; VAL [x={32:0}] [L38] CALL, EXPR rangesum(x) VAL [x={32:0}] [L13] int i; [L14] long long ret; [L15] ret = 0 [L16] int cnt = 0; [L17] i = 0 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=1, i=3, ret=18446744072666580992, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=1, i=4, ret=18446744072666580992, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=1, i=4, ret=18446744072666580992, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=2, i=4, ret=24938496, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L17] COND FALSE !(i < 5) VAL [cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L23] COND TRUE cnt !=0 [L24] return ret / cnt; VAL [\result=12469248, cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L38] RET, EXPR rangesum(x) VAL [rangesum(x)=12469248, x={32:0}] [L38] ret = rangesum(x) [L40] EXPR x[0] [L40] temp=x[0] [L40] EXPR x[1] [L40] x[0] = x[1] [L40] x[1] = temp VAL [ret=12469248, temp=0, x={32:0}] [L41] CALL, EXPR rangesum(x) VAL [x={32:0}] [L13] int i; [L14] long long ret; [L15] ret = 0 [L16] int cnt = 0; [L17] i = 0 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=1, i=3, ret=18446744072666580992, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=1, i=4, ret=18446744072666580992, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=1, i=4, ret=18446744072666580992, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=2, i=4, ret=24938496, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L17] COND FALSE !(i < 5) VAL [cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L23] COND TRUE cnt !=0 [L24] return ret / cnt; VAL [\result=12469248, cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L41] RET, EXPR rangesum(x) VAL [rangesum(x)=12469248, ret=12469248, temp=0, x={32:0}] [L41] ret2 = rangesum(x) [L42] EXPR x[0] [L42] temp=x[0] [L43] int i =0 ; VAL [i=0, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L43] COND TRUE i<5 -1 [L44] EXPR x[i+1] [L44] x[i] = x[i+1] [L43] i++ VAL [i=1, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L43] COND TRUE i<5 -1 [L44] EXPR x[i+1] [L44] x[i] = x[i+1] [L43] i++ VAL [i=2, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L43] COND TRUE i<5 -1 [L44] EXPR x[i+1] [L44] x[i] = x[i+1] [L43] i++ VAL [i=3, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L43] COND TRUE i<5 -1 [L44] EXPR x[i+1] [L44] x[i] = x[i+1] [L43] i++ VAL [i=4, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L43] COND FALSE !(i<5 -1) VAL [i=4, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L46] x[5 -1] = temp VAL [i=4, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L47] CALL, EXPR rangesum(x) VAL [x={32:0}] [L13] int i; [L14] long long ret; [L15] ret = 0 [L16] int cnt = 0; [L17] i = 0 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=1, i=3, ret=1067909120, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=1, i=4, ret=1067909120, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=1, i=4, ret=1067909120, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=2, i=4, ret=1071644672, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=2, i=5, ret=1071644672, x={32:0}, x={32:0}] [L17] COND FALSE !(i < 5) VAL [cnt=2, i=5, ret=1071644672, x={32:0}, x={32:0}] [L23] COND TRUE cnt !=0 [L24] return ret / cnt; VAL [\result=535822336, cnt=2, i=5, ret=1071644672, x={32:0}, x={32:0}] [L47] RET, EXPR rangesum(x) VAL [i=4, rangesum(x)=535822336, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L47] ret5 = rangesum(x) [L49] COND TRUE ret != ret2 || ret !=ret5 VAL [i=4, ret=12469248, ret2=12469248, ret5=535822336, temp=3735552, x={32:0}] [L50] __VERIFIER_error() VAL [i=4, ret=12469248, ret2=12469248, ret5=535822336, temp=3735552, x={32:0}] ----- [2018-11-23 10:18:25,095 INFO L145 WitnessManager]: Wrote witness to /storage/repos/svcomp/c/reducercommutativity/rangesum05_false-unreach-call_true-termination.i-witness.graphml [2018-11-23 10:18:25,095 INFO L132 PluginConnector]: ------------------------ END Witness Printer---------------------------- [2018-11-23 10:18:25,097 INFO L168 Benchmark]: Toolchain (without parser) took 39908.51 ms. Allocated memory was 1.5 GB in the beginning and 2.4 GB in the end (delta: 847.2 MB). Free memory was 1.4 GB in the beginning and 1.5 GB in the end (delta: -121.2 MB). Peak memory consumption was 726.0 MB. Max. memory is 7.1 GB. [2018-11-23 10:18:25,098 INFO L168 Benchmark]: CDTParser took 0.23 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-23 10:18:25,099 INFO L168 Benchmark]: CACSL2BoogieTranslator took 360.21 ms. Allocated memory is still 1.5 GB. Free memory was 1.4 GB in the beginning and 1.4 GB in the end (delta: 10.6 MB). Peak memory consumption was 10.6 MB. Max. memory is 7.1 GB. [2018-11-23 10:18:25,099 INFO L168 Benchmark]: Boogie Procedure Inliner took 28.05 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-23 10:18:25,099 INFO L168 Benchmark]: Boogie Preprocessor took 45.76 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-23 10:18:25,099 INFO L168 Benchmark]: RCFGBuilder took 1347.50 ms. Allocated memory was 1.5 GB in the beginning and 2.2 GB in the end (delta: 712.0 MB). Free memory was 1.4 GB in the beginning and 2.1 GB in the end (delta: -742.0 MB). Peak memory consumption was 15.3 MB. Max. memory is 7.1 GB. [2018-11-23 10:18:25,100 INFO L168 Benchmark]: TraceAbstraction took 37921.62 ms. Allocated memory was 2.2 GB in the beginning and 2.4 GB in the end (delta: 135.3 MB). Free memory was 2.1 GB in the beginning and 1.6 GB in the end (delta: 595.7 MB). Peak memory consumption was 730.9 MB. Max. memory is 7.1 GB. [2018-11-23 10:18:25,100 INFO L168 Benchmark]: Witness Printer took 198.89 ms. Allocated memory is still 2.4 GB. Free memory was 1.6 GB in the beginning and 1.5 GB in the end (delta: 14.6 MB). Peak memory consumption was 14.6 MB. Max. memory is 7.1 GB. [2018-11-23 10:18:25,103 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - GenericResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.23 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. * CACSL2BoogieTranslator took 360.21 ms. Allocated memory is still 1.5 GB. Free memory was 1.4 GB in the beginning and 1.4 GB in the end (delta: 10.6 MB). Peak memory consumption was 10.6 MB. Max. memory is 7.1 GB. * Boogie Procedure Inliner took 28.05 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. * Boogie Preprocessor took 45.76 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. * RCFGBuilder took 1347.50 ms. Allocated memory was 1.5 GB in the beginning and 2.2 GB in the end (delta: 712.0 MB). Free memory was 1.4 GB in the beginning and 2.1 GB in the end (delta: -742.0 MB). Peak memory consumption was 15.3 MB. Max. memory is 7.1 GB. * TraceAbstraction took 37921.62 ms. Allocated memory was 2.2 GB in the beginning and 2.4 GB in the end (delta: 135.3 MB). Free memory was 2.1 GB in the beginning and 1.6 GB in the end (delta: 595.7 MB). Peak memory consumption was 730.9 MB. Max. memory is 7.1 GB. * Witness Printer took 198.89 ms. Allocated memory is still 2.4 GB. Free memory was 1.6 GB in the beginning and 1.5 GB in the end (delta: 14.6 MB). Peak memory consumption was 14.6 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - CounterExampleResult [Line: 50]: a call of __VERIFIER_error() is reachable a call of __VERIFIER_error() is reachable We found a FailurePath: [L31] int x[5]; VAL [x={32:0}] [L32] CALL init_nondet(x) VAL [x={32:0}] [L5] int i; [L6] i = 0 VAL [i=0, x={32:0}, x={32:0}] [L6] COND TRUE i < 5 [L7] x[i] = __VERIFIER_nondet_int() [L6] i++ VAL [i=1, x={32:0}, x={32:0}] [L6] COND TRUE i < 5 [L7] x[i] = __VERIFIER_nondet_int() [L6] i++ VAL [i=2, x={32:0}, x={32:0}] [L6] COND TRUE i < 5 [L7] x[i] = __VERIFIER_nondet_int() [L6] i++ VAL [i=3, x={32:0}, x={32:0}] [L6] COND TRUE i < 5 [L7] x[i] = __VERIFIER_nondet_int() [L6] i++ VAL [i=4, x={32:0}, x={32:0}] [L6] COND TRUE i < 5 [L7] x[i] = __VERIFIER_nondet_int() [L6] i++ VAL [i=5, x={32:0}, x={32:0}] [L6] COND FALSE !(i < 5) VAL [i=5, x={32:0}, x={32:0}] [L32] RET init_nondet(x) VAL [x={32:0}] [L33] int temp; [L34] int ret; [L35] int ret2; [L36] int ret5; VAL [x={32:0}] [L38] CALL, EXPR rangesum(x) VAL [x={32:0}] [L13] int i; [L14] long long ret; [L15] ret = 0 [L16] int cnt = 0; [L17] i = 0 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=1, i=3, ret=18446744072666580992, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=1, i=4, ret=18446744072666580992, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=1, i=4, ret=18446744072666580992, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=2, i=4, ret=24938496, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L17] COND FALSE !(i < 5) VAL [cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L23] COND TRUE cnt !=0 [L24] return ret / cnt; VAL [\result=12469248, cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L38] RET, EXPR rangesum(x) VAL [rangesum(x)=12469248, x={32:0}] [L38] ret = rangesum(x) [L40] EXPR x[0] [L40] temp=x[0] [L40] EXPR x[1] [L40] x[0] = x[1] [L40] x[1] = temp VAL [ret=12469248, temp=0, x={32:0}] [L41] CALL, EXPR rangesum(x) VAL [x={32:0}] [L13] int i; [L14] long long ret; [L15] ret = 0 [L16] int cnt = 0; [L17] i = 0 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=1, i=3, ret=18446744072666580992, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=1, i=4, ret=18446744072666580992, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=1, i=4, ret=18446744072666580992, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=2, i=4, ret=24938496, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L17] COND FALSE !(i < 5) VAL [cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L23] COND TRUE cnt !=0 [L24] return ret / cnt; VAL [\result=12469248, cnt=2, i=5, ret=24938496, x={32:0}, x={32:0}] [L41] RET, EXPR rangesum(x) VAL [rangesum(x)=12469248, ret=12469248, temp=0, x={32:0}] [L41] ret2 = rangesum(x) [L42] EXPR x[0] [L42] temp=x[0] [L43] int i =0 ; VAL [i=0, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L43] COND TRUE i<5 -1 [L44] EXPR x[i+1] [L44] x[i] = x[i+1] [L43] i++ VAL [i=1, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L43] COND TRUE i<5 -1 [L44] EXPR x[i+1] [L44] x[i] = x[i+1] [L43] i++ VAL [i=2, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L43] COND TRUE i<5 -1 [L44] EXPR x[i+1] [L44] x[i] = x[i+1] [L43] i++ VAL [i=3, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L43] COND TRUE i<5 -1 [L44] EXPR x[i+1] [L44] x[i] = x[i+1] [L43] i++ VAL [i=4, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L43] COND FALSE !(i<5 -1) VAL [i=4, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L46] x[5 -1] = temp VAL [i=4, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L47] CALL, EXPR rangesum(x) VAL [x={32:0}] [L13] int i; [L14] long long ret; [L15] ret = 0 [L16] int cnt = 0; [L17] i = 0 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=0, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=1, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L18] COND FALSE !(i > 5/2) VAL [cnt=0, i=2, ret=0, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=0, i=3, ret=0, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=1, i=3, ret=1067909120, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=1, i=4, ret=1067909120, x={32:0}, x={32:0}] [L17] COND TRUE i < 5 VAL [cnt=1, i=4, ret=1067909120, x={32:0}, x={32:0}] [L18] COND TRUE i > 5/2 [L19] EXPR x[i] [L19] ret = ret + x[i] [L20] cnt = cnt + 1 VAL [cnt=2, i=4, ret=1071644672, x={32:0}, x={32:0}] [L17] i++ VAL [cnt=2, i=5, ret=1071644672, x={32:0}, x={32:0}] [L17] COND FALSE !(i < 5) VAL [cnt=2, i=5, ret=1071644672, x={32:0}, x={32:0}] [L23] COND TRUE cnt !=0 [L24] return ret / cnt; VAL [\result=535822336, cnt=2, i=5, ret=1071644672, x={32:0}, x={32:0}] [L47] RET, EXPR rangesum(x) VAL [i=4, rangesum(x)=535822336, ret=12469248, ret2=12469248, temp=3735552, x={32:0}] [L47] ret5 = rangesum(x) [L49] COND TRUE ret != ret2 || ret !=ret5 VAL [i=4, ret=12469248, ret2=12469248, ret5=535822336, temp=3735552, x={32:0}] [L50] __VERIFIER_error() VAL [i=4, ret=12469248, ret2=12469248, ret5=535822336, temp=3735552, x={32:0}] - StatisticsResult: Ultimate Automizer benchmark data CFG has 5 procedures, 37 locations, 1 error locations. UNSAFE Result, 37.8s OverallTime, 12 OverallIterations, 15 TraceHistogramMax, 13.7s AutomataDifference, 0.0s DeadEndRemovalTime, 0.0s HoareAnnotationTime, HoareTripleCheckerStatistics: 398 SDtfs, 58 SDslu, 958 SDs, 0 SdLazy, 289 SolverSat, 34 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 0.8s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 1061 GetRequests, 1014 SyntacticMatches, 0 SemanticMatches, 47 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.7s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=65occurred in iteration=11, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.0s AbstIntTime, 0 AbstIntIterations, 0 AbstIntStrong, NaN AbsIntWeakeningRatio, NaN AbsIntAvgWeakeningVarsNumRemoved, NaN AbsIntAvgWeakenedConjuncts, 0.0s DumpTime, AutomataMinimizationStatistics: 0.5s AutomataMinimizationTime, 11 MinimizatonAttempts, 11 StatesRemovedByMinimization, 8 NontrivialMinimizations, HoareAnnotationStatistics: No data available, RefinementEngineStatistics: TraceCheckStatistics: 0.2s SsaConstructionTime, 10.2s SatisfiabilityAnalysisTime, 5.7s InterpolantComputationTime, 757 NumberOfCodeBlocks, 676 NumberOfCodeBlocksAsserted, 16 NumberOfCheckSat, 1049 ConstructedInterpolants, 0 QuantifiedInterpolants, 90717 SizeOfPredicates, 9 NumberOfNonLiveVariables, 1188 ConjunctsInSsa, 34 ConjunctsInUnsatCore, 17 InterpolantComputations, 5 PerfectInterpolantSequences, 2266/2620 InterpolantCoveringCapability, InvariantSynthesisStatistics: No data available, InterpolantConsolidationStatistics: No data available, ReuseStatistics: No data available RESULT: Ultimate proved your program to be incorrect! Received shutdown request...