/usr/bin/java -ea -Xmx8000000000 -Xss4m -jar ./plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata ./data --core.log.level.for.class de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=WARN -tc ../../../trunk/examples/toolchains/AutomizerC.xml -s ../../../trunk/examples/settings/automizer/acceleratedInterpolation/acceleratedInterpolationJordan_32.epf -i ../../../trunk/examples/svcomp/verifythis/prefixsum_iter.c -------------------------------------------------------------------------------- This is Ultimate 0.2.2-dev-fb4f59a-m [2022-04-28 04:10:35,178 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-04-28 04:10:35,179 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-04-28 04:10:35,210 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-04-28 04:10:35,210 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-04-28 04:10:35,211 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-04-28 04:10:35,212 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-04-28 04:10:35,213 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-04-28 04:10:35,214 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-04-28 04:10:35,215 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-04-28 04:10:35,220 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-04-28 04:10:35,222 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-04-28 04:10:35,223 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-04-28 04:10:35,226 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-04-28 04:10:35,227 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-04-28 04:10:35,228 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-04-28 04:10:35,229 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-04-28 04:10:35,230 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-04-28 04:10:35,233 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-04-28 04:10:35,237 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-04-28 04:10:35,238 INFO L181 SettingsManager]: Resetting HornVerifier preferences to default values [2022-04-28 04:10:35,239 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-04-28 04:10:35,240 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-04-28 04:10:35,240 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-04-28 04:10:35,241 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-04-28 04:10:35,242 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-04-28 04:10:35,242 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-04-28 04:10:35,242 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-04-28 04:10:35,243 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-04-28 04:10:35,243 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-04-28 04:10:35,244 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-04-28 04:10:35,244 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-04-28 04:10:35,244 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-04-28 04:10:35,244 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-04-28 04:10:35,245 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-04-28 04:10:35,245 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-04-28 04:10:35,246 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-04-28 04:10:35,246 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-04-28 04:10:35,246 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-04-28 04:10:35,246 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-04-28 04:10:35,247 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-04-28 04:10:35,252 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-04-28 04:10:35,253 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/automizer/acceleratedInterpolation/acceleratedInterpolationJordan_32.epf [2022-04-28 04:10:35,263 INFO L113 SettingsManager]: Loading preferences was successful [2022-04-28 04:10:35,263 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-04-28 04:10:35,264 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-04-28 04:10:35,264 INFO L138 SettingsManager]: * sizeof long=4 [2022-04-28 04:10:35,264 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-04-28 04:10:35,264 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-04-28 04:10:35,265 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-04-28 04:10:35,265 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-04-28 04:10:35,265 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-04-28 04:10:35,265 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-04-28 04:10:35,265 INFO L138 SettingsManager]: * sizeof long double=12 [2022-04-28 04:10:35,265 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-04-28 04:10:35,266 INFO L138 SettingsManager]: * Use constant arrays=true [2022-04-28 04:10:35,266 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-04-28 04:10:35,266 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-04-28 04:10:35,266 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-04-28 04:10:35,266 INFO L138 SettingsManager]: * To the following directory=./dump/ [2022-04-28 04:10:35,266 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-04-28 04:10:35,266 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-28 04:10:35,266 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-04-28 04:10:35,266 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=Craig_NestedInterpolation [2022-04-28 04:10:35,266 INFO L138 SettingsManager]: * Trace refinement strategy=ACCELERATED_INTERPOLATION [2022-04-28 04:10:35,266 INFO L138 SettingsManager]: * Trace refinement strategy used in Accelerated Interpolation=CAMEL [2022-04-28 04:10:35,267 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-04-28 04:10:35,267 INFO L138 SettingsManager]: * Loop acceleration method that is used by accelerated interpolation=JORDAN [2022-04-28 04:10:35,267 INFO L138 SettingsManager]: * Use separate solver for trace checks=false WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.core: Log level for class -> de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=WARN; [2022-04-28 04:10:35,459 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-04-28 04:10:35,475 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-04-28 04:10:35,477 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-04-28 04:10:35,478 INFO L271 PluginConnector]: Initializing CDTParser... [2022-04-28 04:10:35,478 INFO L275 PluginConnector]: CDTParser initialized [2022-04-28 04:10:35,479 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/verifythis/prefixsum_iter.c [2022-04-28 04:10:35,524 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/306d067ec/14b7c7f39dd24e1ea5bd3fdad4a33d6a/FLAG0547f196c [2022-04-28 04:10:35,916 INFO L306 CDTParser]: Found 1 translation units. [2022-04-28 04:10:35,916 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/verifythis/prefixsum_iter.c [2022-04-28 04:10:35,922 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/306d067ec/14b7c7f39dd24e1ea5bd3fdad4a33d6a/FLAG0547f196c [2022-04-28 04:10:35,934 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/306d067ec/14b7c7f39dd24e1ea5bd3fdad4a33d6a [2022-04-28 04:10:35,935 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-04-28 04:10:35,937 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2022-04-28 04:10:35,939 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-04-28 04:10:35,939 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-04-28 04:10:35,941 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-04-28 04:10:35,942 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 28.04 04:10:35" (1/1) ... [2022-04-28 04:10:35,943 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@6792683a and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:10:35, skipping insertion in model container [2022-04-28 04:10:35,943 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 28.04 04:10:35" (1/1) ... [2022-04-28 04:10:35,948 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-04-28 04:10:35,960 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-04-28 04:10:36,110 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/trunk/examples/svcomp/verifythis/prefixsum_iter.c[526,539] [2022-04-28 04:10:36,154 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-28 04:10:36,164 INFO L203 MainTranslator]: Completed pre-run [2022-04-28 04:10:36,178 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/trunk/examples/svcomp/verifythis/prefixsum_iter.c[526,539] [2022-04-28 04:10:36,189 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-28 04:10:36,199 INFO L208 MainTranslator]: Completed translation [2022-04-28 04:10:36,199 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:10:36 WrapperNode [2022-04-28 04:10:36,199 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-04-28 04:10:36,200 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-04-28 04:10:36,200 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-04-28 04:10:36,200 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-04-28 04:10:36,207 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:10:36" (1/1) ... [2022-04-28 04:10:36,207 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:10:36" (1/1) ... [2022-04-28 04:10:36,213 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:10:36" (1/1) ... [2022-04-28 04:10:36,213 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:10:36" (1/1) ... [2022-04-28 04:10:36,221 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:10:36" (1/1) ... [2022-04-28 04:10:36,228 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:10:36" (1/1) ... [2022-04-28 04:10:36,229 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:10:36" (1/1) ... [2022-04-28 04:10:36,231 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-04-28 04:10:36,232 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-04-28 04:10:36,232 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-04-28 04:10:36,232 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-04-28 04:10:36,237 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:10:36" (1/1) ... [2022-04-28 04:10:36,242 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-28 04:10:36,249 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:10:36,269 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-04-28 04:10:36,283 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-04-28 04:10:36,299 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2022-04-28 04:10:36,300 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-04-28 04:10:36,300 INFO L138 BoogieDeclarations]: Found implementation of procedure assume_abort_if_not [2022-04-28 04:10:36,300 INFO L138 BoogieDeclarations]: Found implementation of procedure reach_error [2022-04-28 04:10:36,300 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2022-04-28 04:10:36,300 INFO L138 BoogieDeclarations]: Found implementation of procedure upsweep [2022-04-28 04:10:36,301 INFO L138 BoogieDeclarations]: Found implementation of procedure downsweep [2022-04-28 04:10:36,301 INFO L138 BoogieDeclarations]: Found implementation of procedure is_pow2 [2022-04-28 04:10:36,301 INFO L138 BoogieDeclarations]: Found implementation of procedure check [2022-04-28 04:10:36,301 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2022-04-28 04:10:36,301 INFO L138 BoogieDeclarations]: Found implementation of procedure #Ultimate.meminit [2022-04-28 04:10:36,302 INFO L130 BoogieDeclarations]: Found specification of procedure calloc [2022-04-28 04:10:36,303 INFO L130 BoogieDeclarations]: Found specification of procedure free [2022-04-28 04:10:36,303 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2022-04-28 04:10:36,303 INFO L130 BoogieDeclarations]: Found specification of procedure abort [2022-04-28 04:10:36,303 INFO L130 BoogieDeclarations]: Found specification of procedure assume_abort_if_not [2022-04-28 04:10:36,303 INFO L130 BoogieDeclarations]: Found specification of procedure __assert_fail [2022-04-28 04:10:36,303 INFO L130 BoogieDeclarations]: Found specification of procedure reach_error [2022-04-28 04:10:36,303 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-04-28 04:10:36,303 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2022-04-28 04:10:36,303 INFO L130 BoogieDeclarations]: Found specification of procedure upsweep [2022-04-28 04:10:36,303 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-04-28 04:10:36,303 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2022-04-28 04:10:36,304 INFO L130 BoogieDeclarations]: Found specification of procedure downsweep [2022-04-28 04:10:36,304 INFO L130 BoogieDeclarations]: Found specification of procedure is_pow2 [2022-04-28 04:10:36,304 INFO L130 BoogieDeclarations]: Found specification of procedure check [2022-04-28 04:10:36,304 INFO L130 BoogieDeclarations]: Found specification of procedure main [2022-04-28 04:10:36,304 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnHeap [2022-04-28 04:10:36,304 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.meminit [2022-04-28 04:10:36,304 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-04-28 04:10:36,304 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2022-04-28 04:10:36,304 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-04-28 04:10:36,304 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-04-28 04:10:36,404 INFO L234 CfgBuilder]: Building ICFG [2022-04-28 04:10:36,405 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-04-28 04:10:38,871 INFO L275 CfgBuilder]: Performing block encoding [2022-04-28 04:10:38,876 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-04-28 04:10:38,876 INFO L299 CfgBuilder]: Removed 7 assume(true) statements. [2022-04-28 04:10:38,878 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.04 04:10:38 BoogieIcfgContainer [2022-04-28 04:10:38,878 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-04-28 04:10:38,879 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-04-28 04:10:38,879 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-04-28 04:10:38,882 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-04-28 04:10:38,882 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 28.04 04:10:35" (1/3) ... [2022-04-28 04:10:38,883 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@279dff46 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.04 04:10:38, skipping insertion in model container [2022-04-28 04:10:38,883 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:10:36" (2/3) ... [2022-04-28 04:10:38,883 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@279dff46 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.04 04:10:38, skipping insertion in model container [2022-04-28 04:10:38,883 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.04 04:10:38" (3/3) ... [2022-04-28 04:10:38,884 INFO L111 eAbstractionObserver]: Analyzing ICFG prefixsum_iter.c [2022-04-28 04:10:38,895 INFO L201 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:Craig_NestedInterpolation Determinization: PREDICATE_ABSTRACTION [2022-04-28 04:10:38,895 INFO L160 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-04-28 04:10:38,932 INFO L356 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-04-28 04:10:38,939 INFO L357 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=Craig_NestedInterpolation, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=FINITE_AUTOMATA, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=All, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP, mPorIndependenceSettings=de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.IndependenceSettings@507f2fa9, mLbeIndependenceSettings=de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.IndependenceSettings@22567e0b [2022-04-28 04:10:38,939 INFO L358 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-04-28 04:10:38,945 INFO L276 IsEmpty]: Start isEmpty. Operand has 64 states, 42 states have (on average 1.4047619047619047) internal successors, (59), 43 states have internal predecessors, (59), 11 states have call successors, (11), 9 states have call predecessors, (11), 9 states have return successors, (11), 11 states have call predecessors, (11), 11 states have call successors, (11) [2022-04-28 04:10:38,952 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 55 [2022-04-28 04:10:38,952 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:10:38,953 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-28 04:10:38,953 INFO L420 AbstractCegarLoop]: === Iteration 1 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:10:38,956 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:10:38,956 INFO L85 PathProgramCache]: Analyzing trace with hash 242194828, now seen corresponding path program 1 times [2022-04-28 04:10:38,961 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:10:38,962 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [708731100] [2022-04-28 04:10:38,968 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:10:38,968 INFO L85 PathProgramCache]: Analyzing trace with hash 242194828, now seen corresponding path program 2 times [2022-04-28 04:10:38,970 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:10:38,970 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [685372514] [2022-04-28 04:10:38,971 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:10:38,971 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:10:39,072 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:39,137 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:10:39,142 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:39,167 INFO L290 TraceCheckUtils]: 0: Hoare triple {100#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {67#true} is VALID [2022-04-28 04:10:39,167 INFO L290 TraceCheckUtils]: 1: Hoare triple {67#true} assume true; {67#true} is VALID [2022-04-28 04:10:39,168 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {67#true} {67#true} #160#return; {67#true} is VALID [2022-04-28 04:10:39,168 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:10:39,170 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:39,178 INFO L290 TraceCheckUtils]: 0: Hoare triple {67#true} ~cond := #in~cond; {67#true} is VALID [2022-04-28 04:10:39,181 INFO L290 TraceCheckUtils]: 1: Hoare triple {67#true} assume 0 == ~cond;assume false; {68#false} is VALID [2022-04-28 04:10:39,181 INFO L290 TraceCheckUtils]: 2: Hoare triple {68#false} assume true; {68#false} is VALID [2022-04-28 04:10:39,181 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {68#false} {67#true} #142#return; {68#false} is VALID [2022-04-28 04:10:39,181 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:10:39,195 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:39,212 INFO L290 TraceCheckUtils]: 0: Hoare triple {67#true} ~x := #in~x; {67#true} is VALID [2022-04-28 04:10:39,212 INFO L290 TraceCheckUtils]: 1: Hoare triple {67#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {67#true} is VALID [2022-04-28 04:10:39,212 INFO L290 TraceCheckUtils]: 2: Hoare triple {67#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {67#true} is VALID [2022-04-28 04:10:39,212 INFO L290 TraceCheckUtils]: 3: Hoare triple {67#true} assume true; {67#true} is VALID [2022-04-28 04:10:39,213 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {67#true} {68#false} #144#return; {68#false} is VALID [2022-04-28 04:10:39,213 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:10:39,214 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:39,221 INFO L290 TraceCheckUtils]: 0: Hoare triple {67#true} ~cond := #in~cond; {67#true} is VALID [2022-04-28 04:10:39,222 INFO L290 TraceCheckUtils]: 1: Hoare triple {67#true} assume 0 == ~cond;assume false; {68#false} is VALID [2022-04-28 04:10:39,222 INFO L290 TraceCheckUtils]: 2: Hoare triple {68#false} assume true; {68#false} is VALID [2022-04-28 04:10:39,223 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {68#false} {68#false} #146#return; {68#false} is VALID [2022-04-28 04:10:39,229 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:10:39,233 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:39,238 INFO L290 TraceCheckUtils]: 0: Hoare triple {101#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {67#true} is VALID [2022-04-28 04:10:39,239 INFO L290 TraceCheckUtils]: 1: Hoare triple {67#true} assume true; {67#true} is VALID [2022-04-28 04:10:39,240 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {67#true} {68#false} #148#return; {68#false} is VALID [2022-04-28 04:10:39,241 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:10:39,244 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:39,249 INFO L290 TraceCheckUtils]: 0: Hoare triple {101#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {67#true} is VALID [2022-04-28 04:10:39,250 INFO L290 TraceCheckUtils]: 1: Hoare triple {67#true} assume true; {67#true} is VALID [2022-04-28 04:10:39,250 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {67#true} {68#false} #150#return; {68#false} is VALID [2022-04-28 04:10:39,250 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 35 [2022-04-28 04:10:39,256 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:39,269 INFO L290 TraceCheckUtils]: 0: Hoare triple {101#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {67#true} is VALID [2022-04-28 04:10:39,269 INFO L290 TraceCheckUtils]: 1: Hoare triple {67#true} assume !(~space~0 < ~n); {67#true} is VALID [2022-04-28 04:10:39,269 INFO L290 TraceCheckUtils]: 2: Hoare triple {67#true} #res := ~space~0; {67#true} is VALID [2022-04-28 04:10:39,269 INFO L290 TraceCheckUtils]: 3: Hoare triple {67#true} assume true; {67#true} is VALID [2022-04-28 04:10:39,270 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {67#true} {68#false} #152#return; {68#false} is VALID [2022-04-28 04:10:39,270 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 42 [2022-04-28 04:10:39,277 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:39,287 INFO L290 TraceCheckUtils]: 0: Hoare triple {101#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {67#true} is VALID [2022-04-28 04:10:39,287 INFO L290 TraceCheckUtils]: 1: Hoare triple {67#true} assume !(~space > 0); {67#true} is VALID [2022-04-28 04:10:39,288 INFO L290 TraceCheckUtils]: 2: Hoare triple {67#true} assume true; {67#true} is VALID [2022-04-28 04:10:39,288 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {67#true} {68#false} #154#return; {68#false} is VALID [2022-04-28 04:10:39,289 INFO L272 TraceCheckUtils]: 0: Hoare triple {67#true} call ULTIMATE.init(); {100#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:10:39,289 INFO L290 TraceCheckUtils]: 1: Hoare triple {100#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {67#true} is VALID [2022-04-28 04:10:39,289 INFO L290 TraceCheckUtils]: 2: Hoare triple {67#true} assume true; {67#true} is VALID [2022-04-28 04:10:39,290 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {67#true} {67#true} #160#return; {67#true} is VALID [2022-04-28 04:10:39,290 INFO L272 TraceCheckUtils]: 4: Hoare triple {67#true} call #t~ret20 := main(); {67#true} is VALID [2022-04-28 04:10:39,290 INFO L290 TraceCheckUtils]: 5: Hoare triple {67#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {67#true} is VALID [2022-04-28 04:10:39,291 INFO L272 TraceCheckUtils]: 6: Hoare triple {67#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {67#true} is VALID [2022-04-28 04:10:39,291 INFO L290 TraceCheckUtils]: 7: Hoare triple {67#true} ~cond := #in~cond; {67#true} is VALID [2022-04-28 04:10:39,291 INFO L290 TraceCheckUtils]: 8: Hoare triple {67#true} assume 0 == ~cond;assume false; {68#false} is VALID [2022-04-28 04:10:39,291 INFO L290 TraceCheckUtils]: 9: Hoare triple {68#false} assume true; {68#false} is VALID [2022-04-28 04:10:39,292 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {68#false} {67#true} #142#return; {68#false} is VALID [2022-04-28 04:10:39,292 INFO L272 TraceCheckUtils]: 11: Hoare triple {68#false} call #t~ret14 := is_pow2(~n~0); {67#true} is VALID [2022-04-28 04:10:39,293 INFO L290 TraceCheckUtils]: 12: Hoare triple {67#true} ~x := #in~x; {67#true} is VALID [2022-04-28 04:10:39,293 INFO L290 TraceCheckUtils]: 13: Hoare triple {67#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {67#true} is VALID [2022-04-28 04:10:39,293 INFO L290 TraceCheckUtils]: 14: Hoare triple {67#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {67#true} is VALID [2022-04-28 04:10:39,293 INFO L290 TraceCheckUtils]: 15: Hoare triple {67#true} assume true; {67#true} is VALID [2022-04-28 04:10:39,294 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {67#true} {68#false} #144#return; {68#false} is VALID [2022-04-28 04:10:39,296 INFO L290 TraceCheckUtils]: 17: Hoare triple {68#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {68#false} is VALID [2022-04-28 04:10:39,297 INFO L272 TraceCheckUtils]: 18: Hoare triple {68#false} call assume_abort_if_not(#t~ret14); {67#true} is VALID [2022-04-28 04:10:39,297 INFO L290 TraceCheckUtils]: 19: Hoare triple {67#true} ~cond := #in~cond; {67#true} is VALID [2022-04-28 04:10:39,298 INFO L290 TraceCheckUtils]: 20: Hoare triple {67#true} assume 0 == ~cond;assume false; {68#false} is VALID [2022-04-28 04:10:39,299 INFO L290 TraceCheckUtils]: 21: Hoare triple {68#false} assume true; {68#false} is VALID [2022-04-28 04:10:39,299 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {68#false} {68#false} #146#return; {68#false} is VALID [2022-04-28 04:10:39,299 INFO L290 TraceCheckUtils]: 23: Hoare triple {68#false} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {68#false} is VALID [2022-04-28 04:10:39,299 INFO L272 TraceCheckUtils]: 24: Hoare triple {68#false} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {101#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:39,299 INFO L290 TraceCheckUtils]: 25: Hoare triple {101#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {67#true} is VALID [2022-04-28 04:10:39,299 INFO L290 TraceCheckUtils]: 26: Hoare triple {67#true} assume true; {67#true} is VALID [2022-04-28 04:10:39,299 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {67#true} {68#false} #148#return; {68#false} is VALID [2022-04-28 04:10:39,300 INFO L290 TraceCheckUtils]: 28: Hoare triple {68#false} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {68#false} is VALID [2022-04-28 04:10:39,300 INFO L272 TraceCheckUtils]: 29: Hoare triple {68#false} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {101#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:39,300 INFO L290 TraceCheckUtils]: 30: Hoare triple {101#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {67#true} is VALID [2022-04-28 04:10:39,300 INFO L290 TraceCheckUtils]: 31: Hoare triple {67#true} assume true; {67#true} is VALID [2022-04-28 04:10:39,300 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {67#true} {68#false} #150#return; {68#false} is VALID [2022-04-28 04:10:39,300 INFO L290 TraceCheckUtils]: 33: Hoare triple {68#false} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {68#false} is VALID [2022-04-28 04:10:39,300 INFO L290 TraceCheckUtils]: 34: Hoare triple {68#false} assume !(~i~1 < ~n~0); {68#false} is VALID [2022-04-28 04:10:39,301 INFO L272 TraceCheckUtils]: 35: Hoare triple {68#false} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {101#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:39,301 INFO L290 TraceCheckUtils]: 36: Hoare triple {101#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {67#true} is VALID [2022-04-28 04:10:39,301 INFO L290 TraceCheckUtils]: 37: Hoare triple {67#true} assume !(~space~0 < ~n); {67#true} is VALID [2022-04-28 04:10:39,301 INFO L290 TraceCheckUtils]: 38: Hoare triple {67#true} #res := ~space~0; {67#true} is VALID [2022-04-28 04:10:39,301 INFO L290 TraceCheckUtils]: 39: Hoare triple {67#true} assume true; {67#true} is VALID [2022-04-28 04:10:39,301 INFO L284 TraceCheckUtils]: 40: Hoare quadruple {67#true} {68#false} #152#return; {68#false} is VALID [2022-04-28 04:10:39,301 INFO L290 TraceCheckUtils]: 41: Hoare triple {68#false} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {68#false} is VALID [2022-04-28 04:10:39,301 INFO L272 TraceCheckUtils]: 42: Hoare triple {68#false} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {101#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:39,302 INFO L290 TraceCheckUtils]: 43: Hoare triple {101#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {67#true} is VALID [2022-04-28 04:10:39,302 INFO L290 TraceCheckUtils]: 44: Hoare triple {67#true} assume !(~space > 0); {67#true} is VALID [2022-04-28 04:10:39,302 INFO L290 TraceCheckUtils]: 45: Hoare triple {67#true} assume true; {67#true} is VALID [2022-04-28 04:10:39,302 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {67#true} {68#false} #154#return; {68#false} is VALID [2022-04-28 04:10:39,302 INFO L272 TraceCheckUtils]: 47: Hoare triple {68#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {68#false} is VALID [2022-04-28 04:10:39,302 INFO L290 TraceCheckUtils]: 48: Hoare triple {68#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {68#false} is VALID [2022-04-28 04:10:39,302 INFO L290 TraceCheckUtils]: 49: Hoare triple {68#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {68#false} is VALID [2022-04-28 04:10:39,303 INFO L272 TraceCheckUtils]: 50: Hoare triple {68#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {68#false} is VALID [2022-04-28 04:10:39,303 INFO L290 TraceCheckUtils]: 51: Hoare triple {68#false} ~cond := #in~cond; {68#false} is VALID [2022-04-28 04:10:39,303 INFO L290 TraceCheckUtils]: 52: Hoare triple {68#false} assume 0 == ~cond; {68#false} is VALID [2022-04-28 04:10:39,303 INFO L290 TraceCheckUtils]: 53: Hoare triple {68#false} assume !false; {68#false} is VALID [2022-04-28 04:10:39,303 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2022-04-28 04:10:39,304 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:10:39,304 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [685372514] [2022-04-28 04:10:39,304 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [685372514] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:10:39,305 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:10:39,305 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-04-28 04:10:39,306 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:10:39,306 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [708731100] [2022-04-28 04:10:39,307 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [708731100] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:10:39,307 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:10:39,307 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-04-28 04:10:39,307 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1423129606] [2022-04-28 04:10:39,307 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:10:39,311 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 7.5) internal successors, (30), 2 states have internal predecessors, (30), 2 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) Word has length 54 [2022-04-28 04:10:39,312 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:10:39,314 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 7.5) internal successors, (30), 2 states have internal predecessors, (30), 2 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:10:39,380 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 49 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:10:39,381 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-04-28 04:10:39,381 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:10:39,402 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-04-28 04:10:39,403 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-04-28 04:10:39,406 INFO L87 Difference]: Start difference. First operand has 64 states, 42 states have (on average 1.4047619047619047) internal successors, (59), 43 states have internal predecessors, (59), 11 states have call successors, (11), 9 states have call predecessors, (11), 9 states have return successors, (11), 11 states have call predecessors, (11), 11 states have call successors, (11) Second operand has 4 states, 4 states have (on average 7.5) internal successors, (30), 2 states have internal predecessors, (30), 2 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:10:41,935 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:10:41,936 INFO L93 Difference]: Finished difference Result 127 states and 171 transitions. [2022-04-28 04:10:41,936 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-04-28 04:10:41,936 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 7.5) internal successors, (30), 2 states have internal predecessors, (30), 2 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) Word has length 54 [2022-04-28 04:10:41,936 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:10:41,937 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 7.5) internal successors, (30), 2 states have internal predecessors, (30), 2 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:10:41,946 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 171 transitions. [2022-04-28 04:10:41,946 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 7.5) internal successors, (30), 2 states have internal predecessors, (30), 2 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:10:41,953 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 171 transitions. [2022-04-28 04:10:41,953 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 5 states and 171 transitions. [2022-04-28 04:10:42,107 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 171 edges. 171 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:10:42,115 INFO L225 Difference]: With dead ends: 127 [2022-04-28 04:10:42,115 INFO L226 Difference]: Without dead ends: 63 [2022-04-28 04:10:42,133 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 22 GetRequests, 19 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=9, Invalid=11, Unknown=0, NotChecked=0, Total=20 [2022-04-28 04:10:42,135 INFO L413 NwaCegarLoop]: 57 mSDtfsCounter, 81 mSDsluCounter, 2 mSDsCounter, 0 mSdLazyCounter, 50 mSolverCounterSat, 34 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 86 SdHoareTripleChecker+Valid, 59 SdHoareTripleChecker+Invalid, 84 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 34 IncrementalHoareTripleChecker+Valid, 50 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-28 04:10:42,135 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [86 Valid, 59 Invalid, 84 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [34 Valid, 50 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-28 04:10:42,146 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 63 states. [2022-04-28 04:10:42,159 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 63 to 57. [2022-04-28 04:10:42,159 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:10:42,160 INFO L82 GeneralOperation]: Start isEquivalent. First operand 63 states. Second operand has 57 states, 38 states have (on average 1.1842105263157894) internal successors, (45), 38 states have internal predecessors, (45), 11 states have call successors, (11), 9 states have call predecessors, (11), 7 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-28 04:10:42,161 INFO L74 IsIncluded]: Start isIncluded. First operand 63 states. Second operand has 57 states, 38 states have (on average 1.1842105263157894) internal successors, (45), 38 states have internal predecessors, (45), 11 states have call successors, (11), 9 states have call predecessors, (11), 7 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-28 04:10:42,161 INFO L87 Difference]: Start difference. First operand 63 states. Second operand has 57 states, 38 states have (on average 1.1842105263157894) internal successors, (45), 38 states have internal predecessors, (45), 11 states have call successors, (11), 9 states have call predecessors, (11), 7 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-28 04:10:42,165 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:10:42,165 INFO L93 Difference]: Finished difference Result 63 states and 73 transitions. [2022-04-28 04:10:42,165 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 73 transitions. [2022-04-28 04:10:42,166 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:10:42,166 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:10:42,166 INFO L74 IsIncluded]: Start isIncluded. First operand has 57 states, 38 states have (on average 1.1842105263157894) internal successors, (45), 38 states have internal predecessors, (45), 11 states have call successors, (11), 9 states have call predecessors, (11), 7 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) Second operand 63 states. [2022-04-28 04:10:42,167 INFO L87 Difference]: Start difference. First operand has 57 states, 38 states have (on average 1.1842105263157894) internal successors, (45), 38 states have internal predecessors, (45), 11 states have call successors, (11), 9 states have call predecessors, (11), 7 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) Second operand 63 states. [2022-04-28 04:10:42,170 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:10:42,170 INFO L93 Difference]: Finished difference Result 63 states and 73 transitions. [2022-04-28 04:10:42,170 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 73 transitions. [2022-04-28 04:10:42,171 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:10:42,171 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:10:42,171 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:10:42,171 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:10:42,171 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 57 states, 38 states have (on average 1.1842105263157894) internal successors, (45), 38 states have internal predecessors, (45), 11 states have call successors, (11), 9 states have call predecessors, (11), 7 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-28 04:10:42,186 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 57 states to 57 states and 65 transitions. [2022-04-28 04:10:42,187 INFO L78 Accepts]: Start accepts. Automaton has 57 states and 65 transitions. Word has length 54 [2022-04-28 04:10:42,187 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:10:42,187 INFO L495 AbstractCegarLoop]: Abstraction has 57 states and 65 transitions. [2022-04-28 04:10:42,188 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 7.5) internal successors, (30), 2 states have internal predecessors, (30), 2 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:10:42,188 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 57 states and 65 transitions. [2022-04-28 04:10:42,258 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:10:42,258 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 65 transitions. [2022-04-28 04:10:42,259 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 55 [2022-04-28 04:10:42,259 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:10:42,259 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-28 04:10:42,260 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-04-28 04:10:42,260 INFO L420 AbstractCegarLoop]: === Iteration 2 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:10:42,260 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:10:42,260 INFO L85 PathProgramCache]: Analyzing trace with hash -73515768, now seen corresponding path program 1 times [2022-04-28 04:10:42,260 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:10:42,260 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [164993281] [2022-04-28 04:10:42,261 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:10:42,261 INFO L85 PathProgramCache]: Analyzing trace with hash -73515768, now seen corresponding path program 2 times [2022-04-28 04:10:42,261 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:10:42,261 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [923840575] [2022-04-28 04:10:42,261 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:10:42,261 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:10:42,321 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:42,387 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:10:42,389 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:42,392 INFO L290 TraceCheckUtils]: 0: Hoare triple {638#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {601#true} is VALID [2022-04-28 04:10:42,392 INFO L290 TraceCheckUtils]: 1: Hoare triple {601#true} assume true; {601#true} is VALID [2022-04-28 04:10:42,392 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {601#true} {601#true} #160#return; {601#true} is VALID [2022-04-28 04:10:42,392 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:10:42,393 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:42,404 INFO L290 TraceCheckUtils]: 0: Hoare triple {601#true} ~cond := #in~cond; {601#true} is VALID [2022-04-28 04:10:42,404 INFO L290 TraceCheckUtils]: 1: Hoare triple {601#true} assume !(0 == ~cond); {601#true} is VALID [2022-04-28 04:10:42,404 INFO L290 TraceCheckUtils]: 2: Hoare triple {601#true} assume true; {601#true} is VALID [2022-04-28 04:10:42,404 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {601#true} {601#true} #142#return; {601#true} is VALID [2022-04-28 04:10:42,404 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:10:42,406 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:42,409 INFO L290 TraceCheckUtils]: 0: Hoare triple {601#true} ~x := #in~x; {601#true} is VALID [2022-04-28 04:10:42,409 INFO L290 TraceCheckUtils]: 1: Hoare triple {601#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {601#true} is VALID [2022-04-28 04:10:42,410 INFO L290 TraceCheckUtils]: 2: Hoare triple {601#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {601#true} is VALID [2022-04-28 04:10:42,410 INFO L290 TraceCheckUtils]: 3: Hoare triple {601#true} assume true; {601#true} is VALID [2022-04-28 04:10:42,410 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {601#true} {601#true} #144#return; {601#true} is VALID [2022-04-28 04:10:42,410 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:10:42,411 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:42,416 INFO L290 TraceCheckUtils]: 0: Hoare triple {601#true} ~cond := #in~cond; {601#true} is VALID [2022-04-28 04:10:42,416 INFO L290 TraceCheckUtils]: 1: Hoare triple {601#true} assume !(0 == ~cond); {601#true} is VALID [2022-04-28 04:10:42,416 INFO L290 TraceCheckUtils]: 2: Hoare triple {601#true} assume true; {601#true} is VALID [2022-04-28 04:10:42,416 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {601#true} {601#true} #146#return; {601#true} is VALID [2022-04-28 04:10:42,425 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:10:42,426 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:42,429 INFO L290 TraceCheckUtils]: 0: Hoare triple {639#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {601#true} is VALID [2022-04-28 04:10:42,429 INFO L290 TraceCheckUtils]: 1: Hoare triple {601#true} assume true; {601#true} is VALID [2022-04-28 04:10:42,429 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {601#true} {601#true} #148#return; {601#true} is VALID [2022-04-28 04:10:42,430 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:10:42,430 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:42,433 INFO L290 TraceCheckUtils]: 0: Hoare triple {639#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {601#true} is VALID [2022-04-28 04:10:42,433 INFO L290 TraceCheckUtils]: 1: Hoare triple {601#true} assume true; {601#true} is VALID [2022-04-28 04:10:42,433 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {601#true} {601#true} #150#return; {601#true} is VALID [2022-04-28 04:10:42,433 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 35 [2022-04-28 04:10:42,439 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:42,446 INFO L290 TraceCheckUtils]: 0: Hoare triple {639#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {601#true} is VALID [2022-04-28 04:10:42,446 INFO L290 TraceCheckUtils]: 1: Hoare triple {601#true} assume !(~space~0 < ~n); {601#true} is VALID [2022-04-28 04:10:42,446 INFO L290 TraceCheckUtils]: 2: Hoare triple {601#true} #res := ~space~0; {601#true} is VALID [2022-04-28 04:10:42,446 INFO L290 TraceCheckUtils]: 3: Hoare triple {601#true} assume true; {601#true} is VALID [2022-04-28 04:10:42,447 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {601#true} {626#(<= main_~n~0 0)} #152#return; {626#(<= main_~n~0 0)} is VALID [2022-04-28 04:10:42,448 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 42 [2022-04-28 04:10:42,452 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:42,459 INFO L290 TraceCheckUtils]: 0: Hoare triple {639#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {601#true} is VALID [2022-04-28 04:10:42,459 INFO L290 TraceCheckUtils]: 1: Hoare triple {601#true} assume !(~space > 0); {601#true} is VALID [2022-04-28 04:10:42,460 INFO L290 TraceCheckUtils]: 2: Hoare triple {601#true} assume true; {601#true} is VALID [2022-04-28 04:10:42,461 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {601#true} {626#(<= main_~n~0 0)} #154#return; {626#(<= main_~n~0 0)} is VALID [2022-04-28 04:10:42,461 INFO L272 TraceCheckUtils]: 0: Hoare triple {601#true} call ULTIMATE.init(); {638#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:10:42,462 INFO L290 TraceCheckUtils]: 1: Hoare triple {638#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {601#true} is VALID [2022-04-28 04:10:42,462 INFO L290 TraceCheckUtils]: 2: Hoare triple {601#true} assume true; {601#true} is VALID [2022-04-28 04:10:42,462 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {601#true} {601#true} #160#return; {601#true} is VALID [2022-04-28 04:10:42,462 INFO L272 TraceCheckUtils]: 4: Hoare triple {601#true} call #t~ret20 := main(); {601#true} is VALID [2022-04-28 04:10:42,462 INFO L290 TraceCheckUtils]: 5: Hoare triple {601#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {601#true} is VALID [2022-04-28 04:10:42,462 INFO L272 TraceCheckUtils]: 6: Hoare triple {601#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {601#true} is VALID [2022-04-28 04:10:42,462 INFO L290 TraceCheckUtils]: 7: Hoare triple {601#true} ~cond := #in~cond; {601#true} is VALID [2022-04-28 04:10:42,462 INFO L290 TraceCheckUtils]: 8: Hoare triple {601#true} assume !(0 == ~cond); {601#true} is VALID [2022-04-28 04:10:42,463 INFO L290 TraceCheckUtils]: 9: Hoare triple {601#true} assume true; {601#true} is VALID [2022-04-28 04:10:42,463 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {601#true} {601#true} #142#return; {601#true} is VALID [2022-04-28 04:10:42,463 INFO L272 TraceCheckUtils]: 11: Hoare triple {601#true} call #t~ret14 := is_pow2(~n~0); {601#true} is VALID [2022-04-28 04:10:42,463 INFO L290 TraceCheckUtils]: 12: Hoare triple {601#true} ~x := #in~x; {601#true} is VALID [2022-04-28 04:10:42,463 INFO L290 TraceCheckUtils]: 13: Hoare triple {601#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {601#true} is VALID [2022-04-28 04:10:42,463 INFO L290 TraceCheckUtils]: 14: Hoare triple {601#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {601#true} is VALID [2022-04-28 04:10:42,463 INFO L290 TraceCheckUtils]: 15: Hoare triple {601#true} assume true; {601#true} is VALID [2022-04-28 04:10:42,464 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {601#true} {601#true} #144#return; {601#true} is VALID [2022-04-28 04:10:42,464 INFO L290 TraceCheckUtils]: 17: Hoare triple {601#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {601#true} is VALID [2022-04-28 04:10:42,464 INFO L272 TraceCheckUtils]: 18: Hoare triple {601#true} call assume_abort_if_not(#t~ret14); {601#true} is VALID [2022-04-28 04:10:42,464 INFO L290 TraceCheckUtils]: 19: Hoare triple {601#true} ~cond := #in~cond; {601#true} is VALID [2022-04-28 04:10:42,464 INFO L290 TraceCheckUtils]: 20: Hoare triple {601#true} assume !(0 == ~cond); {601#true} is VALID [2022-04-28 04:10:42,464 INFO L290 TraceCheckUtils]: 21: Hoare triple {601#true} assume true; {601#true} is VALID [2022-04-28 04:10:42,464 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {601#true} {601#true} #146#return; {601#true} is VALID [2022-04-28 04:10:42,464 INFO L290 TraceCheckUtils]: 23: Hoare triple {601#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {601#true} is VALID [2022-04-28 04:10:42,468 INFO L272 TraceCheckUtils]: 24: Hoare triple {601#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {639#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:42,468 INFO L290 TraceCheckUtils]: 25: Hoare triple {639#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {601#true} is VALID [2022-04-28 04:10:42,468 INFO L290 TraceCheckUtils]: 26: Hoare triple {601#true} assume true; {601#true} is VALID [2022-04-28 04:10:42,469 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {601#true} {601#true} #148#return; {601#true} is VALID [2022-04-28 04:10:42,469 INFO L290 TraceCheckUtils]: 28: Hoare triple {601#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {601#true} is VALID [2022-04-28 04:10:42,469 INFO L272 TraceCheckUtils]: 29: Hoare triple {601#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {639#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:42,470 INFO L290 TraceCheckUtils]: 30: Hoare triple {639#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {601#true} is VALID [2022-04-28 04:10:42,470 INFO L290 TraceCheckUtils]: 31: Hoare triple {601#true} assume true; {601#true} is VALID [2022-04-28 04:10:42,470 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {601#true} {601#true} #150#return; {601#true} is VALID [2022-04-28 04:10:42,470 INFO L290 TraceCheckUtils]: 33: Hoare triple {601#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {625#(= main_~i~1 0)} is VALID [2022-04-28 04:10:42,471 INFO L290 TraceCheckUtils]: 34: Hoare triple {625#(= main_~i~1 0)} assume !(~i~1 < ~n~0); {626#(<= main_~n~0 0)} is VALID [2022-04-28 04:10:42,471 INFO L272 TraceCheckUtils]: 35: Hoare triple {626#(<= main_~n~0 0)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {639#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:42,471 INFO L290 TraceCheckUtils]: 36: Hoare triple {639#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {601#true} is VALID [2022-04-28 04:10:42,472 INFO L290 TraceCheckUtils]: 37: Hoare triple {601#true} assume !(~space~0 < ~n); {601#true} is VALID [2022-04-28 04:10:42,472 INFO L290 TraceCheckUtils]: 38: Hoare triple {601#true} #res := ~space~0; {601#true} is VALID [2022-04-28 04:10:42,472 INFO L290 TraceCheckUtils]: 39: Hoare triple {601#true} assume true; {601#true} is VALID [2022-04-28 04:10:42,473 INFO L284 TraceCheckUtils]: 40: Hoare quadruple {601#true} {626#(<= main_~n~0 0)} #152#return; {626#(<= main_~n~0 0)} is VALID [2022-04-28 04:10:42,473 INFO L290 TraceCheckUtils]: 41: Hoare triple {626#(<= main_~n~0 0)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {626#(<= main_~n~0 0)} is VALID [2022-04-28 04:10:42,474 INFO L272 TraceCheckUtils]: 42: Hoare triple {626#(<= main_~n~0 0)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {639#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:42,474 INFO L290 TraceCheckUtils]: 43: Hoare triple {639#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {601#true} is VALID [2022-04-28 04:10:42,474 INFO L290 TraceCheckUtils]: 44: Hoare triple {601#true} assume !(~space > 0); {601#true} is VALID [2022-04-28 04:10:42,474 INFO L290 TraceCheckUtils]: 45: Hoare triple {601#true} assume true; {601#true} is VALID [2022-04-28 04:10:42,475 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {601#true} {626#(<= main_~n~0 0)} #154#return; {626#(<= main_~n~0 0)} is VALID [2022-04-28 04:10:42,476 INFO L272 TraceCheckUtils]: 47: Hoare triple {626#(<= main_~n~0 0)} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {636#(<= |check_#in~n| 0)} is VALID [2022-04-28 04:10:42,476 INFO L290 TraceCheckUtils]: 48: Hoare triple {636#(<= |check_#in~n| 0)} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {637#(and (<= check_~n 0) (= check_~i~0 0))} is VALID [2022-04-28 04:10:42,477 INFO L290 TraceCheckUtils]: 49: Hoare triple {637#(and (<= check_~n 0) (= check_~i~0 0))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {602#false} is VALID [2022-04-28 04:10:42,483 INFO L272 TraceCheckUtils]: 50: Hoare triple {602#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {602#false} is VALID [2022-04-28 04:10:42,484 INFO L290 TraceCheckUtils]: 51: Hoare triple {602#false} ~cond := #in~cond; {602#false} is VALID [2022-04-28 04:10:42,484 INFO L290 TraceCheckUtils]: 52: Hoare triple {602#false} assume 0 == ~cond; {602#false} is VALID [2022-04-28 04:10:42,484 INFO L290 TraceCheckUtils]: 53: Hoare triple {602#false} assume !false; {602#false} is VALID [2022-04-28 04:10:42,485 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2022-04-28 04:10:42,485 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:10:42,485 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [923840575] [2022-04-28 04:10:42,485 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [923840575] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:10:42,486 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:10:42,486 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [] total 8 [2022-04-28 04:10:42,486 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:10:42,487 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [164993281] [2022-04-28 04:10:42,487 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [164993281] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:10:42,487 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:10:42,487 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [] total 8 [2022-04-28 04:10:42,487 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1255209229] [2022-04-28 04:10:42,487 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:10:42,489 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 3.75) internal successors, (30), 5 states have internal predecessors, (30), 3 states have call successors, (11), 5 states have call predecessors, (11), 1 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) Word has length 54 [2022-04-28 04:10:42,489 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:10:42,490 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 8 states, 8 states have (on average 3.75) internal successors, (30), 5 states have internal predecessors, (30), 3 states have call successors, (11), 5 states have call predecessors, (11), 1 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:10:42,528 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 49 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:10:42,528 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 8 states [2022-04-28 04:10:42,529 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:10:42,529 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2022-04-28 04:10:42,530 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=13, Invalid=43, Unknown=0, NotChecked=0, Total=56 [2022-04-28 04:10:42,530 INFO L87 Difference]: Start difference. First operand 57 states and 65 transitions. Second operand has 8 states, 8 states have (on average 3.75) internal successors, (30), 5 states have internal predecessors, (30), 3 states have call successors, (11), 5 states have call predecessors, (11), 1 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:10:46,830 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:10:51,123 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:10:52,013 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:10:52,014 INFO L93 Difference]: Finished difference Result 81 states and 95 transitions. [2022-04-28 04:10:52,014 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-04-28 04:10:52,014 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 3.75) internal successors, (30), 5 states have internal predecessors, (30), 3 states have call successors, (11), 5 states have call predecessors, (11), 1 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) Word has length 54 [2022-04-28 04:10:52,014 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:10:52,015 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 3.75) internal successors, (30), 5 states have internal predecessors, (30), 3 states have call successors, (11), 5 states have call predecessors, (11), 1 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:10:52,017 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 95 transitions. [2022-04-28 04:10:52,017 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 3.75) internal successors, (30), 5 states have internal predecessors, (30), 3 states have call successors, (11), 5 states have call predecessors, (11), 1 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:10:52,020 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 95 transitions. [2022-04-28 04:10:52,020 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 9 states and 95 transitions. [2022-04-28 04:10:52,106 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 95 edges. 95 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:10:52,108 INFO L225 Difference]: With dead ends: 81 [2022-04-28 04:10:52,108 INFO L226 Difference]: Without dead ends: 65 [2022-04-28 04:10:52,108 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 28 GetRequests, 17 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 6 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=41, Invalid=115, Unknown=0, NotChecked=0, Total=156 [2022-04-28 04:10:52,109 INFO L413 NwaCegarLoop]: 47 mSDtfsCounter, 84 mSDsluCounter, 8 mSDsCounter, 0 mSdLazyCounter, 305 mSolverCounterSat, 43 mSolverCounterUnsat, 2 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 4.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 88 SdHoareTripleChecker+Valid, 55 SdHoareTripleChecker+Invalid, 350 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 43 IncrementalHoareTripleChecker+Valid, 305 IncrementalHoareTripleChecker+Invalid, 2 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 4.5s IncrementalHoareTripleChecker+Time [2022-04-28 04:10:52,110 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [88 Valid, 55 Invalid, 350 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [43 Valid, 305 Invalid, 2 Unknown, 0 Unchecked, 4.5s Time] [2022-04-28 04:10:52,111 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 65 states. [2022-04-28 04:10:52,116 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 65 to 58. [2022-04-28 04:10:52,116 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:10:52,116 INFO L82 GeneralOperation]: Start isEquivalent. First operand 65 states. Second operand has 58 states, 39 states have (on average 1.1794871794871795) internal successors, (46), 39 states have internal predecessors, (46), 11 states have call successors, (11), 9 states have call predecessors, (11), 7 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-28 04:10:52,117 INFO L74 IsIncluded]: Start isIncluded. First operand 65 states. Second operand has 58 states, 39 states have (on average 1.1794871794871795) internal successors, (46), 39 states have internal predecessors, (46), 11 states have call successors, (11), 9 states have call predecessors, (11), 7 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-28 04:10:52,117 INFO L87 Difference]: Start difference. First operand 65 states. Second operand has 58 states, 39 states have (on average 1.1794871794871795) internal successors, (46), 39 states have internal predecessors, (46), 11 states have call successors, (11), 9 states have call predecessors, (11), 7 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-28 04:10:52,119 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:10:52,119 INFO L93 Difference]: Finished difference Result 65 states and 75 transitions. [2022-04-28 04:10:52,119 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 75 transitions. [2022-04-28 04:10:52,120 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:10:52,120 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:10:52,120 INFO L74 IsIncluded]: Start isIncluded. First operand has 58 states, 39 states have (on average 1.1794871794871795) internal successors, (46), 39 states have internal predecessors, (46), 11 states have call successors, (11), 9 states have call predecessors, (11), 7 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) Second operand 65 states. [2022-04-28 04:10:52,120 INFO L87 Difference]: Start difference. First operand has 58 states, 39 states have (on average 1.1794871794871795) internal successors, (46), 39 states have internal predecessors, (46), 11 states have call successors, (11), 9 states have call predecessors, (11), 7 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) Second operand 65 states. [2022-04-28 04:10:52,122 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:10:52,123 INFO L93 Difference]: Finished difference Result 65 states and 75 transitions. [2022-04-28 04:10:52,123 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 75 transitions. [2022-04-28 04:10:52,123 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:10:52,123 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:10:52,123 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:10:52,123 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:10:52,123 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 58 states, 39 states have (on average 1.1794871794871795) internal successors, (46), 39 states have internal predecessors, (46), 11 states have call successors, (11), 9 states have call predecessors, (11), 7 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-28 04:10:52,125 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 58 states to 58 states and 66 transitions. [2022-04-28 04:10:52,125 INFO L78 Accepts]: Start accepts. Automaton has 58 states and 66 transitions. Word has length 54 [2022-04-28 04:10:52,125 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:10:52,125 INFO L495 AbstractCegarLoop]: Abstraction has 58 states and 66 transitions. [2022-04-28 04:10:52,126 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 8 states, 8 states have (on average 3.75) internal successors, (30), 5 states have internal predecessors, (30), 3 states have call successors, (11), 5 states have call predecessors, (11), 1 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:10:52,126 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 58 states and 66 transitions. [2022-04-28 04:10:52,184 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:10:52,184 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 66 transitions. [2022-04-28 04:10:52,185 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 57 [2022-04-28 04:10:52,185 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:10:52,185 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-28 04:10:52,185 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1 [2022-04-28 04:10:52,186 INFO L420 AbstractCegarLoop]: === Iteration 3 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:10:52,186 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:10:52,186 INFO L85 PathProgramCache]: Analyzing trace with hash -628313814, now seen corresponding path program 1 times [2022-04-28 04:10:52,186 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:10:52,186 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [785288986] [2022-04-28 04:10:52,186 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:10:52,187 INFO L85 PathProgramCache]: Analyzing trace with hash -628313814, now seen corresponding path program 2 times [2022-04-28 04:10:52,187 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:10:52,187 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1815282934] [2022-04-28 04:10:52,187 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:10:52,187 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:10:52,227 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:52,421 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:10:52,423 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:52,437 INFO L290 TraceCheckUtils]: 0: Hoare triple {1103#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {1061#true} is VALID [2022-04-28 04:10:52,443 INFO L290 TraceCheckUtils]: 1: Hoare triple {1061#true} assume true; {1061#true} is VALID [2022-04-28 04:10:52,443 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1061#true} {1061#true} #160#return; {1061#true} is VALID [2022-04-28 04:10:52,443 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:10:52,444 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:52,447 INFO L290 TraceCheckUtils]: 0: Hoare triple {1061#true} ~cond := #in~cond; {1061#true} is VALID [2022-04-28 04:10:52,448 INFO L290 TraceCheckUtils]: 1: Hoare triple {1061#true} assume !(0 == ~cond); {1061#true} is VALID [2022-04-28 04:10:52,448 INFO L290 TraceCheckUtils]: 2: Hoare triple {1061#true} assume true; {1061#true} is VALID [2022-04-28 04:10:52,448 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1061#true} {1061#true} #142#return; {1061#true} is VALID [2022-04-28 04:10:52,448 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:10:52,449 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:52,458 INFO L290 TraceCheckUtils]: 0: Hoare triple {1061#true} ~x := #in~x; {1061#true} is VALID [2022-04-28 04:10:52,458 INFO L290 TraceCheckUtils]: 1: Hoare triple {1061#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {1061#true} is VALID [2022-04-28 04:10:52,458 INFO L290 TraceCheckUtils]: 2: Hoare triple {1061#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {1061#true} is VALID [2022-04-28 04:10:52,458 INFO L290 TraceCheckUtils]: 3: Hoare triple {1061#true} assume true; {1061#true} is VALID [2022-04-28 04:10:52,458 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {1061#true} {1061#true} #144#return; {1061#true} is VALID [2022-04-28 04:10:52,458 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:10:52,459 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:52,461 INFO L290 TraceCheckUtils]: 0: Hoare triple {1061#true} ~cond := #in~cond; {1061#true} is VALID [2022-04-28 04:10:52,461 INFO L290 TraceCheckUtils]: 1: Hoare triple {1061#true} assume !(0 == ~cond); {1061#true} is VALID [2022-04-28 04:10:52,462 INFO L290 TraceCheckUtils]: 2: Hoare triple {1061#true} assume true; {1061#true} is VALID [2022-04-28 04:10:52,462 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1061#true} {1061#true} #146#return; {1061#true} is VALID [2022-04-28 04:10:52,477 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:10:52,479 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:52,497 INFO L290 TraceCheckUtils]: 0: Hoare triple {1104#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1105#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-28 04:10:52,498 INFO L290 TraceCheckUtils]: 1: Hoare triple {1105#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} assume true; {1105#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-28 04:10:52,499 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1105#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} {1079#(= (select |#valid| |main_#t~malloc15.base|) 1)} #148#return; {1083#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc15.base|)))} is VALID [2022-04-28 04:10:52,499 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:10:52,502 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:52,539 INFO L290 TraceCheckUtils]: 0: Hoare triple {1104#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1106#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-04-28 04:10:52,540 INFO L290 TraceCheckUtils]: 1: Hoare triple {1106#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} assume true; {1106#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-04-28 04:10:52,541 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1106#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} {1084#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} #150#return; {1084#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} is VALID [2022-04-28 04:10:52,541 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 37 [2022-04-28 04:10:52,546 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:52,553 INFO L290 TraceCheckUtils]: 0: Hoare triple {1104#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {1104#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:52,554 INFO L290 TraceCheckUtils]: 1: Hoare triple {1104#(= |#memory_int| |old(#memory_int)|)} assume !(~space~0 < ~n); {1104#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:52,554 INFO L290 TraceCheckUtils]: 2: Hoare triple {1104#(= |#memory_int| |old(#memory_int)|)} #res := ~space~0; {1104#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:52,554 INFO L290 TraceCheckUtils]: 3: Hoare triple {1104#(= |#memory_int| |old(#memory_int)|)} assume true; {1104#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:52,555 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {1104#(= |#memory_int| |old(#memory_int)|)} {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} #152#return; {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} is VALID [2022-04-28 04:10:52,555 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 44 [2022-04-28 04:10:52,579 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:52,608 INFO L290 TraceCheckUtils]: 0: Hoare triple {1104#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {1107#(or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))))} is VALID [2022-04-28 04:10:52,609 INFO L290 TraceCheckUtils]: 1: Hoare triple {1107#(or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))))} assume !(~space > 0); {1107#(or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))))} is VALID [2022-04-28 04:10:52,609 INFO L290 TraceCheckUtils]: 2: Hoare triple {1107#(or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))))} assume true; {1107#(or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))))} is VALID [2022-04-28 04:10:52,610 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1107#(or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))))} {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} #154#return; {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} is VALID [2022-04-28 04:10:52,611 INFO L272 TraceCheckUtils]: 0: Hoare triple {1061#true} call ULTIMATE.init(); {1103#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:10:52,611 INFO L290 TraceCheckUtils]: 1: Hoare triple {1103#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {1061#true} is VALID [2022-04-28 04:10:52,611 INFO L290 TraceCheckUtils]: 2: Hoare triple {1061#true} assume true; {1061#true} is VALID [2022-04-28 04:10:52,611 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1061#true} {1061#true} #160#return; {1061#true} is VALID [2022-04-28 04:10:52,611 INFO L272 TraceCheckUtils]: 4: Hoare triple {1061#true} call #t~ret20 := main(); {1061#true} is VALID [2022-04-28 04:10:52,611 INFO L290 TraceCheckUtils]: 5: Hoare triple {1061#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {1061#true} is VALID [2022-04-28 04:10:52,611 INFO L272 TraceCheckUtils]: 6: Hoare triple {1061#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {1061#true} is VALID [2022-04-28 04:10:52,612 INFO L290 TraceCheckUtils]: 7: Hoare triple {1061#true} ~cond := #in~cond; {1061#true} is VALID [2022-04-28 04:10:52,612 INFO L290 TraceCheckUtils]: 8: Hoare triple {1061#true} assume !(0 == ~cond); {1061#true} is VALID [2022-04-28 04:10:52,612 INFO L290 TraceCheckUtils]: 9: Hoare triple {1061#true} assume true; {1061#true} is VALID [2022-04-28 04:10:52,612 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1061#true} {1061#true} #142#return; {1061#true} is VALID [2022-04-28 04:10:52,612 INFO L272 TraceCheckUtils]: 11: Hoare triple {1061#true} call #t~ret14 := is_pow2(~n~0); {1061#true} is VALID [2022-04-28 04:10:52,612 INFO L290 TraceCheckUtils]: 12: Hoare triple {1061#true} ~x := #in~x; {1061#true} is VALID [2022-04-28 04:10:52,612 INFO L290 TraceCheckUtils]: 13: Hoare triple {1061#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {1061#true} is VALID [2022-04-28 04:10:52,612 INFO L290 TraceCheckUtils]: 14: Hoare triple {1061#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {1061#true} is VALID [2022-04-28 04:10:52,612 INFO L290 TraceCheckUtils]: 15: Hoare triple {1061#true} assume true; {1061#true} is VALID [2022-04-28 04:10:52,613 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1061#true} {1061#true} #144#return; {1061#true} is VALID [2022-04-28 04:10:52,613 INFO L290 TraceCheckUtils]: 17: Hoare triple {1061#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {1061#true} is VALID [2022-04-28 04:10:52,613 INFO L272 TraceCheckUtils]: 18: Hoare triple {1061#true} call assume_abort_if_not(#t~ret14); {1061#true} is VALID [2022-04-28 04:10:52,613 INFO L290 TraceCheckUtils]: 19: Hoare triple {1061#true} ~cond := #in~cond; {1061#true} is VALID [2022-04-28 04:10:52,613 INFO L290 TraceCheckUtils]: 20: Hoare triple {1061#true} assume !(0 == ~cond); {1061#true} is VALID [2022-04-28 04:10:52,613 INFO L290 TraceCheckUtils]: 21: Hoare triple {1061#true} assume true; {1061#true} is VALID [2022-04-28 04:10:52,613 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {1061#true} {1061#true} #146#return; {1061#true} is VALID [2022-04-28 04:10:52,614 INFO L290 TraceCheckUtils]: 23: Hoare triple {1061#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {1079#(= (select |#valid| |main_#t~malloc15.base|) 1)} is VALID [2022-04-28 04:10:52,615 INFO L272 TraceCheckUtils]: 24: Hoare triple {1079#(= (select |#valid| |main_#t~malloc15.base|) 1)} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {1104#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:52,615 INFO L290 TraceCheckUtils]: 25: Hoare triple {1104#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1105#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-28 04:10:52,616 INFO L290 TraceCheckUtils]: 26: Hoare triple {1105#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} assume true; {1105#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-28 04:10:52,616 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1105#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} {1079#(= (select |#valid| |main_#t~malloc15.base|) 1)} #148#return; {1083#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc15.base|)))} is VALID [2022-04-28 04:10:52,617 INFO L290 TraceCheckUtils]: 28: Hoare triple {1083#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc15.base|)))} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {1084#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} is VALID [2022-04-28 04:10:52,618 INFO L272 TraceCheckUtils]: 29: Hoare triple {1084#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {1104#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:52,618 INFO L290 TraceCheckUtils]: 30: Hoare triple {1104#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1106#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-04-28 04:10:52,619 INFO L290 TraceCheckUtils]: 31: Hoare triple {1106#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} assume true; {1106#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-04-28 04:10:52,620 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {1106#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} {1084#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} #150#return; {1084#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} is VALID [2022-04-28 04:10:52,620 INFO L290 TraceCheckUtils]: 33: Hoare triple {1084#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} is VALID [2022-04-28 04:10:52,627 INFO L290 TraceCheckUtils]: 34: Hoare triple {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} is VALID [2022-04-28 04:10:52,630 INFO L290 TraceCheckUtils]: 35: Hoare triple {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} is VALID [2022-04-28 04:10:52,631 INFO L290 TraceCheckUtils]: 36: Hoare triple {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} assume !(~i~1 < ~n~0); {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} is VALID [2022-04-28 04:10:52,637 INFO L272 TraceCheckUtils]: 37: Hoare triple {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {1104#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:52,638 INFO L290 TraceCheckUtils]: 38: Hoare triple {1104#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {1104#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:52,638 INFO L290 TraceCheckUtils]: 39: Hoare triple {1104#(= |#memory_int| |old(#memory_int)|)} assume !(~space~0 < ~n); {1104#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:52,639 INFO L290 TraceCheckUtils]: 40: Hoare triple {1104#(= |#memory_int| |old(#memory_int)|)} #res := ~space~0; {1104#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:52,639 INFO L290 TraceCheckUtils]: 41: Hoare triple {1104#(= |#memory_int| |old(#memory_int)|)} assume true; {1104#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:52,645 INFO L284 TraceCheckUtils]: 42: Hoare quadruple {1104#(= |#memory_int| |old(#memory_int)|)} {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} #152#return; {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} is VALID [2022-04-28 04:10:52,645 INFO L290 TraceCheckUtils]: 43: Hoare triple {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} is VALID [2022-04-28 04:10:52,646 INFO L272 TraceCheckUtils]: 44: Hoare triple {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {1104#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:10:52,647 INFO L290 TraceCheckUtils]: 45: Hoare triple {1104#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {1107#(or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))))} is VALID [2022-04-28 04:10:52,647 INFO L290 TraceCheckUtils]: 46: Hoare triple {1107#(or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))))} assume !(~space > 0); {1107#(or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))))} is VALID [2022-04-28 04:10:52,648 INFO L290 TraceCheckUtils]: 47: Hoare triple {1107#(or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))))} assume true; {1107#(or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))))} is VALID [2022-04-28 04:10:52,651 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {1107#(or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))))} {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} #154#return; {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} is VALID [2022-04-28 04:10:52,652 INFO L272 TraceCheckUtils]: 49: Hoare triple {1088#(and (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {1098#(= (select (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0))) 0)} is VALID [2022-04-28 04:10:52,653 INFO L290 TraceCheckUtils]: 50: Hoare triple {1098#(= (select (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0))) 0)} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {1099#(= (select (select |#memory_int| check_~a.base) (+ (* check_~i~0 4) check_~a.offset)) check_~sum~0)} is VALID [2022-04-28 04:10:52,653 INFO L290 TraceCheckUtils]: 51: Hoare triple {1099#(= (select (select |#memory_int| check_~a.base) (+ (* check_~i~0 4) check_~a.offset)) check_~sum~0)} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {1100#(= |check_#t~mem11| check_~sum~0)} is VALID [2022-04-28 04:10:52,654 INFO L272 TraceCheckUtils]: 52: Hoare triple {1100#(= |check_#t~mem11| check_~sum~0)} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {1101#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-28 04:10:52,654 INFO L290 TraceCheckUtils]: 53: Hoare triple {1101#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {1102#(not (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-28 04:10:52,655 INFO L290 TraceCheckUtils]: 54: Hoare triple {1102#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {1062#false} is VALID [2022-04-28 04:10:52,655 INFO L290 TraceCheckUtils]: 55: Hoare triple {1062#false} assume !false; {1062#false} is VALID [2022-04-28 04:10:52,655 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-04-28 04:10:52,655 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:10:52,655 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1815282934] [2022-04-28 04:10:52,656 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1815282934] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:10:52,656 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [105903068] [2022-04-28 04:10:52,656 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:10:52,656 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:10:52,656 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:10:52,664 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:10:52,691 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Waiting until timeout for monitored process [2022-04-28 04:10:52,747 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2022-04-28 04:10:52,747 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:10:52,749 INFO L263 TraceCheckSpWp]: Trace formula consists of 180 conjuncts, 39 conjunts are in the unsatisfiable core [2022-04-28 04:10:52,778 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:10:52,782 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:10:53,130 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 12 [2022-04-28 04:10:53,811 INFO L356 Elim1Store]: treesize reduction 14, result has 17.6 percent of original size [2022-04-28 04:10:53,812 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 24 treesize of output 10 [2022-04-28 04:10:53,949 INFO L272 TraceCheckUtils]: 0: Hoare triple {1061#true} call ULTIMATE.init(); {1061#true} is VALID [2022-04-28 04:10:53,949 INFO L290 TraceCheckUtils]: 1: Hoare triple {1061#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {1061#true} is VALID [2022-04-28 04:10:53,950 INFO L290 TraceCheckUtils]: 2: Hoare triple {1061#true} assume true; {1061#true} is VALID [2022-04-28 04:10:53,950 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1061#true} {1061#true} #160#return; {1061#true} is VALID [2022-04-28 04:10:53,950 INFO L272 TraceCheckUtils]: 4: Hoare triple {1061#true} call #t~ret20 := main(); {1061#true} is VALID [2022-04-28 04:10:53,950 INFO L290 TraceCheckUtils]: 5: Hoare triple {1061#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {1061#true} is VALID [2022-04-28 04:10:53,950 INFO L272 TraceCheckUtils]: 6: Hoare triple {1061#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {1061#true} is VALID [2022-04-28 04:10:53,950 INFO L290 TraceCheckUtils]: 7: Hoare triple {1061#true} ~cond := #in~cond; {1061#true} is VALID [2022-04-28 04:10:53,951 INFO L290 TraceCheckUtils]: 8: Hoare triple {1061#true} assume !(0 == ~cond); {1061#true} is VALID [2022-04-28 04:10:53,951 INFO L290 TraceCheckUtils]: 9: Hoare triple {1061#true} assume true; {1061#true} is VALID [2022-04-28 04:10:53,951 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1061#true} {1061#true} #142#return; {1061#true} is VALID [2022-04-28 04:10:53,951 INFO L272 TraceCheckUtils]: 11: Hoare triple {1061#true} call #t~ret14 := is_pow2(~n~0); {1061#true} is VALID [2022-04-28 04:10:53,951 INFO L290 TraceCheckUtils]: 12: Hoare triple {1061#true} ~x := #in~x; {1061#true} is VALID [2022-04-28 04:10:53,951 INFO L290 TraceCheckUtils]: 13: Hoare triple {1061#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {1061#true} is VALID [2022-04-28 04:10:53,951 INFO L290 TraceCheckUtils]: 14: Hoare triple {1061#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {1061#true} is VALID [2022-04-28 04:10:53,952 INFO L290 TraceCheckUtils]: 15: Hoare triple {1061#true} assume true; {1061#true} is VALID [2022-04-28 04:10:53,952 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1061#true} {1061#true} #144#return; {1061#true} is VALID [2022-04-28 04:10:53,952 INFO L290 TraceCheckUtils]: 17: Hoare triple {1061#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {1061#true} is VALID [2022-04-28 04:10:53,952 INFO L272 TraceCheckUtils]: 18: Hoare triple {1061#true} call assume_abort_if_not(#t~ret14); {1061#true} is VALID [2022-04-28 04:10:53,952 INFO L290 TraceCheckUtils]: 19: Hoare triple {1061#true} ~cond := #in~cond; {1061#true} is VALID [2022-04-28 04:10:53,952 INFO L290 TraceCheckUtils]: 20: Hoare triple {1061#true} assume !(0 == ~cond); {1061#true} is VALID [2022-04-28 04:10:53,952 INFO L290 TraceCheckUtils]: 21: Hoare triple {1061#true} assume true; {1061#true} is VALID [2022-04-28 04:10:53,952 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {1061#true} {1061#true} #146#return; {1061#true} is VALID [2022-04-28 04:10:53,953 INFO L290 TraceCheckUtils]: 23: Hoare triple {1061#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {1061#true} is VALID [2022-04-28 04:10:53,953 INFO L272 TraceCheckUtils]: 24: Hoare triple {1061#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {1061#true} is VALID [2022-04-28 04:10:53,953 INFO L290 TraceCheckUtils]: 25: Hoare triple {1061#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1061#true} is VALID [2022-04-28 04:10:53,953 INFO L290 TraceCheckUtils]: 26: Hoare triple {1061#true} assume true; {1061#true} is VALID [2022-04-28 04:10:53,953 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1061#true} {1061#true} #148#return; {1061#true} is VALID [2022-04-28 04:10:53,953 INFO L290 TraceCheckUtils]: 28: Hoare triple {1061#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {1061#true} is VALID [2022-04-28 04:10:53,953 INFO L272 TraceCheckUtils]: 29: Hoare triple {1061#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {1061#true} is VALID [2022-04-28 04:10:53,954 INFO L290 TraceCheckUtils]: 30: Hoare triple {1061#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1061#true} is VALID [2022-04-28 04:10:53,954 INFO L290 TraceCheckUtils]: 31: Hoare triple {1061#true} assume true; {1061#true} is VALID [2022-04-28 04:10:53,954 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {1061#true} {1061#true} #150#return; {1061#true} is VALID [2022-04-28 04:10:53,954 INFO L290 TraceCheckUtils]: 33: Hoare triple {1061#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {1061#true} is VALID [2022-04-28 04:10:53,954 INFO L290 TraceCheckUtils]: 34: Hoare triple {1061#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {1061#true} is VALID [2022-04-28 04:10:53,954 INFO L290 TraceCheckUtils]: 35: Hoare triple {1061#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {1061#true} is VALID [2022-04-28 04:10:53,954 INFO L290 TraceCheckUtils]: 36: Hoare triple {1061#true} assume !(~i~1 < ~n~0); {1061#true} is VALID [2022-04-28 04:10:53,955 INFO L272 TraceCheckUtils]: 37: Hoare triple {1061#true} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {1061#true} is VALID [2022-04-28 04:10:53,955 INFO L290 TraceCheckUtils]: 38: Hoare triple {1061#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {1225#(and (<= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:10:53,956 INFO L290 TraceCheckUtils]: 39: Hoare triple {1225#(and (<= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} assume !(~space~0 < ~n); {1229#(<= |upsweep_#in~n| 1)} is VALID [2022-04-28 04:10:53,956 INFO L290 TraceCheckUtils]: 40: Hoare triple {1229#(<= |upsweep_#in~n| 1)} #res := ~space~0; {1229#(<= |upsweep_#in~n| 1)} is VALID [2022-04-28 04:10:53,957 INFO L290 TraceCheckUtils]: 41: Hoare triple {1229#(<= |upsweep_#in~n| 1)} assume true; {1229#(<= |upsweep_#in~n| 1)} is VALID [2022-04-28 04:10:53,959 INFO L284 TraceCheckUtils]: 42: Hoare quadruple {1229#(<= |upsweep_#in~n| 1)} {1061#true} #152#return; {1239#(<= main_~n~0 1)} is VALID [2022-04-28 04:10:53,959 INFO L290 TraceCheckUtils]: 43: Hoare triple {1239#(<= main_~n~0 1)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {1239#(<= main_~n~0 1)} is VALID [2022-04-28 04:10:53,959 INFO L272 TraceCheckUtils]: 44: Hoare triple {1239#(<= main_~n~0 1)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {1061#true} is VALID [2022-04-28 04:10:53,960 INFO L290 TraceCheckUtils]: 45: Hoare triple {1061#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {1249#(= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|)) 0)} is VALID [2022-04-28 04:10:53,961 INFO L290 TraceCheckUtils]: 46: Hoare triple {1249#(= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|)) 0)} assume !(~space > 0); {1249#(= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|)) 0)} is VALID [2022-04-28 04:10:53,962 INFO L290 TraceCheckUtils]: 47: Hoare triple {1249#(= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|)) 0)} assume true; {1249#(= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|)) 0)} is VALID [2022-04-28 04:10:53,963 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {1249#(= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|)) 0)} {1239#(<= main_~n~0 1)} #154#return; {1259#(and (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset (* main_~n~0 4) (- 4))) 0) (<= main_~n~0 1))} is VALID [2022-04-28 04:10:53,966 INFO L272 TraceCheckUtils]: 49: Hoare triple {1259#(and (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset (* main_~n~0 4) (- 4))) 0) (<= main_~n~0 1))} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {1263#(exists ((v_main_~n~0_BEFORE_CALL_2 Int)) (and (= 0 (select (select |#memory_int| |check_#in~a.base|) (+ (- 4) |check_#in~a.offset| (* 4 v_main_~n~0_BEFORE_CALL_2)))) (<= |check_#in~n| v_main_~n~0_BEFORE_CALL_2) (<= v_main_~n~0_BEFORE_CALL_2 1)))} is VALID [2022-04-28 04:10:53,970 INFO L290 TraceCheckUtils]: 50: Hoare triple {1263#(exists ((v_main_~n~0_BEFORE_CALL_2 Int)) (and (= 0 (select (select |#memory_int| |check_#in~a.base|) (+ (- 4) |check_#in~a.offset| (* 4 v_main_~n~0_BEFORE_CALL_2)))) (<= |check_#in~n| v_main_~n~0_BEFORE_CALL_2) (<= v_main_~n~0_BEFORE_CALL_2 1)))} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {1267#(and (= check_~sum~0 0) (<= 0 check_~i~0) (exists ((v_main_~n~0_BEFORE_CALL_2 Int)) (and (<= check_~n v_main_~n~0_BEFORE_CALL_2) (<= v_main_~n~0_BEFORE_CALL_2 1) (= (select (select |#memory_int| check_~a.base) (+ (- 4) check_~a.offset (* 4 v_main_~n~0_BEFORE_CALL_2))) 0))))} is VALID [2022-04-28 04:10:53,972 INFO L290 TraceCheckUtils]: 51: Hoare triple {1267#(and (= check_~sum~0 0) (<= 0 check_~i~0) (exists ((v_main_~n~0_BEFORE_CALL_2 Int)) (and (<= check_~n v_main_~n~0_BEFORE_CALL_2) (<= v_main_~n~0_BEFORE_CALL_2 1) (= (select (select |#memory_int| check_~a.base) (+ (- 4) check_~a.offset (* 4 v_main_~n~0_BEFORE_CALL_2))) 0))))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {1271#(and (= |check_#t~mem11| 0) (= check_~sum~0 0))} is VALID [2022-04-28 04:10:53,972 INFO L272 TraceCheckUtils]: 52: Hoare triple {1271#(and (= |check_#t~mem11| 0) (= check_~sum~0 0))} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {1275#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-28 04:10:53,973 INFO L290 TraceCheckUtils]: 53: Hoare triple {1275#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1279#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:10:53,973 INFO L290 TraceCheckUtils]: 54: Hoare triple {1279#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1062#false} is VALID [2022-04-28 04:10:53,973 INFO L290 TraceCheckUtils]: 55: Hoare triple {1062#false} assume !false; {1062#false} is VALID [2022-04-28 04:10:53,974 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-04-28 04:10:53,974 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-28 04:10:53,974 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [105903068] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:10:53,974 INFO L184 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-04-28 04:10:53,974 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [12] imperfect sequences [16] total 26 [2022-04-28 04:10:53,975 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:10:53,975 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [785288986] [2022-04-28 04:10:53,975 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [785288986] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:10:53,975 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:10:53,975 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [12] imperfect sequences [] total 12 [2022-04-28 04:10:53,975 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [566881828] [2022-04-28 04:10:53,975 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:10:53,976 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 10 states have (on average 3.2) internal successors, (32), 9 states have internal predecessors, (32), 4 states have call successors, (11), 3 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) Word has length 56 [2022-04-28 04:10:53,976 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:10:53,976 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 12 states, 10 states have (on average 3.2) internal successors, (32), 9 states have internal predecessors, (32), 4 states have call successors, (11), 3 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:10:54,020 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:10:54,021 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-04-28 04:10:54,021 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:10:54,021 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-04-28 04:10:54,022 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=56, Invalid=594, Unknown=0, NotChecked=0, Total=650 [2022-04-28 04:10:54,022 INFO L87 Difference]: Start difference. First operand 58 states and 66 transitions. Second operand has 12 states, 10 states have (on average 3.2) internal successors, (32), 9 states have internal predecessors, (32), 4 states have call successors, (11), 3 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:11:14,102 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:11:14,102 INFO L93 Difference]: Finished difference Result 83 states and 97 transitions. [2022-04-28 04:11:14,102 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2022-04-28 04:11:14,102 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 10 states have (on average 3.2) internal successors, (32), 9 states have internal predecessors, (32), 4 states have call successors, (11), 3 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) Word has length 56 [2022-04-28 04:11:14,103 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:11:14,103 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 10 states have (on average 3.2) internal successors, (32), 9 states have internal predecessors, (32), 4 states have call successors, (11), 3 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:11:14,104 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 96 transitions. [2022-04-28 04:11:14,105 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 10 states have (on average 3.2) internal successors, (32), 9 states have internal predecessors, (32), 4 states have call successors, (11), 3 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:11:14,106 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 96 transitions. [2022-04-28 04:11:14,106 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 12 states and 96 transitions. [2022-04-28 04:11:14,186 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 96 edges. 96 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:11:14,189 INFO L225 Difference]: With dead ends: 83 [2022-04-28 04:11:14,189 INFO L226 Difference]: Without dead ends: 81 [2022-04-28 04:11:14,189 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 88 GetRequests, 62 SyntacticMatches, 0 SemanticMatches, 26 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=66, Invalid=690, Unknown=0, NotChecked=0, Total=756 [2022-04-28 04:11:14,194 INFO L413 NwaCegarLoop]: 51 mSDtfsCounter, 14 mSDsluCounter, 443 mSDsCounter, 0 mSdLazyCounter, 174 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 17 SdHoareTripleChecker+Valid, 494 SdHoareTripleChecker+Invalid, 220 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 174 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 46 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-04-28 04:11:14,194 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [17 Valid, 494 Invalid, 220 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 174 Invalid, 0 Unknown, 46 Unchecked, 0.2s Time] [2022-04-28 04:11:14,194 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 81 states. [2022-04-28 04:11:14,219 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 81 to 77. [2022-04-28 04:11:14,219 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:11:14,220 INFO L82 GeneralOperation]: Start isEquivalent. First operand 81 states. Second operand has 77 states, 52 states have (on average 1.1923076923076923) internal successors, (62), 54 states have internal predecessors, (62), 14 states have call successors, (14), 11 states have call predecessors, (14), 10 states have return successors, (14), 11 states have call predecessors, (14), 11 states have call successors, (14) [2022-04-28 04:11:14,220 INFO L74 IsIncluded]: Start isIncluded. First operand 81 states. Second operand has 77 states, 52 states have (on average 1.1923076923076923) internal successors, (62), 54 states have internal predecessors, (62), 14 states have call successors, (14), 11 states have call predecessors, (14), 10 states have return successors, (14), 11 states have call predecessors, (14), 11 states have call successors, (14) [2022-04-28 04:11:14,220 INFO L87 Difference]: Start difference. First operand 81 states. Second operand has 77 states, 52 states have (on average 1.1923076923076923) internal successors, (62), 54 states have internal predecessors, (62), 14 states have call successors, (14), 11 states have call predecessors, (14), 10 states have return successors, (14), 11 states have call predecessors, (14), 11 states have call successors, (14) [2022-04-28 04:11:14,223 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:11:14,223 INFO L93 Difference]: Finished difference Result 81 states and 95 transitions. [2022-04-28 04:11:14,223 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 95 transitions. [2022-04-28 04:11:14,224 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:11:14,224 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:11:14,224 INFO L74 IsIncluded]: Start isIncluded. First operand has 77 states, 52 states have (on average 1.1923076923076923) internal successors, (62), 54 states have internal predecessors, (62), 14 states have call successors, (14), 11 states have call predecessors, (14), 10 states have return successors, (14), 11 states have call predecessors, (14), 11 states have call successors, (14) Second operand 81 states. [2022-04-28 04:11:14,224 INFO L87 Difference]: Start difference. First operand has 77 states, 52 states have (on average 1.1923076923076923) internal successors, (62), 54 states have internal predecessors, (62), 14 states have call successors, (14), 11 states have call predecessors, (14), 10 states have return successors, (14), 11 states have call predecessors, (14), 11 states have call successors, (14) Second operand 81 states. [2022-04-28 04:11:14,226 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:11:14,227 INFO L93 Difference]: Finished difference Result 81 states and 95 transitions. [2022-04-28 04:11:14,227 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 95 transitions. [2022-04-28 04:11:14,227 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:11:14,227 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:11:14,227 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:11:14,227 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:11:14,228 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 77 states, 52 states have (on average 1.1923076923076923) internal successors, (62), 54 states have internal predecessors, (62), 14 states have call successors, (14), 11 states have call predecessors, (14), 10 states have return successors, (14), 11 states have call predecessors, (14), 11 states have call successors, (14) [2022-04-28 04:11:14,230 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 90 transitions. [2022-04-28 04:11:14,230 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 90 transitions. Word has length 56 [2022-04-28 04:11:14,230 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:11:14,230 INFO L495 AbstractCegarLoop]: Abstraction has 77 states and 90 transitions. [2022-04-28 04:11:14,230 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 12 states, 10 states have (on average 3.2) internal successors, (32), 9 states have internal predecessors, (32), 4 states have call successors, (11), 3 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:11:14,230 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 77 states and 90 transitions. [2022-04-28 04:11:14,324 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 90 edges. 90 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:11:14,324 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 90 transitions. [2022-04-28 04:11:14,325 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 60 [2022-04-28 04:11:14,325 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:11:14,325 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-28 04:11:14,349 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Ended with exit code 0 [2022-04-28 04:11:14,525 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2,2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:11:14,526 INFO L420 AbstractCegarLoop]: === Iteration 4 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:11:14,526 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:11:14,526 INFO L85 PathProgramCache]: Analyzing trace with hash -35265218, now seen corresponding path program 1 times [2022-04-28 04:11:14,526 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:11:14,526 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1541990630] [2022-04-28 04:11:14,527 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:11:14,527 INFO L85 PathProgramCache]: Analyzing trace with hash -35265218, now seen corresponding path program 2 times [2022-04-28 04:11:14,527 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:11:14,527 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [667283556] [2022-04-28 04:11:14,527 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:11:14,527 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:11:14,553 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:14,604 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:11:14,605 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:14,608 INFO L290 TraceCheckUtils]: 0: Hoare triple {1810#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {1771#true} is VALID [2022-04-28 04:11:14,608 INFO L290 TraceCheckUtils]: 1: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:14,609 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1771#true} {1771#true} #160#return; {1771#true} is VALID [2022-04-28 04:11:14,609 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:11:14,609 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:14,613 INFO L290 TraceCheckUtils]: 0: Hoare triple {1771#true} ~cond := #in~cond; {1771#true} is VALID [2022-04-28 04:11:14,613 INFO L290 TraceCheckUtils]: 1: Hoare triple {1771#true} assume !(0 == ~cond); {1771#true} is VALID [2022-04-28 04:11:14,613 INFO L290 TraceCheckUtils]: 2: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:14,613 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1771#true} {1771#true} #142#return; {1771#true} is VALID [2022-04-28 04:11:14,613 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:11:14,614 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:14,617 INFO L290 TraceCheckUtils]: 0: Hoare triple {1771#true} ~x := #in~x; {1771#true} is VALID [2022-04-28 04:11:14,617 INFO L290 TraceCheckUtils]: 1: Hoare triple {1771#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {1771#true} is VALID [2022-04-28 04:11:14,617 INFO L290 TraceCheckUtils]: 2: Hoare triple {1771#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {1771#true} is VALID [2022-04-28 04:11:14,617 INFO L290 TraceCheckUtils]: 3: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:14,617 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {1771#true} {1771#true} #144#return; {1771#true} is VALID [2022-04-28 04:11:14,618 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:11:14,618 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:14,621 INFO L290 TraceCheckUtils]: 0: Hoare triple {1771#true} ~cond := #in~cond; {1771#true} is VALID [2022-04-28 04:11:14,621 INFO L290 TraceCheckUtils]: 1: Hoare triple {1771#true} assume !(0 == ~cond); {1771#true} is VALID [2022-04-28 04:11:14,621 INFO L290 TraceCheckUtils]: 2: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:14,621 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1771#true} {1771#true} #146#return; {1771#true} is VALID [2022-04-28 04:11:14,626 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:11:14,627 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:14,634 INFO L290 TraceCheckUtils]: 0: Hoare triple {1811#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1771#true} is VALID [2022-04-28 04:11:14,634 INFO L290 TraceCheckUtils]: 1: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:14,634 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1771#true} {1771#true} #148#return; {1771#true} is VALID [2022-04-28 04:11:14,635 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:11:14,635 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:14,637 INFO L290 TraceCheckUtils]: 0: Hoare triple {1811#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1771#true} is VALID [2022-04-28 04:11:14,637 INFO L290 TraceCheckUtils]: 1: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:14,638 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1771#true} {1771#true} #150#return; {1771#true} is VALID [2022-04-28 04:11:14,638 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 37 [2022-04-28 04:11:14,640 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:14,653 INFO L290 TraceCheckUtils]: 0: Hoare triple {1811#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {1771#true} is VALID [2022-04-28 04:11:14,654 INFO L290 TraceCheckUtils]: 1: Hoare triple {1771#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {1812#(<= (+ upsweep_~left~0 2) upsweep_~n)} is VALID [2022-04-28 04:11:14,654 INFO L290 TraceCheckUtils]: 2: Hoare triple {1812#(<= (+ upsweep_~left~0 2) upsweep_~n)} assume !(~left~0 < ~n); {1772#false} is VALID [2022-04-28 04:11:14,654 INFO L290 TraceCheckUtils]: 3: Hoare triple {1772#false} ~space~0 := 2 * ~space~0; {1772#false} is VALID [2022-04-28 04:11:14,654 INFO L290 TraceCheckUtils]: 4: Hoare triple {1772#false} assume !(~space~0 < ~n); {1772#false} is VALID [2022-04-28 04:11:14,654 INFO L290 TraceCheckUtils]: 5: Hoare triple {1772#false} #res := ~space~0; {1772#false} is VALID [2022-04-28 04:11:14,655 INFO L290 TraceCheckUtils]: 6: Hoare triple {1772#false} assume true; {1772#false} is VALID [2022-04-28 04:11:14,655 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {1772#false} {1797#(<= 1 main_~n~0)} #152#return; {1772#false} is VALID [2022-04-28 04:11:14,655 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 47 [2022-04-28 04:11:14,657 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:14,660 INFO L290 TraceCheckUtils]: 0: Hoare triple {1811#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {1771#true} is VALID [2022-04-28 04:11:14,660 INFO L290 TraceCheckUtils]: 1: Hoare triple {1771#true} assume !(~space > 0); {1771#true} is VALID [2022-04-28 04:11:14,661 INFO L290 TraceCheckUtils]: 2: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:14,661 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1771#true} {1772#false} #154#return; {1772#false} is VALID [2022-04-28 04:11:14,661 INFO L272 TraceCheckUtils]: 0: Hoare triple {1771#true} call ULTIMATE.init(); {1810#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:11:14,661 INFO L290 TraceCheckUtils]: 1: Hoare triple {1810#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {1771#true} is VALID [2022-04-28 04:11:14,661 INFO L290 TraceCheckUtils]: 2: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:14,661 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1771#true} {1771#true} #160#return; {1771#true} is VALID [2022-04-28 04:11:14,661 INFO L272 TraceCheckUtils]: 4: Hoare triple {1771#true} call #t~ret20 := main(); {1771#true} is VALID [2022-04-28 04:11:14,662 INFO L290 TraceCheckUtils]: 5: Hoare triple {1771#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {1771#true} is VALID [2022-04-28 04:11:14,662 INFO L272 TraceCheckUtils]: 6: Hoare triple {1771#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {1771#true} is VALID [2022-04-28 04:11:14,662 INFO L290 TraceCheckUtils]: 7: Hoare triple {1771#true} ~cond := #in~cond; {1771#true} is VALID [2022-04-28 04:11:14,662 INFO L290 TraceCheckUtils]: 8: Hoare triple {1771#true} assume !(0 == ~cond); {1771#true} is VALID [2022-04-28 04:11:14,662 INFO L290 TraceCheckUtils]: 9: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:14,662 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1771#true} {1771#true} #142#return; {1771#true} is VALID [2022-04-28 04:11:14,662 INFO L272 TraceCheckUtils]: 11: Hoare triple {1771#true} call #t~ret14 := is_pow2(~n~0); {1771#true} is VALID [2022-04-28 04:11:14,662 INFO L290 TraceCheckUtils]: 12: Hoare triple {1771#true} ~x := #in~x; {1771#true} is VALID [2022-04-28 04:11:14,662 INFO L290 TraceCheckUtils]: 13: Hoare triple {1771#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {1771#true} is VALID [2022-04-28 04:11:14,662 INFO L290 TraceCheckUtils]: 14: Hoare triple {1771#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {1771#true} is VALID [2022-04-28 04:11:14,662 INFO L290 TraceCheckUtils]: 15: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:14,663 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1771#true} {1771#true} #144#return; {1771#true} is VALID [2022-04-28 04:11:14,663 INFO L290 TraceCheckUtils]: 17: Hoare triple {1771#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {1771#true} is VALID [2022-04-28 04:11:14,663 INFO L272 TraceCheckUtils]: 18: Hoare triple {1771#true} call assume_abort_if_not(#t~ret14); {1771#true} is VALID [2022-04-28 04:11:14,663 INFO L290 TraceCheckUtils]: 19: Hoare triple {1771#true} ~cond := #in~cond; {1771#true} is VALID [2022-04-28 04:11:14,663 INFO L290 TraceCheckUtils]: 20: Hoare triple {1771#true} assume !(0 == ~cond); {1771#true} is VALID [2022-04-28 04:11:14,663 INFO L290 TraceCheckUtils]: 21: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:14,663 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {1771#true} {1771#true} #146#return; {1771#true} is VALID [2022-04-28 04:11:14,663 INFO L290 TraceCheckUtils]: 23: Hoare triple {1771#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {1771#true} is VALID [2022-04-28 04:11:14,664 INFO L272 TraceCheckUtils]: 24: Hoare triple {1771#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {1811#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:11:14,665 INFO L290 TraceCheckUtils]: 25: Hoare triple {1811#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1771#true} is VALID [2022-04-28 04:11:14,665 INFO L290 TraceCheckUtils]: 26: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:14,665 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1771#true} {1771#true} #148#return; {1771#true} is VALID [2022-04-28 04:11:14,665 INFO L290 TraceCheckUtils]: 28: Hoare triple {1771#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {1771#true} is VALID [2022-04-28 04:11:14,669 INFO L272 TraceCheckUtils]: 29: Hoare triple {1771#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {1811#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:11:14,669 INFO L290 TraceCheckUtils]: 30: Hoare triple {1811#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1771#true} is VALID [2022-04-28 04:11:14,669 INFO L290 TraceCheckUtils]: 31: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:14,669 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {1771#true} {1771#true} #150#return; {1771#true} is VALID [2022-04-28 04:11:14,679 INFO L290 TraceCheckUtils]: 33: Hoare triple {1771#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {1795#(= main_~i~1 0)} is VALID [2022-04-28 04:11:14,680 INFO L290 TraceCheckUtils]: 34: Hoare triple {1795#(= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {1796#(and (<= (+ main_~i~1 1) main_~n~0) (= main_~i~1 0))} is VALID [2022-04-28 04:11:14,683 INFO L290 TraceCheckUtils]: 35: Hoare triple {1796#(and (<= (+ main_~i~1 1) main_~n~0) (= main_~i~1 0))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {1797#(<= 1 main_~n~0)} is VALID [2022-04-28 04:11:14,686 INFO L290 TraceCheckUtils]: 36: Hoare triple {1797#(<= 1 main_~n~0)} assume !(~i~1 < ~n~0); {1797#(<= 1 main_~n~0)} is VALID [2022-04-28 04:11:14,686 INFO L272 TraceCheckUtils]: 37: Hoare triple {1797#(<= 1 main_~n~0)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {1811#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:11:14,687 INFO L290 TraceCheckUtils]: 38: Hoare triple {1811#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {1771#true} is VALID [2022-04-28 04:11:14,688 INFO L290 TraceCheckUtils]: 39: Hoare triple {1771#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {1812#(<= (+ upsweep_~left~0 2) upsweep_~n)} is VALID [2022-04-28 04:11:14,688 INFO L290 TraceCheckUtils]: 40: Hoare triple {1812#(<= (+ upsweep_~left~0 2) upsweep_~n)} assume !(~left~0 < ~n); {1772#false} is VALID [2022-04-28 04:11:14,688 INFO L290 TraceCheckUtils]: 41: Hoare triple {1772#false} ~space~0 := 2 * ~space~0; {1772#false} is VALID [2022-04-28 04:11:14,688 INFO L290 TraceCheckUtils]: 42: Hoare triple {1772#false} assume !(~space~0 < ~n); {1772#false} is VALID [2022-04-28 04:11:14,688 INFO L290 TraceCheckUtils]: 43: Hoare triple {1772#false} #res := ~space~0; {1772#false} is VALID [2022-04-28 04:11:14,688 INFO L290 TraceCheckUtils]: 44: Hoare triple {1772#false} assume true; {1772#false} is VALID [2022-04-28 04:11:14,688 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {1772#false} {1797#(<= 1 main_~n~0)} #152#return; {1772#false} is VALID [2022-04-28 04:11:14,689 INFO L290 TraceCheckUtils]: 46: Hoare triple {1772#false} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {1772#false} is VALID [2022-04-28 04:11:14,689 INFO L272 TraceCheckUtils]: 47: Hoare triple {1772#false} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {1811#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:11:14,689 INFO L290 TraceCheckUtils]: 48: Hoare triple {1811#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {1771#true} is VALID [2022-04-28 04:11:14,689 INFO L290 TraceCheckUtils]: 49: Hoare triple {1771#true} assume !(~space > 0); {1771#true} is VALID [2022-04-28 04:11:14,689 INFO L290 TraceCheckUtils]: 50: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:14,689 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {1771#true} {1772#false} #154#return; {1772#false} is VALID [2022-04-28 04:11:14,689 INFO L272 TraceCheckUtils]: 52: Hoare triple {1772#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {1772#false} is VALID [2022-04-28 04:11:14,689 INFO L290 TraceCheckUtils]: 53: Hoare triple {1772#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {1772#false} is VALID [2022-04-28 04:11:14,689 INFO L290 TraceCheckUtils]: 54: Hoare triple {1772#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {1772#false} is VALID [2022-04-28 04:11:14,689 INFO L272 TraceCheckUtils]: 55: Hoare triple {1772#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {1772#false} is VALID [2022-04-28 04:11:14,689 INFO L290 TraceCheckUtils]: 56: Hoare triple {1772#false} ~cond := #in~cond; {1772#false} is VALID [2022-04-28 04:11:14,690 INFO L290 TraceCheckUtils]: 57: Hoare triple {1772#false} assume 0 == ~cond; {1772#false} is VALID [2022-04-28 04:11:14,690 INFO L290 TraceCheckUtils]: 58: Hoare triple {1772#false} assume !false; {1772#false} is VALID [2022-04-28 04:11:14,690 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 1 proven. 1 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2022-04-28 04:11:14,691 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:11:14,691 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [667283556] [2022-04-28 04:11:14,691 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [667283556] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:11:14,691 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1144338914] [2022-04-28 04:11:14,691 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:11:14,691 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:11:14,691 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:11:14,692 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:11:14,694 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Waiting until timeout for monitored process [2022-04-28 04:11:14,753 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2022-04-28 04:11:14,754 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:11:14,755 INFO L263 TraceCheckSpWp]: Trace formula consists of 180 conjuncts, 44 conjunts are in the unsatisfiable core [2022-04-28 04:11:14,770 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:14,771 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:11:15,021 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 12 [2022-04-28 04:11:16,163 INFO L356 Elim1Store]: treesize reduction 16, result has 15.8 percent of original size [2022-04-28 04:11:16,163 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 26 treesize of output 10 [2022-04-28 04:11:16,332 INFO L272 TraceCheckUtils]: 0: Hoare triple {1771#true} call ULTIMATE.init(); {1771#true} is VALID [2022-04-28 04:11:16,333 INFO L290 TraceCheckUtils]: 1: Hoare triple {1771#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {1771#true} is VALID [2022-04-28 04:11:16,333 INFO L290 TraceCheckUtils]: 2: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:16,333 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1771#true} {1771#true} #160#return; {1771#true} is VALID [2022-04-28 04:11:16,333 INFO L272 TraceCheckUtils]: 4: Hoare triple {1771#true} call #t~ret20 := main(); {1771#true} is VALID [2022-04-28 04:11:16,333 INFO L290 TraceCheckUtils]: 5: Hoare triple {1771#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {1771#true} is VALID [2022-04-28 04:11:16,333 INFO L272 TraceCheckUtils]: 6: Hoare triple {1771#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {1771#true} is VALID [2022-04-28 04:11:16,333 INFO L290 TraceCheckUtils]: 7: Hoare triple {1771#true} ~cond := #in~cond; {1771#true} is VALID [2022-04-28 04:11:16,333 INFO L290 TraceCheckUtils]: 8: Hoare triple {1771#true} assume !(0 == ~cond); {1771#true} is VALID [2022-04-28 04:11:16,333 INFO L290 TraceCheckUtils]: 9: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:16,333 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1771#true} {1771#true} #142#return; {1771#true} is VALID [2022-04-28 04:11:16,333 INFO L272 TraceCheckUtils]: 11: Hoare triple {1771#true} call #t~ret14 := is_pow2(~n~0); {1771#true} is VALID [2022-04-28 04:11:16,333 INFO L290 TraceCheckUtils]: 12: Hoare triple {1771#true} ~x := #in~x; {1771#true} is VALID [2022-04-28 04:11:16,334 INFO L290 TraceCheckUtils]: 13: Hoare triple {1771#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {1771#true} is VALID [2022-04-28 04:11:16,334 INFO L290 TraceCheckUtils]: 14: Hoare triple {1771#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {1771#true} is VALID [2022-04-28 04:11:16,334 INFO L290 TraceCheckUtils]: 15: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:16,334 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1771#true} {1771#true} #144#return; {1771#true} is VALID [2022-04-28 04:11:16,334 INFO L290 TraceCheckUtils]: 17: Hoare triple {1771#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {1771#true} is VALID [2022-04-28 04:11:16,334 INFO L272 TraceCheckUtils]: 18: Hoare triple {1771#true} call assume_abort_if_not(#t~ret14); {1771#true} is VALID [2022-04-28 04:11:16,334 INFO L290 TraceCheckUtils]: 19: Hoare triple {1771#true} ~cond := #in~cond; {1771#true} is VALID [2022-04-28 04:11:16,334 INFO L290 TraceCheckUtils]: 20: Hoare triple {1771#true} assume !(0 == ~cond); {1771#true} is VALID [2022-04-28 04:11:16,334 INFO L290 TraceCheckUtils]: 21: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:16,334 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {1771#true} {1771#true} #146#return; {1771#true} is VALID [2022-04-28 04:11:16,334 INFO L290 TraceCheckUtils]: 23: Hoare triple {1771#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {1771#true} is VALID [2022-04-28 04:11:16,334 INFO L272 TraceCheckUtils]: 24: Hoare triple {1771#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {1771#true} is VALID [2022-04-28 04:11:16,335 INFO L290 TraceCheckUtils]: 25: Hoare triple {1771#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1771#true} is VALID [2022-04-28 04:11:16,335 INFO L290 TraceCheckUtils]: 26: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:16,335 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1771#true} {1771#true} #148#return; {1771#true} is VALID [2022-04-28 04:11:16,335 INFO L290 TraceCheckUtils]: 28: Hoare triple {1771#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {1771#true} is VALID [2022-04-28 04:11:16,335 INFO L272 TraceCheckUtils]: 29: Hoare triple {1771#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {1771#true} is VALID [2022-04-28 04:11:16,335 INFO L290 TraceCheckUtils]: 30: Hoare triple {1771#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1771#true} is VALID [2022-04-28 04:11:16,335 INFO L290 TraceCheckUtils]: 31: Hoare triple {1771#true} assume true; {1771#true} is VALID [2022-04-28 04:11:16,335 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {1771#true} {1771#true} #150#return; {1771#true} is VALID [2022-04-28 04:11:16,335 INFO L290 TraceCheckUtils]: 33: Hoare triple {1771#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {1771#true} is VALID [2022-04-28 04:11:16,335 INFO L290 TraceCheckUtils]: 34: Hoare triple {1771#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {1771#true} is VALID [2022-04-28 04:11:16,335 INFO L290 TraceCheckUtils]: 35: Hoare triple {1771#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {1771#true} is VALID [2022-04-28 04:11:16,335 INFO L290 TraceCheckUtils]: 36: Hoare triple {1771#true} assume !(~i~1 < ~n~0); {1771#true} is VALID [2022-04-28 04:11:16,336 INFO L272 TraceCheckUtils]: 37: Hoare triple {1771#true} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {1771#true} is VALID [2022-04-28 04:11:16,336 INFO L290 TraceCheckUtils]: 38: Hoare triple {1771#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {1930#(<= |upsweep_#in~n| upsweep_~n)} is VALID [2022-04-28 04:11:16,336 INFO L290 TraceCheckUtils]: 39: Hoare triple {1930#(<= |upsweep_#in~n| upsweep_~n)} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {1930#(<= |upsweep_#in~n| upsweep_~n)} is VALID [2022-04-28 04:11:16,337 INFO L290 TraceCheckUtils]: 40: Hoare triple {1930#(<= |upsweep_#in~n| upsweep_~n)} assume !(~left~0 < ~n); {1930#(<= |upsweep_#in~n| upsweep_~n)} is VALID [2022-04-28 04:11:16,337 INFO L290 TraceCheckUtils]: 41: Hoare triple {1930#(<= |upsweep_#in~n| upsweep_~n)} ~space~0 := 2 * ~space~0; {1930#(<= |upsweep_#in~n| upsweep_~n)} is VALID [2022-04-28 04:11:16,337 INFO L290 TraceCheckUtils]: 42: Hoare triple {1930#(<= |upsweep_#in~n| upsweep_~n)} assume !(~space~0 < ~n); {1943#(<= |upsweep_#in~n| upsweep_~space~0)} is VALID [2022-04-28 04:11:16,338 INFO L290 TraceCheckUtils]: 43: Hoare triple {1943#(<= |upsweep_#in~n| upsweep_~space~0)} #res := ~space~0; {1947#(<= |upsweep_#in~n| |upsweep_#res|)} is VALID [2022-04-28 04:11:16,338 INFO L290 TraceCheckUtils]: 44: Hoare triple {1947#(<= |upsweep_#in~n| |upsweep_#res|)} assume true; {1947#(<= |upsweep_#in~n| |upsweep_#res|)} is VALID [2022-04-28 04:11:16,339 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {1947#(<= |upsweep_#in~n| |upsweep_#res|)} {1771#true} #152#return; {1954#(<= main_~n~0 |main_#t~ret19|)} is VALID [2022-04-28 04:11:16,339 INFO L290 TraceCheckUtils]: 46: Hoare triple {1954#(<= main_~n~0 |main_#t~ret19|)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {1958#(<= main_~n~0 main_~space~1)} is VALID [2022-04-28 04:11:16,339 INFO L272 TraceCheckUtils]: 47: Hoare triple {1958#(<= main_~n~0 main_~space~1)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {1771#true} is VALID [2022-04-28 04:11:16,340 INFO L290 TraceCheckUtils]: 48: Hoare triple {1771#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {1965#(and (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|)) 0) (or (and (or (= (mod |downsweep_#in~space| 2) 0) (not (< |downsweep_#in~space| 0))) (<= (div |downsweep_#in~space| 2) downsweep_~space)) (<= (+ (div |downsweep_#in~space| 2) 1) downsweep_~space)))} is VALID [2022-04-28 04:11:16,341 INFO L290 TraceCheckUtils]: 49: Hoare triple {1965#(and (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|)) 0) (or (and (or (= (mod |downsweep_#in~space| 2) 0) (not (< |downsweep_#in~space| 0))) (<= (div |downsweep_#in~space| 2) downsweep_~space)) (<= (+ (div |downsweep_#in~space| 2) 1) downsweep_~space)))} assume !(~space > 0); {1969#(and (<= (div |downsweep_#in~space| 2) 0) (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|)) 0))} is VALID [2022-04-28 04:11:16,342 INFO L290 TraceCheckUtils]: 50: Hoare triple {1969#(and (<= (div |downsweep_#in~space| 2) 0) (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|)) 0))} assume true; {1969#(and (<= (div |downsweep_#in~space| 2) 0) (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|)) 0))} is VALID [2022-04-28 04:11:16,343 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {1969#(and (<= (div |downsweep_#in~space| 2) 0) (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|)) 0))} {1958#(<= main_~n~0 main_~space~1)} #154#return; {1976#(and (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset (* main_~n~0 4) (- 4))) 0) (< (div (+ (* (- 1) main_~n~0) 1) (- 2)) 1))} is VALID [2022-04-28 04:11:16,352 INFO L272 TraceCheckUtils]: 52: Hoare triple {1976#(and (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset (* main_~n~0 4) (- 4))) 0) (< (div (+ (* (- 1) main_~n~0) 1) (- 2)) 1))} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {1980#(exists ((aux_mod_v_main_~n~0_BEFORE_CALL_4_53 Int) (aux_div_v_main_~n~0_BEFORE_CALL_4_53 Int)) (and (<= (+ aux_mod_v_main_~n~0_BEFORE_CALL_4_53 |check_#in~n|) (+ (* 2 aux_div_v_main_~n~0_BEFORE_CALL_4_53) 1)) (= (select (select |#memory_int| |check_#in~a.base|) (+ (* 8 aux_div_v_main_~n~0_BEFORE_CALL_4_53) |check_#in~a.offset| (* aux_mod_v_main_~n~0_BEFORE_CALL_4_53 (- 4)))) 0) (< aux_div_v_main_~n~0_BEFORE_CALL_4_53 1) (<= 0 aux_mod_v_main_~n~0_BEFORE_CALL_4_53) (< aux_mod_v_main_~n~0_BEFORE_CALL_4_53 2)))} is VALID [2022-04-28 04:11:16,353 INFO L290 TraceCheckUtils]: 53: Hoare triple {1980#(exists ((aux_mod_v_main_~n~0_BEFORE_CALL_4_53 Int) (aux_div_v_main_~n~0_BEFORE_CALL_4_53 Int)) (and (<= (+ aux_mod_v_main_~n~0_BEFORE_CALL_4_53 |check_#in~n|) (+ (* 2 aux_div_v_main_~n~0_BEFORE_CALL_4_53) 1)) (= (select (select |#memory_int| |check_#in~a.base|) (+ (* 8 aux_div_v_main_~n~0_BEFORE_CALL_4_53) |check_#in~a.offset| (* aux_mod_v_main_~n~0_BEFORE_CALL_4_53 (- 4)))) 0) (< aux_div_v_main_~n~0_BEFORE_CALL_4_53 1) (<= 0 aux_mod_v_main_~n~0_BEFORE_CALL_4_53) (< aux_mod_v_main_~n~0_BEFORE_CALL_4_53 2)))} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {1984#(and (exists ((aux_mod_v_main_~n~0_BEFORE_CALL_4_53 Int) (aux_div_v_main_~n~0_BEFORE_CALL_4_53 Int)) (and (= (select (select |#memory_int| check_~a.base) (+ (* 8 aux_div_v_main_~n~0_BEFORE_CALL_4_53) check_~a.offset (* aux_mod_v_main_~n~0_BEFORE_CALL_4_53 (- 4)))) 0) (<= (+ aux_mod_v_main_~n~0_BEFORE_CALL_4_53 check_~n) (+ (* 2 aux_div_v_main_~n~0_BEFORE_CALL_4_53) 1)) (< aux_div_v_main_~n~0_BEFORE_CALL_4_53 1) (<= 0 aux_mod_v_main_~n~0_BEFORE_CALL_4_53) (< aux_mod_v_main_~n~0_BEFORE_CALL_4_53 2))) (= check_~sum~0 0) (<= 0 check_~i~0))} is VALID [2022-04-28 04:11:16,354 INFO L290 TraceCheckUtils]: 54: Hoare triple {1984#(and (exists ((aux_mod_v_main_~n~0_BEFORE_CALL_4_53 Int) (aux_div_v_main_~n~0_BEFORE_CALL_4_53 Int)) (and (= (select (select |#memory_int| check_~a.base) (+ (* 8 aux_div_v_main_~n~0_BEFORE_CALL_4_53) check_~a.offset (* aux_mod_v_main_~n~0_BEFORE_CALL_4_53 (- 4)))) 0) (<= (+ aux_mod_v_main_~n~0_BEFORE_CALL_4_53 check_~n) (+ (* 2 aux_div_v_main_~n~0_BEFORE_CALL_4_53) 1)) (< aux_div_v_main_~n~0_BEFORE_CALL_4_53 1) (<= 0 aux_mod_v_main_~n~0_BEFORE_CALL_4_53) (< aux_mod_v_main_~n~0_BEFORE_CALL_4_53 2))) (= check_~sum~0 0) (<= 0 check_~i~0))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {1988#(and (= |check_#t~mem11| 0) (= check_~sum~0 0))} is VALID [2022-04-28 04:11:16,354 INFO L272 TraceCheckUtils]: 55: Hoare triple {1988#(and (= |check_#t~mem11| 0) (= check_~sum~0 0))} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {1992#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-28 04:11:16,354 INFO L290 TraceCheckUtils]: 56: Hoare triple {1992#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1996#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:11:16,355 INFO L290 TraceCheckUtils]: 57: Hoare triple {1996#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1772#false} is VALID [2022-04-28 04:11:16,355 INFO L290 TraceCheckUtils]: 58: Hoare triple {1772#false} assume !false; {1772#false} is VALID [2022-04-28 04:11:16,355 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2022-04-28 04:11:16,355 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-28 04:11:16,355 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1144338914] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:11:16,355 INFO L184 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-04-28 04:11:16,355 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [15] imperfect sequences [8] total 21 [2022-04-28 04:11:16,356 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:11:16,356 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1541990630] [2022-04-28 04:11:16,356 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1541990630] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:11:16,356 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:11:16,356 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [15] imperfect sequences [] total 15 [2022-04-28 04:11:16,356 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1781697682] [2022-04-28 04:11:16,356 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:11:16,356 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 12 states have (on average 2.9166666666666665) internal successors, (35), 11 states have internal predecessors, (35), 4 states have call successors, (11), 3 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) Word has length 59 [2022-04-28 04:11:16,357 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:11:16,357 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 15 states, 12 states have (on average 2.9166666666666665) internal successors, (35), 11 states have internal predecessors, (35), 4 states have call successors, (11), 3 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:11:16,401 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:11:16,401 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 15 states [2022-04-28 04:11:16,401 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:11:16,402 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2022-04-28 04:11:16,402 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=379, Unknown=0, NotChecked=0, Total=420 [2022-04-28 04:11:16,402 INFO L87 Difference]: Start difference. First operand 77 states and 90 transitions. Second operand has 15 states, 12 states have (on average 2.9166666666666665) internal successors, (35), 11 states have internal predecessors, (35), 4 states have call successors, (11), 3 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:11:34,622 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:11:34,623 INFO L93 Difference]: Finished difference Result 101 states and 117 transitions. [2022-04-28 04:11:34,623 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-04-28 04:11:34,623 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 12 states have (on average 2.9166666666666665) internal successors, (35), 11 states have internal predecessors, (35), 4 states have call successors, (11), 3 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) Word has length 59 [2022-04-28 04:11:34,623 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:11:34,623 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 12 states have (on average 2.9166666666666665) internal successors, (35), 11 states have internal predecessors, (35), 4 states have call successors, (11), 3 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:11:34,625 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 83 transitions. [2022-04-28 04:11:34,625 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 12 states have (on average 2.9166666666666665) internal successors, (35), 11 states have internal predecessors, (35), 4 states have call successors, (11), 3 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:11:34,626 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 83 transitions. [2022-04-28 04:11:34,626 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 15 states and 83 transitions. [2022-04-28 04:11:34,718 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 83 edges. 83 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:11:34,720 INFO L225 Difference]: With dead ends: 101 [2022-04-28 04:11:34,720 INFO L226 Difference]: Without dead ends: 99 [2022-04-28 04:11:34,720 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 86 GetRequests, 62 SyntacticMatches, 0 SemanticMatches, 24 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 47 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=63, Invalid=587, Unknown=0, NotChecked=0, Total=650 [2022-04-28 04:11:34,721 INFO L413 NwaCegarLoop]: 48 mSDtfsCounter, 15 mSDsluCounter, 525 mSDsCounter, 0 mSdLazyCounter, 258 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 18 SdHoareTripleChecker+Valid, 573 SdHoareTripleChecker+Invalid, 308 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 258 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 50 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-04-28 04:11:34,721 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [18 Valid, 573 Invalid, 308 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 258 Invalid, 0 Unknown, 50 Unchecked, 0.3s Time] [2022-04-28 04:11:34,721 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 99 states. [2022-04-28 04:11:34,760 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 99 to 80. [2022-04-28 04:11:34,760 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:11:34,760 INFO L82 GeneralOperation]: Start isEquivalent. First operand 99 states. Second operand has 80 states, 54 states have (on average 1.2037037037037037) internal successors, (65), 57 states have internal predecessors, (65), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (16), 11 states have call predecessors, (16), 11 states have call successors, (16) [2022-04-28 04:11:34,760 INFO L74 IsIncluded]: Start isIncluded. First operand 99 states. Second operand has 80 states, 54 states have (on average 1.2037037037037037) internal successors, (65), 57 states have internal predecessors, (65), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (16), 11 states have call predecessors, (16), 11 states have call successors, (16) [2022-04-28 04:11:34,761 INFO L87 Difference]: Start difference. First operand 99 states. Second operand has 80 states, 54 states have (on average 1.2037037037037037) internal successors, (65), 57 states have internal predecessors, (65), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (16), 11 states have call predecessors, (16), 11 states have call successors, (16) [2022-04-28 04:11:34,763 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:11:34,764 INFO L93 Difference]: Finished difference Result 99 states and 115 transitions. [2022-04-28 04:11:34,764 INFO L276 IsEmpty]: Start isEmpty. Operand 99 states and 115 transitions. [2022-04-28 04:11:34,764 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:11:34,764 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:11:34,764 INFO L74 IsIncluded]: Start isIncluded. First operand has 80 states, 54 states have (on average 1.2037037037037037) internal successors, (65), 57 states have internal predecessors, (65), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (16), 11 states have call predecessors, (16), 11 states have call successors, (16) Second operand 99 states. [2022-04-28 04:11:34,765 INFO L87 Difference]: Start difference. First operand has 80 states, 54 states have (on average 1.2037037037037037) internal successors, (65), 57 states have internal predecessors, (65), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (16), 11 states have call predecessors, (16), 11 states have call successors, (16) Second operand 99 states. [2022-04-28 04:11:34,767 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:11:34,767 INFO L93 Difference]: Finished difference Result 99 states and 115 transitions. [2022-04-28 04:11:34,767 INFO L276 IsEmpty]: Start isEmpty. Operand 99 states and 115 transitions. [2022-04-28 04:11:34,767 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:11:34,767 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:11:34,767 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:11:34,768 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:11:34,768 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 80 states, 54 states have (on average 1.2037037037037037) internal successors, (65), 57 states have internal predecessors, (65), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (16), 11 states have call predecessors, (16), 11 states have call successors, (16) [2022-04-28 04:11:34,770 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 80 states to 80 states and 95 transitions. [2022-04-28 04:11:34,770 INFO L78 Accepts]: Start accepts. Automaton has 80 states and 95 transitions. Word has length 59 [2022-04-28 04:11:34,770 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:11:34,770 INFO L495 AbstractCegarLoop]: Abstraction has 80 states and 95 transitions. [2022-04-28 04:11:34,770 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 15 states, 12 states have (on average 2.9166666666666665) internal successors, (35), 11 states have internal predecessors, (35), 4 states have call successors, (11), 3 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:11:34,770 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 80 states and 95 transitions. [2022-04-28 04:11:34,870 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 95 edges. 95 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:11:34,870 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 95 transitions. [2022-04-28 04:11:34,871 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 61 [2022-04-28 04:11:34,871 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:11:34,871 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-28 04:11:34,887 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Forceful destruction successful, exit code 0 [2022-04-28 04:11:35,071 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable3 [2022-04-28 04:11:35,072 INFO L420 AbstractCegarLoop]: === Iteration 5 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:11:35,072 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:11:35,072 INFO L85 PathProgramCache]: Analyzing trace with hash 281114777, now seen corresponding path program 1 times [2022-04-28 04:11:35,072 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:11:35,072 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [983461974] [2022-04-28 04:11:35,072 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:11:35,073 INFO L85 PathProgramCache]: Analyzing trace with hash 281114777, now seen corresponding path program 2 times [2022-04-28 04:11:35,073 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:11:35,073 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1263334184] [2022-04-28 04:11:35,073 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:11:35,073 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:11:35,107 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:35,153 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:11:35,154 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:35,164 INFO L290 TraceCheckUtils]: 0: Hoare triple {2612#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {2572#true} is VALID [2022-04-28 04:11:35,165 INFO L290 TraceCheckUtils]: 1: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,165 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {2572#true} {2572#true} #160#return; {2572#true} is VALID [2022-04-28 04:11:35,165 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:11:35,166 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:35,168 INFO L290 TraceCheckUtils]: 0: Hoare triple {2572#true} ~cond := #in~cond; {2572#true} is VALID [2022-04-28 04:11:35,168 INFO L290 TraceCheckUtils]: 1: Hoare triple {2572#true} assume !(0 == ~cond); {2572#true} is VALID [2022-04-28 04:11:35,168 INFO L290 TraceCheckUtils]: 2: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,168 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2572#true} {2572#true} #142#return; {2572#true} is VALID [2022-04-28 04:11:35,168 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:11:35,169 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:35,171 INFO L290 TraceCheckUtils]: 0: Hoare triple {2572#true} ~x := #in~x; {2572#true} is VALID [2022-04-28 04:11:35,171 INFO L290 TraceCheckUtils]: 1: Hoare triple {2572#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {2572#true} is VALID [2022-04-28 04:11:35,171 INFO L290 TraceCheckUtils]: 2: Hoare triple {2572#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {2572#true} is VALID [2022-04-28 04:11:35,171 INFO L290 TraceCheckUtils]: 3: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,172 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {2572#true} {2572#true} #144#return; {2572#true} is VALID [2022-04-28 04:11:35,172 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:11:35,172 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:35,173 INFO L290 TraceCheckUtils]: 0: Hoare triple {2572#true} ~cond := #in~cond; {2572#true} is VALID [2022-04-28 04:11:35,174 INFO L290 TraceCheckUtils]: 1: Hoare triple {2572#true} assume !(0 == ~cond); {2572#true} is VALID [2022-04-28 04:11:35,174 INFO L290 TraceCheckUtils]: 2: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,174 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2572#true} {2572#true} #146#return; {2572#true} is VALID [2022-04-28 04:11:35,179 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:11:35,181 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:35,183 INFO L290 TraceCheckUtils]: 0: Hoare triple {2613#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2572#true} is VALID [2022-04-28 04:11:35,183 INFO L290 TraceCheckUtils]: 1: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,183 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {2572#true} {2572#true} #148#return; {2572#true} is VALID [2022-04-28 04:11:35,183 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:11:35,184 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:35,187 INFO L290 TraceCheckUtils]: 0: Hoare triple {2613#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2572#true} is VALID [2022-04-28 04:11:35,187 INFO L290 TraceCheckUtils]: 1: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,187 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {2572#true} {2572#true} #150#return; {2572#true} is VALID [2022-04-28 04:11:35,187 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 37 [2022-04-28 04:11:35,189 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:35,191 INFO L290 TraceCheckUtils]: 0: Hoare triple {2613#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {2572#true} is VALID [2022-04-28 04:11:35,191 INFO L290 TraceCheckUtils]: 1: Hoare triple {2572#true} assume !(~space~0 < ~n); {2572#true} is VALID [2022-04-28 04:11:35,191 INFO L290 TraceCheckUtils]: 2: Hoare triple {2572#true} #res := ~space~0; {2572#true} is VALID [2022-04-28 04:11:35,191 INFO L290 TraceCheckUtils]: 3: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,192 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {2572#true} {2598#(<= main_~n~0 1)} #152#return; {2598#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:35,192 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 44 [2022-04-28 04:11:35,201 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:35,260 INFO L290 TraceCheckUtils]: 0: Hoare triple {2613#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {2614#(= downsweep_~n |downsweep_#in~n|)} is VALID [2022-04-28 04:11:35,261 INFO L290 TraceCheckUtils]: 1: Hoare triple {2614#(= downsweep_~n |downsweep_#in~n|)} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {2615#(and (= downsweep_~n |downsweep_#in~n|) (<= 1 downsweep_~right~1))} is VALID [2022-04-28 04:11:35,262 INFO L290 TraceCheckUtils]: 2: Hoare triple {2615#(and (= downsweep_~n |downsweep_#in~n|) (<= 1 downsweep_~right~1))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {2616#(and (= downsweep_~n |downsweep_#in~n|) (<= 2 downsweep_~n))} is VALID [2022-04-28 04:11:35,262 INFO L290 TraceCheckUtils]: 3: Hoare triple {2616#(and (= downsweep_~n |downsweep_#in~n|) (<= 2 downsweep_~n))} assume !(~right~1 < ~n); {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:35,263 INFO L290 TraceCheckUtils]: 4: Hoare triple {2617#(<= 2 |downsweep_#in~n|)} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:35,263 INFO L290 TraceCheckUtils]: 5: Hoare triple {2617#(<= 2 |downsweep_#in~n|)} assume !(~space > 0); {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:35,263 INFO L290 TraceCheckUtils]: 6: Hoare triple {2617#(<= 2 |downsweep_#in~n|)} assume true; {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:35,264 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {2617#(<= 2 |downsweep_#in~n|)} {2598#(<= main_~n~0 1)} #154#return; {2573#false} is VALID [2022-04-28 04:11:35,265 INFO L272 TraceCheckUtils]: 0: Hoare triple {2572#true} call ULTIMATE.init(); {2612#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:11:35,265 INFO L290 TraceCheckUtils]: 1: Hoare triple {2612#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {2572#true} is VALID [2022-04-28 04:11:35,265 INFO L290 TraceCheckUtils]: 2: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,265 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2572#true} {2572#true} #160#return; {2572#true} is VALID [2022-04-28 04:11:35,265 INFO L272 TraceCheckUtils]: 4: Hoare triple {2572#true} call #t~ret20 := main(); {2572#true} is VALID [2022-04-28 04:11:35,265 INFO L290 TraceCheckUtils]: 5: Hoare triple {2572#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {2572#true} is VALID [2022-04-28 04:11:35,265 INFO L272 TraceCheckUtils]: 6: Hoare triple {2572#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {2572#true} is VALID [2022-04-28 04:11:35,265 INFO L290 TraceCheckUtils]: 7: Hoare triple {2572#true} ~cond := #in~cond; {2572#true} is VALID [2022-04-28 04:11:35,265 INFO L290 TraceCheckUtils]: 8: Hoare triple {2572#true} assume !(0 == ~cond); {2572#true} is VALID [2022-04-28 04:11:35,265 INFO L290 TraceCheckUtils]: 9: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,265 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2572#true} {2572#true} #142#return; {2572#true} is VALID [2022-04-28 04:11:35,266 INFO L272 TraceCheckUtils]: 11: Hoare triple {2572#true} call #t~ret14 := is_pow2(~n~0); {2572#true} is VALID [2022-04-28 04:11:35,266 INFO L290 TraceCheckUtils]: 12: Hoare triple {2572#true} ~x := #in~x; {2572#true} is VALID [2022-04-28 04:11:35,266 INFO L290 TraceCheckUtils]: 13: Hoare triple {2572#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {2572#true} is VALID [2022-04-28 04:11:35,266 INFO L290 TraceCheckUtils]: 14: Hoare triple {2572#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {2572#true} is VALID [2022-04-28 04:11:35,266 INFO L290 TraceCheckUtils]: 15: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,266 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2572#true} {2572#true} #144#return; {2572#true} is VALID [2022-04-28 04:11:35,266 INFO L290 TraceCheckUtils]: 17: Hoare triple {2572#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {2572#true} is VALID [2022-04-28 04:11:35,266 INFO L272 TraceCheckUtils]: 18: Hoare triple {2572#true} call assume_abort_if_not(#t~ret14); {2572#true} is VALID [2022-04-28 04:11:35,266 INFO L290 TraceCheckUtils]: 19: Hoare triple {2572#true} ~cond := #in~cond; {2572#true} is VALID [2022-04-28 04:11:35,266 INFO L290 TraceCheckUtils]: 20: Hoare triple {2572#true} assume !(0 == ~cond); {2572#true} is VALID [2022-04-28 04:11:35,266 INFO L290 TraceCheckUtils]: 21: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,266 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {2572#true} {2572#true} #146#return; {2572#true} is VALID [2022-04-28 04:11:35,266 INFO L290 TraceCheckUtils]: 23: Hoare triple {2572#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {2572#true} is VALID [2022-04-28 04:11:35,267 INFO L272 TraceCheckUtils]: 24: Hoare triple {2572#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {2613#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:11:35,267 INFO L290 TraceCheckUtils]: 25: Hoare triple {2613#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2572#true} is VALID [2022-04-28 04:11:35,267 INFO L290 TraceCheckUtils]: 26: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,267 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {2572#true} {2572#true} #148#return; {2572#true} is VALID [2022-04-28 04:11:35,268 INFO L290 TraceCheckUtils]: 28: Hoare triple {2572#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {2572#true} is VALID [2022-04-28 04:11:35,268 INFO L272 TraceCheckUtils]: 29: Hoare triple {2572#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {2613#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:11:35,268 INFO L290 TraceCheckUtils]: 30: Hoare triple {2613#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2572#true} is VALID [2022-04-28 04:11:35,268 INFO L290 TraceCheckUtils]: 31: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,268 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {2572#true} {2572#true} #150#return; {2572#true} is VALID [2022-04-28 04:11:35,269 INFO L290 TraceCheckUtils]: 33: Hoare triple {2572#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {2596#(= main_~i~1 0)} is VALID [2022-04-28 04:11:35,269 INFO L290 TraceCheckUtils]: 34: Hoare triple {2596#(= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {2596#(= main_~i~1 0)} is VALID [2022-04-28 04:11:35,269 INFO L290 TraceCheckUtils]: 35: Hoare triple {2596#(= main_~i~1 0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {2597#(<= main_~i~1 1)} is VALID [2022-04-28 04:11:35,270 INFO L290 TraceCheckUtils]: 36: Hoare triple {2597#(<= main_~i~1 1)} assume !(~i~1 < ~n~0); {2598#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:35,270 INFO L272 TraceCheckUtils]: 37: Hoare triple {2598#(<= main_~n~0 1)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {2613#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:11:35,271 INFO L290 TraceCheckUtils]: 38: Hoare triple {2613#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {2572#true} is VALID [2022-04-28 04:11:35,271 INFO L290 TraceCheckUtils]: 39: Hoare triple {2572#true} assume !(~space~0 < ~n); {2572#true} is VALID [2022-04-28 04:11:35,271 INFO L290 TraceCheckUtils]: 40: Hoare triple {2572#true} #res := ~space~0; {2572#true} is VALID [2022-04-28 04:11:35,271 INFO L290 TraceCheckUtils]: 41: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,271 INFO L284 TraceCheckUtils]: 42: Hoare quadruple {2572#true} {2598#(<= main_~n~0 1)} #152#return; {2598#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:35,272 INFO L290 TraceCheckUtils]: 43: Hoare triple {2598#(<= main_~n~0 1)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {2598#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:35,272 INFO L272 TraceCheckUtils]: 44: Hoare triple {2598#(<= main_~n~0 1)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {2613#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:11:35,273 INFO L290 TraceCheckUtils]: 45: Hoare triple {2613#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {2614#(= downsweep_~n |downsweep_#in~n|)} is VALID [2022-04-28 04:11:35,273 INFO L290 TraceCheckUtils]: 46: Hoare triple {2614#(= downsweep_~n |downsweep_#in~n|)} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {2615#(and (= downsweep_~n |downsweep_#in~n|) (<= 1 downsweep_~right~1))} is VALID [2022-04-28 04:11:35,274 INFO L290 TraceCheckUtils]: 47: Hoare triple {2615#(and (= downsweep_~n |downsweep_#in~n|) (<= 1 downsweep_~right~1))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {2616#(and (= downsweep_~n |downsweep_#in~n|) (<= 2 downsweep_~n))} is VALID [2022-04-28 04:11:35,274 INFO L290 TraceCheckUtils]: 48: Hoare triple {2616#(and (= downsweep_~n |downsweep_#in~n|) (<= 2 downsweep_~n))} assume !(~right~1 < ~n); {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:35,275 INFO L290 TraceCheckUtils]: 49: Hoare triple {2617#(<= 2 |downsweep_#in~n|)} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:35,275 INFO L290 TraceCheckUtils]: 50: Hoare triple {2617#(<= 2 |downsweep_#in~n|)} assume !(~space > 0); {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:35,275 INFO L290 TraceCheckUtils]: 51: Hoare triple {2617#(<= 2 |downsweep_#in~n|)} assume true; {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:35,276 INFO L284 TraceCheckUtils]: 52: Hoare quadruple {2617#(<= 2 |downsweep_#in~n|)} {2598#(<= main_~n~0 1)} #154#return; {2573#false} is VALID [2022-04-28 04:11:35,276 INFO L272 TraceCheckUtils]: 53: Hoare triple {2573#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {2573#false} is VALID [2022-04-28 04:11:35,276 INFO L290 TraceCheckUtils]: 54: Hoare triple {2573#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {2573#false} is VALID [2022-04-28 04:11:35,276 INFO L290 TraceCheckUtils]: 55: Hoare triple {2573#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {2573#false} is VALID [2022-04-28 04:11:35,276 INFO L272 TraceCheckUtils]: 56: Hoare triple {2573#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {2573#false} is VALID [2022-04-28 04:11:35,277 INFO L290 TraceCheckUtils]: 57: Hoare triple {2573#false} ~cond := #in~cond; {2573#false} is VALID [2022-04-28 04:11:35,277 INFO L290 TraceCheckUtils]: 58: Hoare triple {2573#false} assume 0 == ~cond; {2573#false} is VALID [2022-04-28 04:11:35,277 INFO L290 TraceCheckUtils]: 59: Hoare triple {2573#false} assume !false; {2573#false} is VALID [2022-04-28 04:11:35,277 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2022-04-28 04:11:35,278 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:11:35,278 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1263334184] [2022-04-28 04:11:35,278 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1263334184] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:11:35,278 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [46534181] [2022-04-28 04:11:35,278 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:11:35,278 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:11:35,279 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:11:35,279 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:11:35,313 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Waiting until timeout for monitored process [2022-04-28 04:11:35,354 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:11:35,354 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:11:35,355 INFO L263 TraceCheckSpWp]: Trace formula consists of 261 conjuncts, 9 conjunts are in the unsatisfiable core [2022-04-28 04:11:35,368 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:35,369 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:11:35,681 INFO L272 TraceCheckUtils]: 0: Hoare triple {2572#true} call ULTIMATE.init(); {2572#true} is VALID [2022-04-28 04:11:35,681 INFO L290 TraceCheckUtils]: 1: Hoare triple {2572#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {2572#true} is VALID [2022-04-28 04:11:35,681 INFO L290 TraceCheckUtils]: 2: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,681 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2572#true} {2572#true} #160#return; {2572#true} is VALID [2022-04-28 04:11:35,681 INFO L272 TraceCheckUtils]: 4: Hoare triple {2572#true} call #t~ret20 := main(); {2572#true} is VALID [2022-04-28 04:11:35,682 INFO L290 TraceCheckUtils]: 5: Hoare triple {2572#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {2572#true} is VALID [2022-04-28 04:11:35,682 INFO L272 TraceCheckUtils]: 6: Hoare triple {2572#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {2572#true} is VALID [2022-04-28 04:11:35,682 INFO L290 TraceCheckUtils]: 7: Hoare triple {2572#true} ~cond := #in~cond; {2572#true} is VALID [2022-04-28 04:11:35,682 INFO L290 TraceCheckUtils]: 8: Hoare triple {2572#true} assume !(0 == ~cond); {2572#true} is VALID [2022-04-28 04:11:35,682 INFO L290 TraceCheckUtils]: 9: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,682 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2572#true} {2572#true} #142#return; {2572#true} is VALID [2022-04-28 04:11:35,682 INFO L272 TraceCheckUtils]: 11: Hoare triple {2572#true} call #t~ret14 := is_pow2(~n~0); {2572#true} is VALID [2022-04-28 04:11:35,682 INFO L290 TraceCheckUtils]: 12: Hoare triple {2572#true} ~x := #in~x; {2572#true} is VALID [2022-04-28 04:11:35,682 INFO L290 TraceCheckUtils]: 13: Hoare triple {2572#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {2572#true} is VALID [2022-04-28 04:11:35,682 INFO L290 TraceCheckUtils]: 14: Hoare triple {2572#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {2572#true} is VALID [2022-04-28 04:11:35,682 INFO L290 TraceCheckUtils]: 15: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,682 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2572#true} {2572#true} #144#return; {2572#true} is VALID [2022-04-28 04:11:35,682 INFO L290 TraceCheckUtils]: 17: Hoare triple {2572#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {2572#true} is VALID [2022-04-28 04:11:35,683 INFO L272 TraceCheckUtils]: 18: Hoare triple {2572#true} call assume_abort_if_not(#t~ret14); {2572#true} is VALID [2022-04-28 04:11:35,683 INFO L290 TraceCheckUtils]: 19: Hoare triple {2572#true} ~cond := #in~cond; {2572#true} is VALID [2022-04-28 04:11:35,683 INFO L290 TraceCheckUtils]: 20: Hoare triple {2572#true} assume !(0 == ~cond); {2572#true} is VALID [2022-04-28 04:11:35,683 INFO L290 TraceCheckUtils]: 21: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,683 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {2572#true} {2572#true} #146#return; {2572#true} is VALID [2022-04-28 04:11:35,683 INFO L290 TraceCheckUtils]: 23: Hoare triple {2572#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {2572#true} is VALID [2022-04-28 04:11:35,683 INFO L272 TraceCheckUtils]: 24: Hoare triple {2572#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {2572#true} is VALID [2022-04-28 04:11:35,683 INFO L290 TraceCheckUtils]: 25: Hoare triple {2572#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2572#true} is VALID [2022-04-28 04:11:35,683 INFO L290 TraceCheckUtils]: 26: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,683 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {2572#true} {2572#true} #148#return; {2572#true} is VALID [2022-04-28 04:11:35,683 INFO L290 TraceCheckUtils]: 28: Hoare triple {2572#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {2572#true} is VALID [2022-04-28 04:11:35,683 INFO L272 TraceCheckUtils]: 29: Hoare triple {2572#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {2572#true} is VALID [2022-04-28 04:11:35,684 INFO L290 TraceCheckUtils]: 30: Hoare triple {2572#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2572#true} is VALID [2022-04-28 04:11:35,684 INFO L290 TraceCheckUtils]: 31: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:35,684 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {2572#true} {2572#true} #150#return; {2572#true} is VALID [2022-04-28 04:11:35,684 INFO L290 TraceCheckUtils]: 33: Hoare triple {2572#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {2572#true} is VALID [2022-04-28 04:11:35,684 INFO L290 TraceCheckUtils]: 34: Hoare triple {2572#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {2572#true} is VALID [2022-04-28 04:11:35,684 INFO L290 TraceCheckUtils]: 35: Hoare triple {2572#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {2572#true} is VALID [2022-04-28 04:11:35,684 INFO L290 TraceCheckUtils]: 36: Hoare triple {2572#true} assume !(~i~1 < ~n~0); {2572#true} is VALID [2022-04-28 04:11:35,684 INFO L272 TraceCheckUtils]: 37: Hoare triple {2572#true} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {2572#true} is VALID [2022-04-28 04:11:35,687 INFO L290 TraceCheckUtils]: 38: Hoare triple {2572#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {2735#(and (<= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:11:35,687 INFO L290 TraceCheckUtils]: 39: Hoare triple {2735#(and (<= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} assume !(~space~0 < ~n); {2739#(<= |upsweep_#in~n| 1)} is VALID [2022-04-28 04:11:35,688 INFO L290 TraceCheckUtils]: 40: Hoare triple {2739#(<= |upsweep_#in~n| 1)} #res := ~space~0; {2739#(<= |upsweep_#in~n| 1)} is VALID [2022-04-28 04:11:35,688 INFO L290 TraceCheckUtils]: 41: Hoare triple {2739#(<= |upsweep_#in~n| 1)} assume true; {2739#(<= |upsweep_#in~n| 1)} is VALID [2022-04-28 04:11:35,689 INFO L284 TraceCheckUtils]: 42: Hoare quadruple {2739#(<= |upsweep_#in~n| 1)} {2572#true} #152#return; {2598#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:35,689 INFO L290 TraceCheckUtils]: 43: Hoare triple {2598#(<= main_~n~0 1)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {2598#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:35,689 INFO L272 TraceCheckUtils]: 44: Hoare triple {2598#(<= main_~n~0 1)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {2572#true} is VALID [2022-04-28 04:11:35,690 INFO L290 TraceCheckUtils]: 45: Hoare triple {2572#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {2758#(<= downsweep_~n |downsweep_#in~n|)} is VALID [2022-04-28 04:11:35,690 INFO L290 TraceCheckUtils]: 46: Hoare triple {2758#(<= downsweep_~n |downsweep_#in~n|)} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {2762#(and (<= downsweep_~n |downsweep_#in~n|) (< 0 (div (+ downsweep_~right~1 1) 2)))} is VALID [2022-04-28 04:11:35,691 INFO L290 TraceCheckUtils]: 47: Hoare triple {2762#(and (<= downsweep_~n |downsweep_#in~n|) (< 0 (div (+ downsweep_~right~1 1) 2)))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:35,691 INFO L290 TraceCheckUtils]: 48: Hoare triple {2617#(<= 2 |downsweep_#in~n|)} assume !(~right~1 < ~n); {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:35,692 INFO L290 TraceCheckUtils]: 49: Hoare triple {2617#(<= 2 |downsweep_#in~n|)} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:35,692 INFO L290 TraceCheckUtils]: 50: Hoare triple {2617#(<= 2 |downsweep_#in~n|)} assume !(~space > 0); {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:35,692 INFO L290 TraceCheckUtils]: 51: Hoare triple {2617#(<= 2 |downsweep_#in~n|)} assume true; {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:35,693 INFO L284 TraceCheckUtils]: 52: Hoare quadruple {2617#(<= 2 |downsweep_#in~n|)} {2598#(<= main_~n~0 1)} #154#return; {2573#false} is VALID [2022-04-28 04:11:35,693 INFO L272 TraceCheckUtils]: 53: Hoare triple {2573#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {2573#false} is VALID [2022-04-28 04:11:35,693 INFO L290 TraceCheckUtils]: 54: Hoare triple {2573#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {2573#false} is VALID [2022-04-28 04:11:35,693 INFO L290 TraceCheckUtils]: 55: Hoare triple {2573#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {2573#false} is VALID [2022-04-28 04:11:35,693 INFO L272 TraceCheckUtils]: 56: Hoare triple {2573#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {2573#false} is VALID [2022-04-28 04:11:35,693 INFO L290 TraceCheckUtils]: 57: Hoare triple {2573#false} ~cond := #in~cond; {2573#false} is VALID [2022-04-28 04:11:35,693 INFO L290 TraceCheckUtils]: 58: Hoare triple {2573#false} assume 0 == ~cond; {2573#false} is VALID [2022-04-28 04:11:35,693 INFO L290 TraceCheckUtils]: 59: Hoare triple {2573#false} assume !false; {2573#false} is VALID [2022-04-28 04:11:35,694 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-04-28 04:11:35,694 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:11:36,620 INFO L290 TraceCheckUtils]: 59: Hoare triple {2573#false} assume !false; {2573#false} is VALID [2022-04-28 04:11:36,621 INFO L290 TraceCheckUtils]: 58: Hoare triple {2573#false} assume 0 == ~cond; {2573#false} is VALID [2022-04-28 04:11:36,621 INFO L290 TraceCheckUtils]: 57: Hoare triple {2573#false} ~cond := #in~cond; {2573#false} is VALID [2022-04-28 04:11:36,621 INFO L272 TraceCheckUtils]: 56: Hoare triple {2573#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {2573#false} is VALID [2022-04-28 04:11:36,621 INFO L290 TraceCheckUtils]: 55: Hoare triple {2573#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {2573#false} is VALID [2022-04-28 04:11:36,621 INFO L290 TraceCheckUtils]: 54: Hoare triple {2573#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {2573#false} is VALID [2022-04-28 04:11:36,621 INFO L272 TraceCheckUtils]: 53: Hoare triple {2573#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {2573#false} is VALID [2022-04-28 04:11:36,623 INFO L284 TraceCheckUtils]: 52: Hoare quadruple {2617#(<= 2 |downsweep_#in~n|)} {2598#(<= main_~n~0 1)} #154#return; {2573#false} is VALID [2022-04-28 04:11:36,623 INFO L290 TraceCheckUtils]: 51: Hoare triple {2617#(<= 2 |downsweep_#in~n|)} assume true; {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:36,624 INFO L290 TraceCheckUtils]: 50: Hoare triple {2617#(<= 2 |downsweep_#in~n|)} assume !(~space > 0); {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:36,624 INFO L290 TraceCheckUtils]: 49: Hoare triple {2617#(<= 2 |downsweep_#in~n|)} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:36,624 INFO L290 TraceCheckUtils]: 48: Hoare triple {2617#(<= 2 |downsweep_#in~n|)} assume !(~right~1 < ~n); {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:36,625 INFO L290 TraceCheckUtils]: 47: Hoare triple {2841#(or (<= 2 |downsweep_#in~n|) (not (< downsweep_~right~1 downsweep_~n)))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {2617#(<= 2 |downsweep_#in~n|)} is VALID [2022-04-28 04:11:36,626 INFO L290 TraceCheckUtils]: 46: Hoare triple {2845#(or (<= 2 |downsweep_#in~n|) (<= (div (+ (- 1) (* (- 1) downsweep_~n)) (- 2)) 1))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {2841#(or (<= 2 |downsweep_#in~n|) (not (< downsweep_~right~1 downsweep_~n)))} is VALID [2022-04-28 04:11:36,627 INFO L290 TraceCheckUtils]: 45: Hoare triple {2572#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {2845#(or (<= 2 |downsweep_#in~n|) (<= (div (+ (- 1) (* (- 1) downsweep_~n)) (- 2)) 1))} is VALID [2022-04-28 04:11:36,627 INFO L272 TraceCheckUtils]: 44: Hoare triple {2598#(<= main_~n~0 1)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {2572#true} is VALID [2022-04-28 04:11:36,628 INFO L290 TraceCheckUtils]: 43: Hoare triple {2598#(<= main_~n~0 1)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {2598#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:36,629 INFO L284 TraceCheckUtils]: 42: Hoare quadruple {2739#(<= |upsweep_#in~n| 1)} {2572#true} #152#return; {2598#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:36,629 INFO L290 TraceCheckUtils]: 41: Hoare triple {2739#(<= |upsweep_#in~n| 1)} assume true; {2739#(<= |upsweep_#in~n| 1)} is VALID [2022-04-28 04:11:36,630 INFO L290 TraceCheckUtils]: 40: Hoare triple {2739#(<= |upsweep_#in~n| 1)} #res := ~space~0; {2739#(<= |upsweep_#in~n| 1)} is VALID [2022-04-28 04:11:36,630 INFO L290 TraceCheckUtils]: 39: Hoare triple {2867#(or (< upsweep_~space~0 upsweep_~n) (<= |upsweep_#in~n| 1))} assume !(~space~0 < ~n); {2739#(<= |upsweep_#in~n| 1)} is VALID [2022-04-28 04:11:36,631 INFO L290 TraceCheckUtils]: 38: Hoare triple {2572#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {2867#(or (< upsweep_~space~0 upsweep_~n) (<= |upsweep_#in~n| 1))} is VALID [2022-04-28 04:11:36,631 INFO L272 TraceCheckUtils]: 37: Hoare triple {2572#true} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {2572#true} is VALID [2022-04-28 04:11:36,631 INFO L290 TraceCheckUtils]: 36: Hoare triple {2572#true} assume !(~i~1 < ~n~0); {2572#true} is VALID [2022-04-28 04:11:36,631 INFO L290 TraceCheckUtils]: 35: Hoare triple {2572#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {2572#true} is VALID [2022-04-28 04:11:36,631 INFO L290 TraceCheckUtils]: 34: Hoare triple {2572#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {2572#true} is VALID [2022-04-28 04:11:36,631 INFO L290 TraceCheckUtils]: 33: Hoare triple {2572#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {2572#true} is VALID [2022-04-28 04:11:36,631 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {2572#true} {2572#true} #150#return; {2572#true} is VALID [2022-04-28 04:11:36,631 INFO L290 TraceCheckUtils]: 31: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:36,632 INFO L290 TraceCheckUtils]: 30: Hoare triple {2572#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2572#true} is VALID [2022-04-28 04:11:36,632 INFO L272 TraceCheckUtils]: 29: Hoare triple {2572#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {2572#true} is VALID [2022-04-28 04:11:36,632 INFO L290 TraceCheckUtils]: 28: Hoare triple {2572#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {2572#true} is VALID [2022-04-28 04:11:36,632 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {2572#true} {2572#true} #148#return; {2572#true} is VALID [2022-04-28 04:11:36,632 INFO L290 TraceCheckUtils]: 26: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:36,632 INFO L290 TraceCheckUtils]: 25: Hoare triple {2572#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2572#true} is VALID [2022-04-28 04:11:36,632 INFO L272 TraceCheckUtils]: 24: Hoare triple {2572#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {2572#true} is VALID [2022-04-28 04:11:36,632 INFO L290 TraceCheckUtils]: 23: Hoare triple {2572#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {2572#true} is VALID [2022-04-28 04:11:36,632 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {2572#true} {2572#true} #146#return; {2572#true} is VALID [2022-04-28 04:11:36,632 INFO L290 TraceCheckUtils]: 21: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:36,633 INFO L290 TraceCheckUtils]: 20: Hoare triple {2572#true} assume !(0 == ~cond); {2572#true} is VALID [2022-04-28 04:11:36,633 INFO L290 TraceCheckUtils]: 19: Hoare triple {2572#true} ~cond := #in~cond; {2572#true} is VALID [2022-04-28 04:11:36,633 INFO L272 TraceCheckUtils]: 18: Hoare triple {2572#true} call assume_abort_if_not(#t~ret14); {2572#true} is VALID [2022-04-28 04:11:36,633 INFO L290 TraceCheckUtils]: 17: Hoare triple {2572#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {2572#true} is VALID [2022-04-28 04:11:36,633 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2572#true} {2572#true} #144#return; {2572#true} is VALID [2022-04-28 04:11:36,633 INFO L290 TraceCheckUtils]: 15: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:36,633 INFO L290 TraceCheckUtils]: 14: Hoare triple {2572#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {2572#true} is VALID [2022-04-28 04:11:36,633 INFO L290 TraceCheckUtils]: 13: Hoare triple {2572#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {2572#true} is VALID [2022-04-28 04:11:36,633 INFO L290 TraceCheckUtils]: 12: Hoare triple {2572#true} ~x := #in~x; {2572#true} is VALID [2022-04-28 04:11:36,633 INFO L272 TraceCheckUtils]: 11: Hoare triple {2572#true} call #t~ret14 := is_pow2(~n~0); {2572#true} is VALID [2022-04-28 04:11:36,634 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2572#true} {2572#true} #142#return; {2572#true} is VALID [2022-04-28 04:11:36,634 INFO L290 TraceCheckUtils]: 9: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:36,634 INFO L290 TraceCheckUtils]: 8: Hoare triple {2572#true} assume !(0 == ~cond); {2572#true} is VALID [2022-04-28 04:11:36,634 INFO L290 TraceCheckUtils]: 7: Hoare triple {2572#true} ~cond := #in~cond; {2572#true} is VALID [2022-04-28 04:11:36,634 INFO L272 TraceCheckUtils]: 6: Hoare triple {2572#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {2572#true} is VALID [2022-04-28 04:11:36,634 INFO L290 TraceCheckUtils]: 5: Hoare triple {2572#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {2572#true} is VALID [2022-04-28 04:11:36,634 INFO L272 TraceCheckUtils]: 4: Hoare triple {2572#true} call #t~ret20 := main(); {2572#true} is VALID [2022-04-28 04:11:36,634 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2572#true} {2572#true} #160#return; {2572#true} is VALID [2022-04-28 04:11:36,634 INFO L290 TraceCheckUtils]: 2: Hoare triple {2572#true} assume true; {2572#true} is VALID [2022-04-28 04:11:36,634 INFO L290 TraceCheckUtils]: 1: Hoare triple {2572#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {2572#true} is VALID [2022-04-28 04:11:36,635 INFO L272 TraceCheckUtils]: 0: Hoare triple {2572#true} call ULTIMATE.init(); {2572#true} is VALID [2022-04-28 04:11:36,635 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 2 proven. 0 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-04-28 04:11:36,635 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [46534181] provided 1 perfect and 1 imperfect interpolant sequences [2022-04-28 04:11:36,635 INFO L184 FreeRefinementEngine]: Found 1 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:11:36,635 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [11, 8] total 18 [2022-04-28 04:11:36,635 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:11:36,636 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [983461974] [2022-04-28 04:11:36,636 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [983461974] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:11:36,636 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:11:36,636 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [] total 8 [2022-04-28 04:11:36,636 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [212758271] [2022-04-28 04:11:36,636 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:11:36,636 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 4.5) internal successors, (36), 8 states have internal predecessors, (36), 3 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) Word has length 60 [2022-04-28 04:11:36,637 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:11:36,637 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 8 states, 8 states have (on average 4.5) internal successors, (36), 8 states have internal predecessors, (36), 3 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:11:36,689 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:11:36,689 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 8 states [2022-04-28 04:11:36,689 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:11:36,690 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2022-04-28 04:11:36,690 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=54, Invalid=252, Unknown=0, NotChecked=0, Total=306 [2022-04-28 04:11:36,690 INFO L87 Difference]: Start difference. First operand 80 states and 95 transitions. Second operand has 8 states, 8 states have (on average 4.5) internal successors, (36), 8 states have internal predecessors, (36), 3 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:11:47,889 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:11:47,889 INFO L93 Difference]: Finished difference Result 93 states and 108 transitions. [2022-04-28 04:11:47,889 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2022-04-28 04:11:47,890 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 4.5) internal successors, (36), 8 states have internal predecessors, (36), 3 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) Word has length 60 [2022-04-28 04:11:47,890 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:11:47,890 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 4.5) internal successors, (36), 8 states have internal predecessors, (36), 3 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:11:47,891 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 99 transitions. [2022-04-28 04:11:47,892 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 4.5) internal successors, (36), 8 states have internal predecessors, (36), 3 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:11:47,893 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 99 transitions. [2022-04-28 04:11:47,893 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 8 states and 99 transitions. [2022-04-28 04:11:47,969 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 99 edges. 99 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:11:47,972 INFO L225 Difference]: With dead ends: 93 [2022-04-28 04:11:47,972 INFO L226 Difference]: Without dead ends: 81 [2022-04-28 04:11:47,972 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 144 GetRequests, 124 SyntacticMatches, 3 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 62 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=62, Invalid=280, Unknown=0, NotChecked=0, Total=342 [2022-04-28 04:11:47,973 INFO L413 NwaCegarLoop]: 65 mSDtfsCounter, 16 mSDsluCounter, 270 mSDsCounter, 0 mSdLazyCounter, 95 mSolverCounterSat, 3 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 17 SdHoareTripleChecker+Valid, 335 SdHoareTripleChecker+Invalid, 98 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 3 IncrementalHoareTripleChecker+Valid, 95 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-28 04:11:47,973 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [17 Valid, 335 Invalid, 98 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [3 Valid, 95 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-28 04:11:47,973 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 81 states. [2022-04-28 04:11:48,020 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 81 to 80. [2022-04-28 04:11:48,020 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:11:48,021 INFO L82 GeneralOperation]: Start isEquivalent. First operand 81 states. Second operand has 80 states, 54 states have (on average 1.2037037037037037) internal successors, (65), 57 states have internal predecessors, (65), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (15), 11 states have call predecessors, (15), 11 states have call successors, (15) [2022-04-28 04:11:48,021 INFO L74 IsIncluded]: Start isIncluded. First operand 81 states. Second operand has 80 states, 54 states have (on average 1.2037037037037037) internal successors, (65), 57 states have internal predecessors, (65), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (15), 11 states have call predecessors, (15), 11 states have call successors, (15) [2022-04-28 04:11:48,021 INFO L87 Difference]: Start difference. First operand 81 states. Second operand has 80 states, 54 states have (on average 1.2037037037037037) internal successors, (65), 57 states have internal predecessors, (65), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (15), 11 states have call predecessors, (15), 11 states have call successors, (15) [2022-04-28 04:11:48,032 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:11:48,032 INFO L93 Difference]: Finished difference Result 81 states and 95 transitions. [2022-04-28 04:11:48,032 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 95 transitions. [2022-04-28 04:11:48,033 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:11:48,033 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:11:48,034 INFO L74 IsIncluded]: Start isIncluded. First operand has 80 states, 54 states have (on average 1.2037037037037037) internal successors, (65), 57 states have internal predecessors, (65), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (15), 11 states have call predecessors, (15), 11 states have call successors, (15) Second operand 81 states. [2022-04-28 04:11:48,034 INFO L87 Difference]: Start difference. First operand has 80 states, 54 states have (on average 1.2037037037037037) internal successors, (65), 57 states have internal predecessors, (65), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (15), 11 states have call predecessors, (15), 11 states have call successors, (15) Second operand 81 states. [2022-04-28 04:11:48,037 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:11:48,037 INFO L93 Difference]: Finished difference Result 81 states and 95 transitions. [2022-04-28 04:11:48,037 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 95 transitions. [2022-04-28 04:11:48,037 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:11:48,037 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:11:48,037 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:11:48,037 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:11:48,038 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 80 states, 54 states have (on average 1.2037037037037037) internal successors, (65), 57 states have internal predecessors, (65), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (15), 11 states have call predecessors, (15), 11 states have call successors, (15) [2022-04-28 04:11:48,040 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 80 states to 80 states and 94 transitions. [2022-04-28 04:11:48,040 INFO L78 Accepts]: Start accepts. Automaton has 80 states and 94 transitions. Word has length 60 [2022-04-28 04:11:48,040 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:11:48,040 INFO L495 AbstractCegarLoop]: Abstraction has 80 states and 94 transitions. [2022-04-28 04:11:48,040 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 8 states, 8 states have (on average 4.5) internal successors, (36), 8 states have internal predecessors, (36), 3 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:11:48,040 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 80 states and 94 transitions. [2022-04-28 04:11:48,151 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 94 edges. 94 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:11:48,152 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 94 transitions. [2022-04-28 04:11:48,152 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 63 [2022-04-28 04:11:48,152 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:11:48,152 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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] [2022-04-28 04:11:48,168 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Forceful destruction successful, exit code 0 [2022-04-28 04:11:48,357 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4,4 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:11:48,358 INFO L420 AbstractCegarLoop]: === Iteration 6 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:11:48,358 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:11:48,358 INFO L85 PathProgramCache]: Analyzing trace with hash 589581770, now seen corresponding path program 1 times [2022-04-28 04:11:48,358 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:11:48,358 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [597218787] [2022-04-28 04:11:48,358 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:11:48,358 INFO L85 PathProgramCache]: Analyzing trace with hash 589581770, now seen corresponding path program 2 times [2022-04-28 04:11:48,359 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:11:48,359 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1018757554] [2022-04-28 04:11:48,359 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:11:48,359 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:11:48,383 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:48,437 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:11:48,439 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:48,442 INFO L290 TraceCheckUtils]: 0: Hoare triple {3536#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {3494#true} is VALID [2022-04-28 04:11:48,442 INFO L290 TraceCheckUtils]: 1: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,442 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {3494#true} {3494#true} #160#return; {3494#true} is VALID [2022-04-28 04:11:48,442 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:11:48,443 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:48,445 INFO L290 TraceCheckUtils]: 0: Hoare triple {3494#true} ~cond := #in~cond; {3494#true} is VALID [2022-04-28 04:11:48,445 INFO L290 TraceCheckUtils]: 1: Hoare triple {3494#true} assume !(0 == ~cond); {3494#true} is VALID [2022-04-28 04:11:48,445 INFO L290 TraceCheckUtils]: 2: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,445 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3494#true} {3494#true} #142#return; {3494#true} is VALID [2022-04-28 04:11:48,445 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:11:48,446 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:48,450 INFO L290 TraceCheckUtils]: 0: Hoare triple {3494#true} ~x := #in~x; {3494#true} is VALID [2022-04-28 04:11:48,450 INFO L290 TraceCheckUtils]: 1: Hoare triple {3494#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {3494#true} is VALID [2022-04-28 04:11:48,450 INFO L290 TraceCheckUtils]: 2: Hoare triple {3494#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {3494#true} is VALID [2022-04-28 04:11:48,450 INFO L290 TraceCheckUtils]: 3: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,450 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {3494#true} {3494#true} #144#return; {3494#true} is VALID [2022-04-28 04:11:48,451 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:11:48,451 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:48,453 INFO L290 TraceCheckUtils]: 0: Hoare triple {3494#true} ~cond := #in~cond; {3494#true} is VALID [2022-04-28 04:11:48,453 INFO L290 TraceCheckUtils]: 1: Hoare triple {3494#true} assume !(0 == ~cond); {3494#true} is VALID [2022-04-28 04:11:48,453 INFO L290 TraceCheckUtils]: 2: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,453 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3494#true} {3494#true} #146#return; {3494#true} is VALID [2022-04-28 04:11:48,458 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:11:48,458 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:48,461 INFO L290 TraceCheckUtils]: 0: Hoare triple {3537#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {3494#true} is VALID [2022-04-28 04:11:48,461 INFO L290 TraceCheckUtils]: 1: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,461 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {3494#true} {3494#true} #148#return; {3494#true} is VALID [2022-04-28 04:11:48,461 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:11:48,462 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:48,464 INFO L290 TraceCheckUtils]: 0: Hoare triple {3537#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {3494#true} is VALID [2022-04-28 04:11:48,464 INFO L290 TraceCheckUtils]: 1: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,464 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {3494#true} {3494#true} #150#return; {3494#true} is VALID [2022-04-28 04:11:48,465 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 37 [2022-04-28 04:11:48,467 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:48,484 INFO L290 TraceCheckUtils]: 0: Hoare triple {3537#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {3494#true} is VALID [2022-04-28 04:11:48,485 INFO L290 TraceCheckUtils]: 1: Hoare triple {3494#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {3538#(<= (+ upsweep_~left~0 2) upsweep_~n)} is VALID [2022-04-28 04:11:48,485 INFO L290 TraceCheckUtils]: 2: Hoare triple {3538#(<= (+ upsweep_~left~0 2) upsweep_~n)} assume !(~left~0 < ~n); {3495#false} is VALID [2022-04-28 04:11:48,485 INFO L290 TraceCheckUtils]: 3: Hoare triple {3495#false} ~space~0 := 2 * ~space~0; {3495#false} is VALID [2022-04-28 04:11:48,485 INFO L290 TraceCheckUtils]: 4: Hoare triple {3495#false} assume !(~space~0 < ~n); {3495#false} is VALID [2022-04-28 04:11:48,485 INFO L290 TraceCheckUtils]: 5: Hoare triple {3495#false} #res := ~space~0; {3495#false} is VALID [2022-04-28 04:11:48,485 INFO L290 TraceCheckUtils]: 6: Hoare triple {3495#false} assume true; {3495#false} is VALID [2022-04-28 04:11:48,485 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {3495#false} {3520#(<= 1 main_~n~0)} #152#return; {3495#false} is VALID [2022-04-28 04:11:48,486 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 47 [2022-04-28 04:11:48,489 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:48,491 INFO L290 TraceCheckUtils]: 0: Hoare triple {3537#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {3494#true} is VALID [2022-04-28 04:11:48,492 INFO L290 TraceCheckUtils]: 1: Hoare triple {3494#true} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {3494#true} is VALID [2022-04-28 04:11:48,492 INFO L290 TraceCheckUtils]: 2: Hoare triple {3494#true} assume !(~right~1 < ~n); {3494#true} is VALID [2022-04-28 04:11:48,492 INFO L290 TraceCheckUtils]: 3: Hoare triple {3494#true} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {3494#true} is VALID [2022-04-28 04:11:48,492 INFO L290 TraceCheckUtils]: 4: Hoare triple {3494#true} assume !(~space > 0); {3494#true} is VALID [2022-04-28 04:11:48,492 INFO L290 TraceCheckUtils]: 5: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,492 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {3494#true} {3495#false} #154#return; {3495#false} is VALID [2022-04-28 04:11:48,492 INFO L272 TraceCheckUtils]: 0: Hoare triple {3494#true} call ULTIMATE.init(); {3536#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:11:48,493 INFO L290 TraceCheckUtils]: 1: Hoare triple {3536#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {3494#true} is VALID [2022-04-28 04:11:48,493 INFO L290 TraceCheckUtils]: 2: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,493 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3494#true} {3494#true} #160#return; {3494#true} is VALID [2022-04-28 04:11:48,493 INFO L272 TraceCheckUtils]: 4: Hoare triple {3494#true} call #t~ret20 := main(); {3494#true} is VALID [2022-04-28 04:11:48,493 INFO L290 TraceCheckUtils]: 5: Hoare triple {3494#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {3494#true} is VALID [2022-04-28 04:11:48,493 INFO L272 TraceCheckUtils]: 6: Hoare triple {3494#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {3494#true} is VALID [2022-04-28 04:11:48,493 INFO L290 TraceCheckUtils]: 7: Hoare triple {3494#true} ~cond := #in~cond; {3494#true} is VALID [2022-04-28 04:11:48,493 INFO L290 TraceCheckUtils]: 8: Hoare triple {3494#true} assume !(0 == ~cond); {3494#true} is VALID [2022-04-28 04:11:48,493 INFO L290 TraceCheckUtils]: 9: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,493 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3494#true} {3494#true} #142#return; {3494#true} is VALID [2022-04-28 04:11:48,493 INFO L272 TraceCheckUtils]: 11: Hoare triple {3494#true} call #t~ret14 := is_pow2(~n~0); {3494#true} is VALID [2022-04-28 04:11:48,493 INFO L290 TraceCheckUtils]: 12: Hoare triple {3494#true} ~x := #in~x; {3494#true} is VALID [2022-04-28 04:11:48,493 INFO L290 TraceCheckUtils]: 13: Hoare triple {3494#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {3494#true} is VALID [2022-04-28 04:11:48,493 INFO L290 TraceCheckUtils]: 14: Hoare triple {3494#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {3494#true} is VALID [2022-04-28 04:11:48,494 INFO L290 TraceCheckUtils]: 15: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,494 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3494#true} {3494#true} #144#return; {3494#true} is VALID [2022-04-28 04:11:48,494 INFO L290 TraceCheckUtils]: 17: Hoare triple {3494#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {3494#true} is VALID [2022-04-28 04:11:48,494 INFO L272 TraceCheckUtils]: 18: Hoare triple {3494#true} call assume_abort_if_not(#t~ret14); {3494#true} is VALID [2022-04-28 04:11:48,494 INFO L290 TraceCheckUtils]: 19: Hoare triple {3494#true} ~cond := #in~cond; {3494#true} is VALID [2022-04-28 04:11:48,494 INFO L290 TraceCheckUtils]: 20: Hoare triple {3494#true} assume !(0 == ~cond); {3494#true} is VALID [2022-04-28 04:11:48,494 INFO L290 TraceCheckUtils]: 21: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,494 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {3494#true} {3494#true} #146#return; {3494#true} is VALID [2022-04-28 04:11:48,494 INFO L290 TraceCheckUtils]: 23: Hoare triple {3494#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {3494#true} is VALID [2022-04-28 04:11:48,495 INFO L272 TraceCheckUtils]: 24: Hoare triple {3494#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {3537#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:11:48,495 INFO L290 TraceCheckUtils]: 25: Hoare triple {3537#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {3494#true} is VALID [2022-04-28 04:11:48,495 INFO L290 TraceCheckUtils]: 26: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,495 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {3494#true} {3494#true} #148#return; {3494#true} is VALID [2022-04-28 04:11:48,495 INFO L290 TraceCheckUtils]: 28: Hoare triple {3494#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {3494#true} is VALID [2022-04-28 04:11:48,496 INFO L272 TraceCheckUtils]: 29: Hoare triple {3494#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {3537#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:11:48,496 INFO L290 TraceCheckUtils]: 30: Hoare triple {3537#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {3494#true} is VALID [2022-04-28 04:11:48,496 INFO L290 TraceCheckUtils]: 31: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,496 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {3494#true} {3494#true} #150#return; {3494#true} is VALID [2022-04-28 04:11:48,496 INFO L290 TraceCheckUtils]: 33: Hoare triple {3494#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {3518#(= main_~i~1 0)} is VALID [2022-04-28 04:11:48,497 INFO L290 TraceCheckUtils]: 34: Hoare triple {3518#(= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {3519#(and (<= (+ main_~i~1 1) main_~n~0) (= main_~i~1 0))} is VALID [2022-04-28 04:11:48,497 INFO L290 TraceCheckUtils]: 35: Hoare triple {3519#(and (<= (+ main_~i~1 1) main_~n~0) (= main_~i~1 0))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {3520#(<= 1 main_~n~0)} is VALID [2022-04-28 04:11:48,498 INFO L290 TraceCheckUtils]: 36: Hoare triple {3520#(<= 1 main_~n~0)} assume !(~i~1 < ~n~0); {3520#(<= 1 main_~n~0)} is VALID [2022-04-28 04:11:48,498 INFO L272 TraceCheckUtils]: 37: Hoare triple {3520#(<= 1 main_~n~0)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {3537#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:11:48,498 INFO L290 TraceCheckUtils]: 38: Hoare triple {3537#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {3494#true} is VALID [2022-04-28 04:11:48,499 INFO L290 TraceCheckUtils]: 39: Hoare triple {3494#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {3538#(<= (+ upsweep_~left~0 2) upsweep_~n)} is VALID [2022-04-28 04:11:48,499 INFO L290 TraceCheckUtils]: 40: Hoare triple {3538#(<= (+ upsweep_~left~0 2) upsweep_~n)} assume !(~left~0 < ~n); {3495#false} is VALID [2022-04-28 04:11:48,499 INFO L290 TraceCheckUtils]: 41: Hoare triple {3495#false} ~space~0 := 2 * ~space~0; {3495#false} is VALID [2022-04-28 04:11:48,499 INFO L290 TraceCheckUtils]: 42: Hoare triple {3495#false} assume !(~space~0 < ~n); {3495#false} is VALID [2022-04-28 04:11:48,499 INFO L290 TraceCheckUtils]: 43: Hoare triple {3495#false} #res := ~space~0; {3495#false} is VALID [2022-04-28 04:11:48,499 INFO L290 TraceCheckUtils]: 44: Hoare triple {3495#false} assume true; {3495#false} is VALID [2022-04-28 04:11:48,500 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {3495#false} {3520#(<= 1 main_~n~0)} #152#return; {3495#false} is VALID [2022-04-28 04:11:48,500 INFO L290 TraceCheckUtils]: 46: Hoare triple {3495#false} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {3495#false} is VALID [2022-04-28 04:11:48,500 INFO L272 TraceCheckUtils]: 47: Hoare triple {3495#false} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {3537#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:11:48,500 INFO L290 TraceCheckUtils]: 48: Hoare triple {3537#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {3494#true} is VALID [2022-04-28 04:11:48,500 INFO L290 TraceCheckUtils]: 49: Hoare triple {3494#true} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {3494#true} is VALID [2022-04-28 04:11:48,500 INFO L290 TraceCheckUtils]: 50: Hoare triple {3494#true} assume !(~right~1 < ~n); {3494#true} is VALID [2022-04-28 04:11:48,500 INFO L290 TraceCheckUtils]: 51: Hoare triple {3494#true} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {3494#true} is VALID [2022-04-28 04:11:48,500 INFO L290 TraceCheckUtils]: 52: Hoare triple {3494#true} assume !(~space > 0); {3494#true} is VALID [2022-04-28 04:11:48,500 INFO L290 TraceCheckUtils]: 53: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,500 INFO L284 TraceCheckUtils]: 54: Hoare quadruple {3494#true} {3495#false} #154#return; {3495#false} is VALID [2022-04-28 04:11:48,500 INFO L272 TraceCheckUtils]: 55: Hoare triple {3495#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {3495#false} is VALID [2022-04-28 04:11:48,500 INFO L290 TraceCheckUtils]: 56: Hoare triple {3495#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {3495#false} is VALID [2022-04-28 04:11:48,500 INFO L290 TraceCheckUtils]: 57: Hoare triple {3495#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {3495#false} is VALID [2022-04-28 04:11:48,500 INFO L272 TraceCheckUtils]: 58: Hoare triple {3495#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {3495#false} is VALID [2022-04-28 04:11:48,501 INFO L290 TraceCheckUtils]: 59: Hoare triple {3495#false} ~cond := #in~cond; {3495#false} is VALID [2022-04-28 04:11:48,501 INFO L290 TraceCheckUtils]: 60: Hoare triple {3495#false} assume 0 == ~cond; {3495#false} is VALID [2022-04-28 04:11:48,501 INFO L290 TraceCheckUtils]: 61: Hoare triple {3495#false} assume !false; {3495#false} is VALID [2022-04-28 04:11:48,501 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 1 proven. 1 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-04-28 04:11:48,501 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:11:48,501 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1018757554] [2022-04-28 04:11:48,501 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1018757554] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:11:48,501 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [563328314] [2022-04-28 04:11:48,501 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:11:48,501 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:11:48,502 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:11:48,502 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:11:48,503 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Waiting until timeout for monitored process [2022-04-28 04:11:48,568 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:11:48,568 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:11:48,569 INFO L263 TraceCheckSpWp]: Trace formula consists of 254 conjuncts, 7 conjunts are in the unsatisfiable core [2022-04-28 04:11:48,584 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:48,587 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:11:48,790 INFO L272 TraceCheckUtils]: 0: Hoare triple {3494#true} call ULTIMATE.init(); {3494#true} is VALID [2022-04-28 04:11:48,790 INFO L290 TraceCheckUtils]: 1: Hoare triple {3494#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {3494#true} is VALID [2022-04-28 04:11:48,790 INFO L290 TraceCheckUtils]: 2: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,791 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3494#true} {3494#true} #160#return; {3494#true} is VALID [2022-04-28 04:11:48,791 INFO L272 TraceCheckUtils]: 4: Hoare triple {3494#true} call #t~ret20 := main(); {3494#true} is VALID [2022-04-28 04:11:48,791 INFO L290 TraceCheckUtils]: 5: Hoare triple {3494#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {3494#true} is VALID [2022-04-28 04:11:48,791 INFO L272 TraceCheckUtils]: 6: Hoare triple {3494#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {3494#true} is VALID [2022-04-28 04:11:48,791 INFO L290 TraceCheckUtils]: 7: Hoare triple {3494#true} ~cond := #in~cond; {3494#true} is VALID [2022-04-28 04:11:48,791 INFO L290 TraceCheckUtils]: 8: Hoare triple {3494#true} assume !(0 == ~cond); {3494#true} is VALID [2022-04-28 04:11:48,791 INFO L290 TraceCheckUtils]: 9: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,791 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3494#true} {3494#true} #142#return; {3494#true} is VALID [2022-04-28 04:11:48,791 INFO L272 TraceCheckUtils]: 11: Hoare triple {3494#true} call #t~ret14 := is_pow2(~n~0); {3494#true} is VALID [2022-04-28 04:11:48,791 INFO L290 TraceCheckUtils]: 12: Hoare triple {3494#true} ~x := #in~x; {3494#true} is VALID [2022-04-28 04:11:48,791 INFO L290 TraceCheckUtils]: 13: Hoare triple {3494#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {3494#true} is VALID [2022-04-28 04:11:48,791 INFO L290 TraceCheckUtils]: 14: Hoare triple {3494#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {3494#true} is VALID [2022-04-28 04:11:48,791 INFO L290 TraceCheckUtils]: 15: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,791 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3494#true} {3494#true} #144#return; {3494#true} is VALID [2022-04-28 04:11:48,792 INFO L290 TraceCheckUtils]: 17: Hoare triple {3494#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {3494#true} is VALID [2022-04-28 04:11:48,792 INFO L272 TraceCheckUtils]: 18: Hoare triple {3494#true} call assume_abort_if_not(#t~ret14); {3494#true} is VALID [2022-04-28 04:11:48,792 INFO L290 TraceCheckUtils]: 19: Hoare triple {3494#true} ~cond := #in~cond; {3494#true} is VALID [2022-04-28 04:11:48,792 INFO L290 TraceCheckUtils]: 20: Hoare triple {3494#true} assume !(0 == ~cond); {3494#true} is VALID [2022-04-28 04:11:48,792 INFO L290 TraceCheckUtils]: 21: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,792 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {3494#true} {3494#true} #146#return; {3494#true} is VALID [2022-04-28 04:11:48,792 INFO L290 TraceCheckUtils]: 23: Hoare triple {3494#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {3494#true} is VALID [2022-04-28 04:11:48,792 INFO L272 TraceCheckUtils]: 24: Hoare triple {3494#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {3494#true} is VALID [2022-04-28 04:11:48,792 INFO L290 TraceCheckUtils]: 25: Hoare triple {3494#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {3494#true} is VALID [2022-04-28 04:11:48,792 INFO L290 TraceCheckUtils]: 26: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,792 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {3494#true} {3494#true} #148#return; {3494#true} is VALID [2022-04-28 04:11:48,792 INFO L290 TraceCheckUtils]: 28: Hoare triple {3494#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {3494#true} is VALID [2022-04-28 04:11:48,792 INFO L272 TraceCheckUtils]: 29: Hoare triple {3494#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {3494#true} is VALID [2022-04-28 04:11:48,793 INFO L290 TraceCheckUtils]: 30: Hoare triple {3494#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {3494#true} is VALID [2022-04-28 04:11:48,793 INFO L290 TraceCheckUtils]: 31: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:48,793 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {3494#true} {3494#true} #150#return; {3494#true} is VALID [2022-04-28 04:11:48,793 INFO L290 TraceCheckUtils]: 33: Hoare triple {3494#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {3641#(<= main_~i~1 0)} is VALID [2022-04-28 04:11:48,793 INFO L290 TraceCheckUtils]: 34: Hoare triple {3641#(<= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {3641#(<= main_~i~1 0)} is VALID [2022-04-28 04:11:48,794 INFO L290 TraceCheckUtils]: 35: Hoare triple {3641#(<= main_~i~1 0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {3648#(<= main_~i~1 1)} is VALID [2022-04-28 04:11:48,794 INFO L290 TraceCheckUtils]: 36: Hoare triple {3648#(<= main_~i~1 1)} assume !(~i~1 < ~n~0); {3652#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:48,795 INFO L272 TraceCheckUtils]: 37: Hoare triple {3652#(<= main_~n~0 1)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {3494#true} is VALID [2022-04-28 04:11:48,795 INFO L290 TraceCheckUtils]: 38: Hoare triple {3494#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {3659#(and (<= upsweep_~n |upsweep_#in~n|) (<= 1 upsweep_~space~0))} is VALID [2022-04-28 04:11:48,796 INFO L290 TraceCheckUtils]: 39: Hoare triple {3659#(and (<= upsweep_~n |upsweep_#in~n|) (<= 1 upsweep_~space~0))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {3663#(< 1 |upsweep_#in~n|)} is VALID [2022-04-28 04:11:48,796 INFO L290 TraceCheckUtils]: 40: Hoare triple {3663#(< 1 |upsweep_#in~n|)} assume !(~left~0 < ~n); {3663#(< 1 |upsweep_#in~n|)} is VALID [2022-04-28 04:11:48,796 INFO L290 TraceCheckUtils]: 41: Hoare triple {3663#(< 1 |upsweep_#in~n|)} ~space~0 := 2 * ~space~0; {3663#(< 1 |upsweep_#in~n|)} is VALID [2022-04-28 04:11:48,796 INFO L290 TraceCheckUtils]: 42: Hoare triple {3663#(< 1 |upsweep_#in~n|)} assume !(~space~0 < ~n); {3663#(< 1 |upsweep_#in~n|)} is VALID [2022-04-28 04:11:48,797 INFO L290 TraceCheckUtils]: 43: Hoare triple {3663#(< 1 |upsweep_#in~n|)} #res := ~space~0; {3663#(< 1 |upsweep_#in~n|)} is VALID [2022-04-28 04:11:48,797 INFO L290 TraceCheckUtils]: 44: Hoare triple {3663#(< 1 |upsweep_#in~n|)} assume true; {3663#(< 1 |upsweep_#in~n|)} is VALID [2022-04-28 04:11:48,798 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {3663#(< 1 |upsweep_#in~n|)} {3652#(<= main_~n~0 1)} #152#return; {3495#false} is VALID [2022-04-28 04:11:48,798 INFO L290 TraceCheckUtils]: 46: Hoare triple {3495#false} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {3495#false} is VALID [2022-04-28 04:11:48,798 INFO L272 TraceCheckUtils]: 47: Hoare triple {3495#false} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {3495#false} is VALID [2022-04-28 04:11:48,798 INFO L290 TraceCheckUtils]: 48: Hoare triple {3495#false} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {3495#false} is VALID [2022-04-28 04:11:48,798 INFO L290 TraceCheckUtils]: 49: Hoare triple {3495#false} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {3495#false} is VALID [2022-04-28 04:11:48,798 INFO L290 TraceCheckUtils]: 50: Hoare triple {3495#false} assume !(~right~1 < ~n); {3495#false} is VALID [2022-04-28 04:11:48,798 INFO L290 TraceCheckUtils]: 51: Hoare triple {3495#false} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {3495#false} is VALID [2022-04-28 04:11:48,798 INFO L290 TraceCheckUtils]: 52: Hoare triple {3495#false} assume !(~space > 0); {3495#false} is VALID [2022-04-28 04:11:48,798 INFO L290 TraceCheckUtils]: 53: Hoare triple {3495#false} assume true; {3495#false} is VALID [2022-04-28 04:11:48,798 INFO L284 TraceCheckUtils]: 54: Hoare quadruple {3495#false} {3495#false} #154#return; {3495#false} is VALID [2022-04-28 04:11:48,798 INFO L272 TraceCheckUtils]: 55: Hoare triple {3495#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {3495#false} is VALID [2022-04-28 04:11:48,799 INFO L290 TraceCheckUtils]: 56: Hoare triple {3495#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {3495#false} is VALID [2022-04-28 04:11:48,799 INFO L290 TraceCheckUtils]: 57: Hoare triple {3495#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {3495#false} is VALID [2022-04-28 04:11:48,799 INFO L272 TraceCheckUtils]: 58: Hoare triple {3495#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {3495#false} is VALID [2022-04-28 04:11:48,799 INFO L290 TraceCheckUtils]: 59: Hoare triple {3495#false} ~cond := #in~cond; {3495#false} is VALID [2022-04-28 04:11:48,799 INFO L290 TraceCheckUtils]: 60: Hoare triple {3495#false} assume 0 == ~cond; {3495#false} is VALID [2022-04-28 04:11:48,799 INFO L290 TraceCheckUtils]: 61: Hoare triple {3495#false} assume !false; {3495#false} is VALID [2022-04-28 04:11:48,799 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-04-28 04:11:48,799 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:11:49,105 INFO L290 TraceCheckUtils]: 61: Hoare triple {3495#false} assume !false; {3495#false} is VALID [2022-04-28 04:11:49,106 INFO L290 TraceCheckUtils]: 60: Hoare triple {3495#false} assume 0 == ~cond; {3495#false} is VALID [2022-04-28 04:11:49,106 INFO L290 TraceCheckUtils]: 59: Hoare triple {3495#false} ~cond := #in~cond; {3495#false} is VALID [2022-04-28 04:11:49,106 INFO L272 TraceCheckUtils]: 58: Hoare triple {3495#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {3495#false} is VALID [2022-04-28 04:11:49,106 INFO L290 TraceCheckUtils]: 57: Hoare triple {3495#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {3495#false} is VALID [2022-04-28 04:11:49,106 INFO L290 TraceCheckUtils]: 56: Hoare triple {3495#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {3495#false} is VALID [2022-04-28 04:11:49,106 INFO L272 TraceCheckUtils]: 55: Hoare triple {3495#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {3495#false} is VALID [2022-04-28 04:11:49,106 INFO L284 TraceCheckUtils]: 54: Hoare quadruple {3494#true} {3495#false} #154#return; {3495#false} is VALID [2022-04-28 04:11:49,106 INFO L290 TraceCheckUtils]: 53: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:49,106 INFO L290 TraceCheckUtils]: 52: Hoare triple {3494#true} assume !(~space > 0); {3494#true} is VALID [2022-04-28 04:11:49,106 INFO L290 TraceCheckUtils]: 51: Hoare triple {3494#true} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {3494#true} is VALID [2022-04-28 04:11:49,106 INFO L290 TraceCheckUtils]: 50: Hoare triple {3494#true} assume !(~right~1 < ~n); {3494#true} is VALID [2022-04-28 04:11:49,107 INFO L290 TraceCheckUtils]: 49: Hoare triple {3494#true} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {3494#true} is VALID [2022-04-28 04:11:49,107 INFO L290 TraceCheckUtils]: 48: Hoare triple {3494#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {3494#true} is VALID [2022-04-28 04:11:49,107 INFO L272 TraceCheckUtils]: 47: Hoare triple {3495#false} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {3494#true} is VALID [2022-04-28 04:11:49,107 INFO L290 TraceCheckUtils]: 46: Hoare triple {3495#false} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {3495#false} is VALID [2022-04-28 04:11:49,107 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {3663#(< 1 |upsweep_#in~n|)} {3652#(<= main_~n~0 1)} #152#return; {3495#false} is VALID [2022-04-28 04:11:49,108 INFO L290 TraceCheckUtils]: 44: Hoare triple {3663#(< 1 |upsweep_#in~n|)} assume true; {3663#(< 1 |upsweep_#in~n|)} is VALID [2022-04-28 04:11:49,108 INFO L290 TraceCheckUtils]: 43: Hoare triple {3663#(< 1 |upsweep_#in~n|)} #res := ~space~0; {3663#(< 1 |upsweep_#in~n|)} is VALID [2022-04-28 04:11:49,108 INFO L290 TraceCheckUtils]: 42: Hoare triple {3663#(< 1 |upsweep_#in~n|)} assume !(~space~0 < ~n); {3663#(< 1 |upsweep_#in~n|)} is VALID [2022-04-28 04:11:49,109 INFO L290 TraceCheckUtils]: 41: Hoare triple {3663#(< 1 |upsweep_#in~n|)} ~space~0 := 2 * ~space~0; {3663#(< 1 |upsweep_#in~n|)} is VALID [2022-04-28 04:11:49,109 INFO L290 TraceCheckUtils]: 40: Hoare triple {3663#(< 1 |upsweep_#in~n|)} assume !(~left~0 < ~n); {3663#(< 1 |upsweep_#in~n|)} is VALID [2022-04-28 04:11:49,109 INFO L290 TraceCheckUtils]: 39: Hoare triple {3799#(or (< 1 |upsweep_#in~n|) (not (< upsweep_~space~0 upsweep_~n)))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {3663#(< 1 |upsweep_#in~n|)} is VALID [2022-04-28 04:11:49,110 INFO L290 TraceCheckUtils]: 38: Hoare triple {3494#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {3799#(or (< 1 |upsweep_#in~n|) (not (< upsweep_~space~0 upsweep_~n)))} is VALID [2022-04-28 04:11:49,110 INFO L272 TraceCheckUtils]: 37: Hoare triple {3652#(<= main_~n~0 1)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {3494#true} is VALID [2022-04-28 04:11:49,110 INFO L290 TraceCheckUtils]: 36: Hoare triple {3648#(<= main_~i~1 1)} assume !(~i~1 < ~n~0); {3652#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:49,111 INFO L290 TraceCheckUtils]: 35: Hoare triple {3641#(<= main_~i~1 0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {3648#(<= main_~i~1 1)} is VALID [2022-04-28 04:11:49,111 INFO L290 TraceCheckUtils]: 34: Hoare triple {3641#(<= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {3641#(<= main_~i~1 0)} is VALID [2022-04-28 04:11:49,111 INFO L290 TraceCheckUtils]: 33: Hoare triple {3494#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {3641#(<= main_~i~1 0)} is VALID [2022-04-28 04:11:49,111 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {3494#true} {3494#true} #150#return; {3494#true} is VALID [2022-04-28 04:11:49,111 INFO L290 TraceCheckUtils]: 31: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:49,111 INFO L290 TraceCheckUtils]: 30: Hoare triple {3494#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {3494#true} is VALID [2022-04-28 04:11:49,112 INFO L272 TraceCheckUtils]: 29: Hoare triple {3494#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {3494#true} is VALID [2022-04-28 04:11:49,112 INFO L290 TraceCheckUtils]: 28: Hoare triple {3494#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {3494#true} is VALID [2022-04-28 04:11:49,112 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {3494#true} {3494#true} #148#return; {3494#true} is VALID [2022-04-28 04:11:49,112 INFO L290 TraceCheckUtils]: 26: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:49,112 INFO L290 TraceCheckUtils]: 25: Hoare triple {3494#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {3494#true} is VALID [2022-04-28 04:11:49,112 INFO L272 TraceCheckUtils]: 24: Hoare triple {3494#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {3494#true} is VALID [2022-04-28 04:11:49,112 INFO L290 TraceCheckUtils]: 23: Hoare triple {3494#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {3494#true} is VALID [2022-04-28 04:11:49,112 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {3494#true} {3494#true} #146#return; {3494#true} is VALID [2022-04-28 04:11:49,112 INFO L290 TraceCheckUtils]: 21: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:49,112 INFO L290 TraceCheckUtils]: 20: Hoare triple {3494#true} assume !(0 == ~cond); {3494#true} is VALID [2022-04-28 04:11:49,112 INFO L290 TraceCheckUtils]: 19: Hoare triple {3494#true} ~cond := #in~cond; {3494#true} is VALID [2022-04-28 04:11:49,112 INFO L272 TraceCheckUtils]: 18: Hoare triple {3494#true} call assume_abort_if_not(#t~ret14); {3494#true} is VALID [2022-04-28 04:11:49,112 INFO L290 TraceCheckUtils]: 17: Hoare triple {3494#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {3494#true} is VALID [2022-04-28 04:11:49,112 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3494#true} {3494#true} #144#return; {3494#true} is VALID [2022-04-28 04:11:49,113 INFO L290 TraceCheckUtils]: 15: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:49,113 INFO L290 TraceCheckUtils]: 14: Hoare triple {3494#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {3494#true} is VALID [2022-04-28 04:11:49,113 INFO L290 TraceCheckUtils]: 13: Hoare triple {3494#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {3494#true} is VALID [2022-04-28 04:11:49,113 INFO L290 TraceCheckUtils]: 12: Hoare triple {3494#true} ~x := #in~x; {3494#true} is VALID [2022-04-28 04:11:49,113 INFO L272 TraceCheckUtils]: 11: Hoare triple {3494#true} call #t~ret14 := is_pow2(~n~0); {3494#true} is VALID [2022-04-28 04:11:49,113 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3494#true} {3494#true} #142#return; {3494#true} is VALID [2022-04-28 04:11:49,113 INFO L290 TraceCheckUtils]: 9: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:49,113 INFO L290 TraceCheckUtils]: 8: Hoare triple {3494#true} assume !(0 == ~cond); {3494#true} is VALID [2022-04-28 04:11:49,113 INFO L290 TraceCheckUtils]: 7: Hoare triple {3494#true} ~cond := #in~cond; {3494#true} is VALID [2022-04-28 04:11:49,113 INFO L272 TraceCheckUtils]: 6: Hoare triple {3494#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {3494#true} is VALID [2022-04-28 04:11:49,113 INFO L290 TraceCheckUtils]: 5: Hoare triple {3494#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {3494#true} is VALID [2022-04-28 04:11:49,113 INFO L272 TraceCheckUtils]: 4: Hoare triple {3494#true} call #t~ret20 := main(); {3494#true} is VALID [2022-04-28 04:11:49,114 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3494#true} {3494#true} #160#return; {3494#true} is VALID [2022-04-28 04:11:49,114 INFO L290 TraceCheckUtils]: 2: Hoare triple {3494#true} assume true; {3494#true} is VALID [2022-04-28 04:11:49,114 INFO L290 TraceCheckUtils]: 1: Hoare triple {3494#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {3494#true} is VALID [2022-04-28 04:11:49,114 INFO L272 TraceCheckUtils]: 0: Hoare triple {3494#true} call ULTIMATE.init(); {3494#true} is VALID [2022-04-28 04:11:49,114 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 1 proven. 1 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-04-28 04:11:49,114 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [563328314] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:11:49,114 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-28 04:11:49,114 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 7, 7] total 14 [2022-04-28 04:11:49,114 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:11:49,114 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [597218787] [2022-04-28 04:11:49,115 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [597218787] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:11:49,115 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:11:49,115 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [] total 8 [2022-04-28 04:11:49,115 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [179550916] [2022-04-28 04:11:49,115 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:11:49,115 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 4.75) internal successors, (38), 6 states have internal predecessors, (38), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) Word has length 62 [2022-04-28 04:11:49,115 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:11:49,116 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 8 states, 8 states have (on average 4.75) internal successors, (38), 6 states have internal predecessors, (38), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:11:49,150 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:11:49,150 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 8 states [2022-04-28 04:11:49,151 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:11:49,151 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2022-04-28 04:11:49,151 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=34, Invalid=148, Unknown=0, NotChecked=0, Total=182 [2022-04-28 04:11:49,151 INFO L87 Difference]: Start difference. First operand 80 states and 94 transitions. Second operand has 8 states, 8 states have (on average 4.75) internal successors, (38), 6 states have internal predecessors, (38), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:11:53,356 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:11:55,485 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.13s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:11:56,126 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:11:56,127 INFO L93 Difference]: Finished difference Result 125 states and 148 transitions. [2022-04-28 04:11:56,127 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-04-28 04:11:56,127 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 4.75) internal successors, (38), 6 states have internal predecessors, (38), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) Word has length 62 [2022-04-28 04:11:56,127 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:11:56,127 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 4.75) internal successors, (38), 6 states have internal predecessors, (38), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:11:56,128 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 106 transitions. [2022-04-28 04:11:56,129 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 4.75) internal successors, (38), 6 states have internal predecessors, (38), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:11:56,130 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 106 transitions. [2022-04-28 04:11:56,130 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 10 states and 106 transitions. [2022-04-28 04:11:56,215 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 106 edges. 106 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:11:56,216 INFO L225 Difference]: With dead ends: 125 [2022-04-28 04:11:56,216 INFO L226 Difference]: Without dead ends: 83 [2022-04-28 04:11:56,217 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 153 GetRequests, 135 SyntacticMatches, 0 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 44 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=69, Invalid=311, Unknown=0, NotChecked=0, Total=380 [2022-04-28 04:11:56,217 INFO L413 NwaCegarLoop]: 48 mSDtfsCounter, 76 mSDsluCounter, 6 mSDsCounter, 0 mSdLazyCounter, 229 mSolverCounterSat, 39 mSolverCounterUnsat, 2 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 4.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 77 SdHoareTripleChecker+Valid, 54 SdHoareTripleChecker+Invalid, 270 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 39 IncrementalHoareTripleChecker+Valid, 229 IncrementalHoareTripleChecker+Invalid, 2 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 4.4s IncrementalHoareTripleChecker+Time [2022-04-28 04:11:56,217 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [77 Valid, 54 Invalid, 270 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [39 Valid, 229 Invalid, 2 Unknown, 0 Unchecked, 4.4s Time] [2022-04-28 04:11:56,218 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 83 states. [2022-04-28 04:11:56,285 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 83 to 81. [2022-04-28 04:11:56,285 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:11:56,285 INFO L82 GeneralOperation]: Start isEquivalent. First operand 83 states. Second operand has 81 states, 55 states have (on average 1.2) internal successors, (66), 58 states have internal predecessors, (66), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (15), 11 states have call predecessors, (15), 11 states have call successors, (15) [2022-04-28 04:11:56,285 INFO L74 IsIncluded]: Start isIncluded. First operand 83 states. Second operand has 81 states, 55 states have (on average 1.2) internal successors, (66), 58 states have internal predecessors, (66), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (15), 11 states have call predecessors, (15), 11 states have call successors, (15) [2022-04-28 04:11:56,286 INFO L87 Difference]: Start difference. First operand 83 states. Second operand has 81 states, 55 states have (on average 1.2) internal successors, (66), 58 states have internal predecessors, (66), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (15), 11 states have call predecessors, (15), 11 states have call successors, (15) [2022-04-28 04:11:56,287 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:11:56,288 INFO L93 Difference]: Finished difference Result 83 states and 97 transitions. [2022-04-28 04:11:56,288 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 97 transitions. [2022-04-28 04:11:56,288 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:11:56,288 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:11:56,288 INFO L74 IsIncluded]: Start isIncluded. First operand has 81 states, 55 states have (on average 1.2) internal successors, (66), 58 states have internal predecessors, (66), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (15), 11 states have call predecessors, (15), 11 states have call successors, (15) Second operand 83 states. [2022-04-28 04:11:56,288 INFO L87 Difference]: Start difference. First operand has 81 states, 55 states have (on average 1.2) internal successors, (66), 58 states have internal predecessors, (66), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (15), 11 states have call predecessors, (15), 11 states have call successors, (15) Second operand 83 states. [2022-04-28 04:11:56,290 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:11:56,290 INFO L93 Difference]: Finished difference Result 83 states and 97 transitions. [2022-04-28 04:11:56,290 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 97 transitions. [2022-04-28 04:11:56,290 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:11:56,290 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:11:56,290 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:11:56,290 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:11:56,291 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 81 states, 55 states have (on average 1.2) internal successors, (66), 58 states have internal predecessors, (66), 14 states have call successors, (14), 11 states have call predecessors, (14), 11 states have return successors, (15), 11 states have call predecessors, (15), 11 states have call successors, (15) [2022-04-28 04:11:56,292 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 81 states to 81 states and 95 transitions. [2022-04-28 04:11:56,292 INFO L78 Accepts]: Start accepts. Automaton has 81 states and 95 transitions. Word has length 62 [2022-04-28 04:11:56,292 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:11:56,293 INFO L495 AbstractCegarLoop]: Abstraction has 81 states and 95 transitions. [2022-04-28 04:11:56,293 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 8 states, 8 states have (on average 4.75) internal successors, (38), 6 states have internal predecessors, (38), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:11:56,293 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 81 states and 95 transitions. [2022-04-28 04:11:56,421 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 95 edges. 95 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:11:56,421 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 95 transitions. [2022-04-28 04:11:56,422 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 65 [2022-04-28 04:11:56,422 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:11:56,422 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1] [2022-04-28 04:11:56,439 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Forceful destruction successful, exit code 0 [2022-04-28 04:11:56,627 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5,5 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:11:56,627 INFO L420 AbstractCegarLoop]: === Iteration 7 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:11:56,628 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:11:56,628 INFO L85 PathProgramCache]: Analyzing trace with hash 2146675487, now seen corresponding path program 1 times [2022-04-28 04:11:56,628 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:11:56,628 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1879921584] [2022-04-28 04:11:56,628 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:11:56,628 INFO L85 PathProgramCache]: Analyzing trace with hash 2146675487, now seen corresponding path program 2 times [2022-04-28 04:11:56,628 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:11:56,628 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1037275020] [2022-04-28 04:11:56,628 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:11:56,629 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:11:56,649 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:56,710 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:11:56,712 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:56,734 INFO L290 TraceCheckUtils]: 0: Hoare triple {4550#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {4507#true} is VALID [2022-04-28 04:11:56,735 INFO L290 TraceCheckUtils]: 1: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,735 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {4507#true} {4507#true} #160#return; {4507#true} is VALID [2022-04-28 04:11:56,735 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:11:56,735 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:56,737 INFO L290 TraceCheckUtils]: 0: Hoare triple {4507#true} ~cond := #in~cond; {4507#true} is VALID [2022-04-28 04:11:56,737 INFO L290 TraceCheckUtils]: 1: Hoare triple {4507#true} assume !(0 == ~cond); {4507#true} is VALID [2022-04-28 04:11:56,737 INFO L290 TraceCheckUtils]: 2: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,737 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4507#true} {4507#true} #142#return; {4507#true} is VALID [2022-04-28 04:11:56,737 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:11:56,738 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:56,740 INFO L290 TraceCheckUtils]: 0: Hoare triple {4507#true} ~x := #in~x; {4507#true} is VALID [2022-04-28 04:11:56,740 INFO L290 TraceCheckUtils]: 1: Hoare triple {4507#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {4507#true} is VALID [2022-04-28 04:11:56,740 INFO L290 TraceCheckUtils]: 2: Hoare triple {4507#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {4507#true} is VALID [2022-04-28 04:11:56,740 INFO L290 TraceCheckUtils]: 3: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,740 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {4507#true} {4507#true} #144#return; {4507#true} is VALID [2022-04-28 04:11:56,741 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:11:56,741 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:56,742 INFO L290 TraceCheckUtils]: 0: Hoare triple {4507#true} ~cond := #in~cond; {4507#true} is VALID [2022-04-28 04:11:56,742 INFO L290 TraceCheckUtils]: 1: Hoare triple {4507#true} assume !(0 == ~cond); {4507#true} is VALID [2022-04-28 04:11:56,742 INFO L290 TraceCheckUtils]: 2: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,742 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4507#true} {4507#true} #146#return; {4507#true} is VALID [2022-04-28 04:11:56,750 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:11:56,751 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:56,753 INFO L290 TraceCheckUtils]: 0: Hoare triple {4551#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {4507#true} is VALID [2022-04-28 04:11:56,753 INFO L290 TraceCheckUtils]: 1: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,753 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {4507#true} {4507#true} #148#return; {4507#true} is VALID [2022-04-28 04:11:56,754 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:11:56,754 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:56,756 INFO L290 TraceCheckUtils]: 0: Hoare triple {4551#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {4507#true} is VALID [2022-04-28 04:11:56,756 INFO L290 TraceCheckUtils]: 1: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,756 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {4507#true} {4507#true} #150#return; {4507#true} is VALID [2022-04-28 04:11:56,756 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 37 [2022-04-28 04:11:56,757 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:56,759 INFO L290 TraceCheckUtils]: 0: Hoare triple {4551#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {4507#true} is VALID [2022-04-28 04:11:56,759 INFO L290 TraceCheckUtils]: 1: Hoare triple {4507#true} assume !(~space~0 < ~n); {4507#true} is VALID [2022-04-28 04:11:56,759 INFO L290 TraceCheckUtils]: 2: Hoare triple {4507#true} #res := ~space~0; {4507#true} is VALID [2022-04-28 04:11:56,759 INFO L290 TraceCheckUtils]: 3: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,760 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {4507#true} {4533#(<= main_~n~0 1)} #152#return; {4533#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:56,760 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 44 [2022-04-28 04:11:56,762 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:56,764 INFO L290 TraceCheckUtils]: 0: Hoare triple {4551#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {4507#true} is VALID [2022-04-28 04:11:56,764 INFO L290 TraceCheckUtils]: 1: Hoare triple {4507#true} assume !(~space > 0); {4507#true} is VALID [2022-04-28 04:11:56,764 INFO L290 TraceCheckUtils]: 2: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,765 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4507#true} {4533#(<= main_~n~0 1)} #154#return; {4533#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:56,765 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 52 [2022-04-28 04:11:56,766 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:56,767 INFO L290 TraceCheckUtils]: 0: Hoare triple {4507#true} ~cond := #in~cond; {4507#true} is VALID [2022-04-28 04:11:56,767 INFO L290 TraceCheckUtils]: 1: Hoare triple {4507#true} assume !(0 == ~cond); {4507#true} is VALID [2022-04-28 04:11:56,767 INFO L290 TraceCheckUtils]: 2: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,768 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4507#true} {4544#(and (<= check_~n 1) (= check_~i~0 0))} #158#return; {4544#(and (<= check_~n 1) (= check_~i~0 0))} is VALID [2022-04-28 04:11:56,768 INFO L272 TraceCheckUtils]: 0: Hoare triple {4507#true} call ULTIMATE.init(); {4550#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:11:56,768 INFO L290 TraceCheckUtils]: 1: Hoare triple {4550#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {4507#true} is VALID [2022-04-28 04:11:56,768 INFO L290 TraceCheckUtils]: 2: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,768 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4507#true} {4507#true} #160#return; {4507#true} is VALID [2022-04-28 04:11:56,769 INFO L272 TraceCheckUtils]: 4: Hoare triple {4507#true} call #t~ret20 := main(); {4507#true} is VALID [2022-04-28 04:11:56,769 INFO L290 TraceCheckUtils]: 5: Hoare triple {4507#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {4507#true} is VALID [2022-04-28 04:11:56,769 INFO L272 TraceCheckUtils]: 6: Hoare triple {4507#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {4507#true} is VALID [2022-04-28 04:11:56,769 INFO L290 TraceCheckUtils]: 7: Hoare triple {4507#true} ~cond := #in~cond; {4507#true} is VALID [2022-04-28 04:11:56,769 INFO L290 TraceCheckUtils]: 8: Hoare triple {4507#true} assume !(0 == ~cond); {4507#true} is VALID [2022-04-28 04:11:56,769 INFO L290 TraceCheckUtils]: 9: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,769 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4507#true} {4507#true} #142#return; {4507#true} is VALID [2022-04-28 04:11:56,769 INFO L272 TraceCheckUtils]: 11: Hoare triple {4507#true} call #t~ret14 := is_pow2(~n~0); {4507#true} is VALID [2022-04-28 04:11:56,769 INFO L290 TraceCheckUtils]: 12: Hoare triple {4507#true} ~x := #in~x; {4507#true} is VALID [2022-04-28 04:11:56,769 INFO L290 TraceCheckUtils]: 13: Hoare triple {4507#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {4507#true} is VALID [2022-04-28 04:11:56,769 INFO L290 TraceCheckUtils]: 14: Hoare triple {4507#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {4507#true} is VALID [2022-04-28 04:11:56,769 INFO L290 TraceCheckUtils]: 15: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,769 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {4507#true} {4507#true} #144#return; {4507#true} is VALID [2022-04-28 04:11:56,769 INFO L290 TraceCheckUtils]: 17: Hoare triple {4507#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {4507#true} is VALID [2022-04-28 04:11:56,770 INFO L272 TraceCheckUtils]: 18: Hoare triple {4507#true} call assume_abort_if_not(#t~ret14); {4507#true} is VALID [2022-04-28 04:11:56,770 INFO L290 TraceCheckUtils]: 19: Hoare triple {4507#true} ~cond := #in~cond; {4507#true} is VALID [2022-04-28 04:11:56,770 INFO L290 TraceCheckUtils]: 20: Hoare triple {4507#true} assume !(0 == ~cond); {4507#true} is VALID [2022-04-28 04:11:56,770 INFO L290 TraceCheckUtils]: 21: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,770 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {4507#true} {4507#true} #146#return; {4507#true} is VALID [2022-04-28 04:11:56,770 INFO L290 TraceCheckUtils]: 23: Hoare triple {4507#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {4507#true} is VALID [2022-04-28 04:11:56,770 INFO L272 TraceCheckUtils]: 24: Hoare triple {4507#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {4551#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:11:56,771 INFO L290 TraceCheckUtils]: 25: Hoare triple {4551#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {4507#true} is VALID [2022-04-28 04:11:56,771 INFO L290 TraceCheckUtils]: 26: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,771 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {4507#true} {4507#true} #148#return; {4507#true} is VALID [2022-04-28 04:11:56,771 INFO L290 TraceCheckUtils]: 28: Hoare triple {4507#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {4507#true} is VALID [2022-04-28 04:11:56,771 INFO L272 TraceCheckUtils]: 29: Hoare triple {4507#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {4551#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:11:56,771 INFO L290 TraceCheckUtils]: 30: Hoare triple {4551#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {4507#true} is VALID [2022-04-28 04:11:56,772 INFO L290 TraceCheckUtils]: 31: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,772 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {4507#true} {4507#true} #150#return; {4507#true} is VALID [2022-04-28 04:11:56,772 INFO L290 TraceCheckUtils]: 33: Hoare triple {4507#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {4531#(= main_~i~1 0)} is VALID [2022-04-28 04:11:56,772 INFO L290 TraceCheckUtils]: 34: Hoare triple {4531#(= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {4531#(= main_~i~1 0)} is VALID [2022-04-28 04:11:56,772 INFO L290 TraceCheckUtils]: 35: Hoare triple {4531#(= main_~i~1 0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {4532#(<= main_~i~1 1)} is VALID [2022-04-28 04:11:56,773 INFO L290 TraceCheckUtils]: 36: Hoare triple {4532#(<= main_~i~1 1)} assume !(~i~1 < ~n~0); {4533#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:56,773 INFO L272 TraceCheckUtils]: 37: Hoare triple {4533#(<= main_~n~0 1)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {4551#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:11:56,773 INFO L290 TraceCheckUtils]: 38: Hoare triple {4551#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {4507#true} is VALID [2022-04-28 04:11:56,773 INFO L290 TraceCheckUtils]: 39: Hoare triple {4507#true} assume !(~space~0 < ~n); {4507#true} is VALID [2022-04-28 04:11:56,774 INFO L290 TraceCheckUtils]: 40: Hoare triple {4507#true} #res := ~space~0; {4507#true} is VALID [2022-04-28 04:11:56,774 INFO L290 TraceCheckUtils]: 41: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,774 INFO L284 TraceCheckUtils]: 42: Hoare quadruple {4507#true} {4533#(<= main_~n~0 1)} #152#return; {4533#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:56,774 INFO L290 TraceCheckUtils]: 43: Hoare triple {4533#(<= main_~n~0 1)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {4533#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:56,775 INFO L272 TraceCheckUtils]: 44: Hoare triple {4533#(<= main_~n~0 1)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {4551#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:11:56,775 INFO L290 TraceCheckUtils]: 45: Hoare triple {4551#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {4507#true} is VALID [2022-04-28 04:11:56,775 INFO L290 TraceCheckUtils]: 46: Hoare triple {4507#true} assume !(~space > 0); {4507#true} is VALID [2022-04-28 04:11:56,775 INFO L290 TraceCheckUtils]: 47: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,776 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {4507#true} {4533#(<= main_~n~0 1)} #154#return; {4533#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:56,776 INFO L272 TraceCheckUtils]: 49: Hoare triple {4533#(<= main_~n~0 1)} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {4543#(<= |check_#in~n| 1)} is VALID [2022-04-28 04:11:56,777 INFO L290 TraceCheckUtils]: 50: Hoare triple {4543#(<= |check_#in~n| 1)} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {4544#(and (<= check_~n 1) (= check_~i~0 0))} is VALID [2022-04-28 04:11:56,777 INFO L290 TraceCheckUtils]: 51: Hoare triple {4544#(and (<= check_~n 1) (= check_~i~0 0))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {4544#(and (<= check_~n 1) (= check_~i~0 0))} is VALID [2022-04-28 04:11:56,777 INFO L272 TraceCheckUtils]: 52: Hoare triple {4544#(and (<= check_~n 1) (= check_~i~0 0))} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {4507#true} is VALID [2022-04-28 04:11:56,777 INFO L290 TraceCheckUtils]: 53: Hoare triple {4507#true} ~cond := #in~cond; {4507#true} is VALID [2022-04-28 04:11:56,777 INFO L290 TraceCheckUtils]: 54: Hoare triple {4507#true} assume !(0 == ~cond); {4507#true} is VALID [2022-04-28 04:11:56,777 INFO L290 TraceCheckUtils]: 55: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:56,778 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {4507#true} {4544#(and (<= check_~n 1) (= check_~i~0 0))} #158#return; {4544#(and (<= check_~n 1) (= check_~i~0 0))} is VALID [2022-04-28 04:11:56,778 INFO L290 TraceCheckUtils]: 57: Hoare triple {4544#(and (<= check_~n 1) (= check_~i~0 0))} havoc #t~mem11;call #t~mem12 := read~int(~a0.base, ~a0.offset + 4 * ~i~0, 4);~sum~0 := ~sum~0 + #t~mem12;havoc #t~mem12; {4544#(and (<= check_~n 1) (= check_~i~0 0))} is VALID [2022-04-28 04:11:56,778 INFO L290 TraceCheckUtils]: 58: Hoare triple {4544#(and (<= check_~n 1) (= check_~i~0 0))} #t~post10 := ~i~0;~i~0 := 1 + #t~post10;havoc #t~post10; {4549#(<= check_~n check_~i~0)} is VALID [2022-04-28 04:11:56,779 INFO L290 TraceCheckUtils]: 59: Hoare triple {4549#(<= check_~n check_~i~0)} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {4508#false} is VALID [2022-04-28 04:11:56,779 INFO L272 TraceCheckUtils]: 60: Hoare triple {4508#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {4508#false} is VALID [2022-04-28 04:11:56,779 INFO L290 TraceCheckUtils]: 61: Hoare triple {4508#false} ~cond := #in~cond; {4508#false} is VALID [2022-04-28 04:11:56,779 INFO L290 TraceCheckUtils]: 62: Hoare triple {4508#false} assume 0 == ~cond; {4508#false} is VALID [2022-04-28 04:11:56,779 INFO L290 TraceCheckUtils]: 63: Hoare triple {4508#false} assume !false; {4508#false} is VALID [2022-04-28 04:11:56,779 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 3 proven. 2 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2022-04-28 04:11:56,779 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:11:56,779 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1037275020] [2022-04-28 04:11:56,779 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1037275020] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:11:56,779 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1113022411] [2022-04-28 04:11:56,780 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:11:56,780 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:11:56,780 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:11:56,781 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:11:56,782 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Waiting until timeout for monitored process [2022-04-28 04:11:56,842 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:11:56,842 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:11:56,843 INFO L263 TraceCheckSpWp]: Trace formula consists of 258 conjuncts, 9 conjunts are in the unsatisfiable core [2022-04-28 04:11:56,855 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:11:56,856 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:11:57,111 INFO L272 TraceCheckUtils]: 0: Hoare triple {4507#true} call ULTIMATE.init(); {4507#true} is VALID [2022-04-28 04:11:57,111 INFO L290 TraceCheckUtils]: 1: Hoare triple {4507#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {4507#true} is VALID [2022-04-28 04:11:57,111 INFO L290 TraceCheckUtils]: 2: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:57,111 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4507#true} {4507#true} #160#return; {4507#true} is VALID [2022-04-28 04:11:57,111 INFO L272 TraceCheckUtils]: 4: Hoare triple {4507#true} call #t~ret20 := main(); {4507#true} is VALID [2022-04-28 04:11:57,112 INFO L290 TraceCheckUtils]: 5: Hoare triple {4507#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {4507#true} is VALID [2022-04-28 04:11:57,112 INFO L272 TraceCheckUtils]: 6: Hoare triple {4507#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {4507#true} is VALID [2022-04-28 04:11:57,112 INFO L290 TraceCheckUtils]: 7: Hoare triple {4507#true} ~cond := #in~cond; {4507#true} is VALID [2022-04-28 04:11:57,112 INFO L290 TraceCheckUtils]: 8: Hoare triple {4507#true} assume !(0 == ~cond); {4507#true} is VALID [2022-04-28 04:11:57,112 INFO L290 TraceCheckUtils]: 9: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:57,112 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4507#true} {4507#true} #142#return; {4507#true} is VALID [2022-04-28 04:11:57,112 INFO L272 TraceCheckUtils]: 11: Hoare triple {4507#true} call #t~ret14 := is_pow2(~n~0); {4507#true} is VALID [2022-04-28 04:11:57,112 INFO L290 TraceCheckUtils]: 12: Hoare triple {4507#true} ~x := #in~x; {4507#true} is VALID [2022-04-28 04:11:57,112 INFO L290 TraceCheckUtils]: 13: Hoare triple {4507#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {4507#true} is VALID [2022-04-28 04:11:57,112 INFO L290 TraceCheckUtils]: 14: Hoare triple {4507#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {4507#true} is VALID [2022-04-28 04:11:57,113 INFO L290 TraceCheckUtils]: 15: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:57,113 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {4507#true} {4507#true} #144#return; {4507#true} is VALID [2022-04-28 04:11:57,113 INFO L290 TraceCheckUtils]: 17: Hoare triple {4507#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {4507#true} is VALID [2022-04-28 04:11:57,113 INFO L272 TraceCheckUtils]: 18: Hoare triple {4507#true} call assume_abort_if_not(#t~ret14); {4507#true} is VALID [2022-04-28 04:11:57,113 INFO L290 TraceCheckUtils]: 19: Hoare triple {4507#true} ~cond := #in~cond; {4507#true} is VALID [2022-04-28 04:11:57,113 INFO L290 TraceCheckUtils]: 20: Hoare triple {4507#true} assume !(0 == ~cond); {4507#true} is VALID [2022-04-28 04:11:57,113 INFO L290 TraceCheckUtils]: 21: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:57,113 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {4507#true} {4507#true} #146#return; {4507#true} is VALID [2022-04-28 04:11:57,113 INFO L290 TraceCheckUtils]: 23: Hoare triple {4507#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {4507#true} is VALID [2022-04-28 04:11:57,113 INFO L272 TraceCheckUtils]: 24: Hoare triple {4507#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {4507#true} is VALID [2022-04-28 04:11:57,114 INFO L290 TraceCheckUtils]: 25: Hoare triple {4507#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {4507#true} is VALID [2022-04-28 04:11:57,114 INFO L290 TraceCheckUtils]: 26: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:57,114 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {4507#true} {4507#true} #148#return; {4507#true} is VALID [2022-04-28 04:11:57,114 INFO L290 TraceCheckUtils]: 28: Hoare triple {4507#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {4507#true} is VALID [2022-04-28 04:11:57,114 INFO L272 TraceCheckUtils]: 29: Hoare triple {4507#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {4507#true} is VALID [2022-04-28 04:11:57,114 INFO L290 TraceCheckUtils]: 30: Hoare triple {4507#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {4507#true} is VALID [2022-04-28 04:11:57,114 INFO L290 TraceCheckUtils]: 31: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:57,114 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {4507#true} {4507#true} #150#return; {4507#true} is VALID [2022-04-28 04:11:57,114 INFO L290 TraceCheckUtils]: 33: Hoare triple {4507#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {4507#true} is VALID [2022-04-28 04:11:57,114 INFO L290 TraceCheckUtils]: 34: Hoare triple {4507#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {4507#true} is VALID [2022-04-28 04:11:57,114 INFO L290 TraceCheckUtils]: 35: Hoare triple {4507#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {4507#true} is VALID [2022-04-28 04:11:57,115 INFO L290 TraceCheckUtils]: 36: Hoare triple {4507#true} assume !(~i~1 < ~n~0); {4507#true} is VALID [2022-04-28 04:11:57,115 INFO L272 TraceCheckUtils]: 37: Hoare triple {4507#true} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {4507#true} is VALID [2022-04-28 04:11:57,115 INFO L290 TraceCheckUtils]: 38: Hoare triple {4507#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {4669#(and (<= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:11:57,116 INFO L290 TraceCheckUtils]: 39: Hoare triple {4669#(and (<= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} assume !(~space~0 < ~n); {4673#(<= |upsweep_#in~n| 1)} is VALID [2022-04-28 04:11:57,116 INFO L290 TraceCheckUtils]: 40: Hoare triple {4673#(<= |upsweep_#in~n| 1)} #res := ~space~0; {4673#(<= |upsweep_#in~n| 1)} is VALID [2022-04-28 04:11:57,116 INFO L290 TraceCheckUtils]: 41: Hoare triple {4673#(<= |upsweep_#in~n| 1)} assume true; {4673#(<= |upsweep_#in~n| 1)} is VALID [2022-04-28 04:11:57,117 INFO L284 TraceCheckUtils]: 42: Hoare quadruple {4673#(<= |upsweep_#in~n| 1)} {4507#true} #152#return; {4533#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:57,118 INFO L290 TraceCheckUtils]: 43: Hoare triple {4533#(<= main_~n~0 1)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {4533#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:57,118 INFO L272 TraceCheckUtils]: 44: Hoare triple {4533#(<= main_~n~0 1)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {4507#true} is VALID [2022-04-28 04:11:57,118 INFO L290 TraceCheckUtils]: 45: Hoare triple {4507#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {4507#true} is VALID [2022-04-28 04:11:57,118 INFO L290 TraceCheckUtils]: 46: Hoare triple {4507#true} assume !(~space > 0); {4507#true} is VALID [2022-04-28 04:11:57,118 INFO L290 TraceCheckUtils]: 47: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:57,118 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {4507#true} {4533#(<= main_~n~0 1)} #154#return; {4533#(<= main_~n~0 1)} is VALID [2022-04-28 04:11:57,119 INFO L272 TraceCheckUtils]: 49: Hoare triple {4533#(<= main_~n~0 1)} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {4543#(<= |check_#in~n| 1)} is VALID [2022-04-28 04:11:57,120 INFO L290 TraceCheckUtils]: 50: Hoare triple {4543#(<= |check_#in~n| 1)} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {4707#(and (<= check_~n 1) (<= 0 check_~i~0))} is VALID [2022-04-28 04:11:57,120 INFO L290 TraceCheckUtils]: 51: Hoare triple {4707#(and (<= check_~n 1) (<= 0 check_~i~0))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {4707#(and (<= check_~n 1) (<= 0 check_~i~0))} is VALID [2022-04-28 04:11:57,120 INFO L272 TraceCheckUtils]: 52: Hoare triple {4707#(and (<= check_~n 1) (<= 0 check_~i~0))} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {4507#true} is VALID [2022-04-28 04:11:57,120 INFO L290 TraceCheckUtils]: 53: Hoare triple {4507#true} ~cond := #in~cond; {4507#true} is VALID [2022-04-28 04:11:57,120 INFO L290 TraceCheckUtils]: 54: Hoare triple {4507#true} assume !(0 == ~cond); {4507#true} is VALID [2022-04-28 04:11:57,120 INFO L290 TraceCheckUtils]: 55: Hoare triple {4507#true} assume true; {4507#true} is VALID [2022-04-28 04:11:57,121 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {4507#true} {4707#(and (<= check_~n 1) (<= 0 check_~i~0))} #158#return; {4707#(and (<= check_~n 1) (<= 0 check_~i~0))} is VALID [2022-04-28 04:11:57,121 INFO L290 TraceCheckUtils]: 57: Hoare triple {4707#(and (<= check_~n 1) (<= 0 check_~i~0))} havoc #t~mem11;call #t~mem12 := read~int(~a0.base, ~a0.offset + 4 * ~i~0, 4);~sum~0 := ~sum~0 + #t~mem12;havoc #t~mem12; {4707#(and (<= check_~n 1) (<= 0 check_~i~0))} is VALID [2022-04-28 04:11:57,122 INFO L290 TraceCheckUtils]: 58: Hoare triple {4707#(and (<= check_~n 1) (<= 0 check_~i~0))} #t~post10 := ~i~0;~i~0 := 1 + #t~post10;havoc #t~post10; {4732#(and (<= check_~n 1) (<= 1 check_~i~0))} is VALID [2022-04-28 04:11:57,122 INFO L290 TraceCheckUtils]: 59: Hoare triple {4732#(and (<= check_~n 1) (<= 1 check_~i~0))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {4508#false} is VALID [2022-04-28 04:11:57,123 INFO L272 TraceCheckUtils]: 60: Hoare triple {4508#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {4508#false} is VALID [2022-04-28 04:11:57,123 INFO L290 TraceCheckUtils]: 61: Hoare triple {4508#false} ~cond := #in~cond; {4508#false} is VALID [2022-04-28 04:11:57,123 INFO L290 TraceCheckUtils]: 62: Hoare triple {4508#false} assume 0 == ~cond; {4508#false} is VALID [2022-04-28 04:11:57,123 INFO L290 TraceCheckUtils]: 63: Hoare triple {4508#false} assume !false; {4508#false} is VALID [2022-04-28 04:11:57,123 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-04-28 04:11:57,123 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-28 04:11:57,123 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1113022411] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:11:57,123 INFO L184 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-04-28 04:11:57,123 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [10] total 14 [2022-04-28 04:11:57,123 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:11:57,124 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1879921584] [2022-04-28 04:11:57,124 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1879921584] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:11:57,124 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:11:57,124 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [] total 8 [2022-04-28 04:11:57,124 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [355240692] [2022-04-28 04:11:57,124 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:11:57,124 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 4.75) internal successors, (38), 7 states have internal predecessors, (38), 4 states have call successors, (12), 3 states have call predecessors, (12), 2 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) Word has length 64 [2022-04-28 04:11:57,124 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:11:57,125 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 8 states, 8 states have (on average 4.75) internal successors, (38), 7 states have internal predecessors, (38), 4 states have call successors, (12), 3 states have call predecessors, (12), 2 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-28 04:11:57,166 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 59 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:11:57,166 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 8 states [2022-04-28 04:11:57,167 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:11:57,167 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2022-04-28 04:11:57,167 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=29, Invalid=153, Unknown=0, NotChecked=0, Total=182 [2022-04-28 04:11:57,167 INFO L87 Difference]: Start difference. First operand 81 states and 95 transitions. Second operand has 8 states, 8 states have (on average 4.75) internal successors, (38), 7 states have internal predecessors, (38), 4 states have call successors, (12), 3 states have call predecessors, (12), 2 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-28 04:12:12,570 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:12:12,570 INFO L93 Difference]: Finished difference Result 101 states and 117 transitions. [2022-04-28 04:12:12,570 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2022-04-28 04:12:12,570 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 4.75) internal successors, (38), 7 states have internal predecessors, (38), 4 states have call successors, (12), 3 states have call predecessors, (12), 2 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) Word has length 64 [2022-04-28 04:12:12,571 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:12:12,571 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 4.75) internal successors, (38), 7 states have internal predecessors, (38), 4 states have call successors, (12), 3 states have call predecessors, (12), 2 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-28 04:12:12,572 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 94 transitions. [2022-04-28 04:12:12,572 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 4.75) internal successors, (38), 7 states have internal predecessors, (38), 4 states have call successors, (12), 3 states have call predecessors, (12), 2 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-28 04:12:12,573 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 94 transitions. [2022-04-28 04:12:12,573 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 8 states and 94 transitions. [2022-04-28 04:12:12,645 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 94 edges. 94 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:12:12,646 INFO L225 Difference]: With dead ends: 101 [2022-04-28 04:12:12,646 INFO L226 Difference]: Without dead ends: 79 [2022-04-28 04:12:12,646 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 92 GetRequests, 77 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 15 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=44, Invalid=228, Unknown=0, NotChecked=0, Total=272 [2022-04-28 04:12:12,647 INFO L413 NwaCegarLoop]: 56 mSDtfsCounter, 9 mSDsluCounter, 312 mSDsCounter, 0 mSdLazyCounter, 97 mSolverCounterSat, 3 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 9 SdHoareTripleChecker+Valid, 368 SdHoareTripleChecker+Invalid, 100 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 3 IncrementalHoareTripleChecker+Valid, 97 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-28 04:12:12,647 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [9 Valid, 368 Invalid, 100 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [3 Valid, 97 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-28 04:12:12,647 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 79 states. [2022-04-28 04:12:12,705 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 79 to 71. [2022-04-28 04:12:12,705 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:12:12,705 INFO L82 GeneralOperation]: Start isEquivalent. First operand 79 states. Second operand has 71 states, 48 states have (on average 1.1666666666666667) internal successors, (56), 49 states have internal predecessors, (56), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) [2022-04-28 04:12:12,705 INFO L74 IsIncluded]: Start isIncluded. First operand 79 states. Second operand has 71 states, 48 states have (on average 1.1666666666666667) internal successors, (56), 49 states have internal predecessors, (56), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) [2022-04-28 04:12:12,706 INFO L87 Difference]: Start difference. First operand 79 states. Second operand has 71 states, 48 states have (on average 1.1666666666666667) internal successors, (56), 49 states have internal predecessors, (56), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) [2022-04-28 04:12:12,707 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:12:12,707 INFO L93 Difference]: Finished difference Result 79 states and 91 transitions. [2022-04-28 04:12:12,707 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 91 transitions. [2022-04-28 04:12:12,708 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:12:12,708 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:12:12,708 INFO L74 IsIncluded]: Start isIncluded. First operand has 71 states, 48 states have (on average 1.1666666666666667) internal successors, (56), 49 states have internal predecessors, (56), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) Second operand 79 states. [2022-04-28 04:12:12,708 INFO L87 Difference]: Start difference. First operand has 71 states, 48 states have (on average 1.1666666666666667) internal successors, (56), 49 states have internal predecessors, (56), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) Second operand 79 states. [2022-04-28 04:12:12,709 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:12:12,710 INFO L93 Difference]: Finished difference Result 79 states and 91 transitions. [2022-04-28 04:12:12,710 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 91 transitions. [2022-04-28 04:12:12,710 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:12:12,710 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:12:12,710 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:12:12,710 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:12:12,710 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 71 states, 48 states have (on average 1.1666666666666667) internal successors, (56), 49 states have internal predecessors, (56), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) [2022-04-28 04:12:12,711 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 80 transitions. [2022-04-28 04:12:12,711 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 80 transitions. Word has length 64 [2022-04-28 04:12:12,712 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:12:12,712 INFO L495 AbstractCegarLoop]: Abstraction has 71 states and 80 transitions. [2022-04-28 04:12:12,712 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 8 states, 8 states have (on average 4.75) internal successors, (38), 7 states have internal predecessors, (38), 4 states have call successors, (12), 3 states have call predecessors, (12), 2 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-28 04:12:12,712 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 71 states and 80 transitions. [2022-04-28 04:12:12,814 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 80 edges. 80 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:12:12,814 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 80 transitions. [2022-04-28 04:12:12,815 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 64 [2022-04-28 04:12:12,815 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:12:12,815 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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] [2022-04-28 04:12:12,831 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Forceful destruction successful, exit code 0 [2022-04-28 04:12:13,015 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable6,6 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:12:13,016 INFO L420 AbstractCegarLoop]: === Iteration 8 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:12:13,016 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:12:13,016 INFO L85 PathProgramCache]: Analyzing trace with hash -1758641907, now seen corresponding path program 1 times [2022-04-28 04:12:13,016 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:12:13,016 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1280652979] [2022-04-28 04:12:13,016 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:12:13,017 INFO L85 PathProgramCache]: Analyzing trace with hash -1758641907, now seen corresponding path program 2 times [2022-04-28 04:12:13,017 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:12:13,017 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [726615343] [2022-04-28 04:12:13,017 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:12:13,017 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:12:13,037 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:13,066 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:12:13,067 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:13,069 INFO L290 TraceCheckUtils]: 0: Hoare triple {5298#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {5255#true} is VALID [2022-04-28 04:12:13,070 INFO L290 TraceCheckUtils]: 1: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,070 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {5255#true} {5255#true} #160#return; {5255#true} is VALID [2022-04-28 04:12:13,070 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:12:13,070 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:13,072 INFO L290 TraceCheckUtils]: 0: Hoare triple {5255#true} ~cond := #in~cond; {5255#true} is VALID [2022-04-28 04:12:13,072 INFO L290 TraceCheckUtils]: 1: Hoare triple {5255#true} assume !(0 == ~cond); {5255#true} is VALID [2022-04-28 04:12:13,072 INFO L290 TraceCheckUtils]: 2: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,072 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5255#true} {5255#true} #142#return; {5255#true} is VALID [2022-04-28 04:12:13,072 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:12:13,073 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:13,074 INFO L290 TraceCheckUtils]: 0: Hoare triple {5255#true} ~x := #in~x; {5255#true} is VALID [2022-04-28 04:12:13,075 INFO L290 TraceCheckUtils]: 1: Hoare triple {5255#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {5255#true} is VALID [2022-04-28 04:12:13,075 INFO L290 TraceCheckUtils]: 2: Hoare triple {5255#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {5255#true} is VALID [2022-04-28 04:12:13,075 INFO L290 TraceCheckUtils]: 3: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,075 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {5255#true} {5255#true} #144#return; {5255#true} is VALID [2022-04-28 04:12:13,075 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:12:13,075 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:13,077 INFO L290 TraceCheckUtils]: 0: Hoare triple {5255#true} ~cond := #in~cond; {5255#true} is VALID [2022-04-28 04:12:13,077 INFO L290 TraceCheckUtils]: 1: Hoare triple {5255#true} assume !(0 == ~cond); {5255#true} is VALID [2022-04-28 04:12:13,077 INFO L290 TraceCheckUtils]: 2: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,077 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5255#true} {5255#true} #146#return; {5255#true} is VALID [2022-04-28 04:12:13,087 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:12:13,088 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:13,090 INFO L290 TraceCheckUtils]: 0: Hoare triple {5299#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {5255#true} is VALID [2022-04-28 04:12:13,090 INFO L290 TraceCheckUtils]: 1: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,090 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {5255#true} {5255#true} #148#return; {5255#true} is VALID [2022-04-28 04:12:13,090 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:12:13,091 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:13,093 INFO L290 TraceCheckUtils]: 0: Hoare triple {5299#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {5255#true} is VALID [2022-04-28 04:12:13,093 INFO L290 TraceCheckUtils]: 1: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,093 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {5255#true} {5255#true} #150#return; {5255#true} is VALID [2022-04-28 04:12:13,093 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 37 [2022-04-28 04:12:13,096 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:13,137 INFO L290 TraceCheckUtils]: 0: Hoare triple {5299#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {5300#(and (= |upsweep_#in~n| upsweep_~n) (<= 1 upsweep_~space~0))} is VALID [2022-04-28 04:12:13,138 INFO L290 TraceCheckUtils]: 1: Hoare triple {5300#(and (= |upsweep_#in~n| upsweep_~n) (<= 1 upsweep_~space~0))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {5301#(and (= |upsweep_#in~n| upsweep_~n) (<= 2 upsweep_~n))} is VALID [2022-04-28 04:12:13,138 INFO L290 TraceCheckUtils]: 2: Hoare triple {5301#(and (= |upsweep_#in~n| upsweep_~n) (<= 2 upsweep_~n))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {5301#(and (= |upsweep_#in~n| upsweep_~n) (<= 2 upsweep_~n))} is VALID [2022-04-28 04:12:13,139 INFO L290 TraceCheckUtils]: 3: Hoare triple {5301#(and (= |upsweep_#in~n| upsweep_~n) (<= 2 upsweep_~n))} assume !(~left~0 < ~n); {5301#(and (= |upsweep_#in~n| upsweep_~n) (<= 2 upsweep_~n))} is VALID [2022-04-28 04:12:13,139 INFO L290 TraceCheckUtils]: 4: Hoare triple {5301#(and (= |upsweep_#in~n| upsweep_~n) (<= 2 upsweep_~n))} ~space~0 := 2 * ~space~0; {5301#(and (= |upsweep_#in~n| upsweep_~n) (<= 2 upsweep_~n))} is VALID [2022-04-28 04:12:13,140 INFO L290 TraceCheckUtils]: 5: Hoare triple {5301#(and (= |upsweep_#in~n| upsweep_~n) (<= 2 upsweep_~n))} assume !(~space~0 < ~n); {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,140 INFO L290 TraceCheckUtils]: 6: Hoare triple {5302#(<= 2 |upsweep_#in~n|)} #res := ~space~0; {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,140 INFO L290 TraceCheckUtils]: 7: Hoare triple {5302#(<= 2 |upsweep_#in~n|)} assume true; {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,141 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {5302#(<= 2 |upsweep_#in~n|)} {5281#(<= main_~n~0 1)} #152#return; {5256#false} is VALID [2022-04-28 04:12:13,141 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 48 [2022-04-28 04:12:13,145 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:13,147 INFO L290 TraceCheckUtils]: 0: Hoare triple {5299#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {5255#true} is VALID [2022-04-28 04:12:13,147 INFO L290 TraceCheckUtils]: 1: Hoare triple {5255#true} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {5255#true} is VALID [2022-04-28 04:12:13,147 INFO L290 TraceCheckUtils]: 2: Hoare triple {5255#true} assume !(~right~1 < ~n); {5255#true} is VALID [2022-04-28 04:12:13,148 INFO L290 TraceCheckUtils]: 3: Hoare triple {5255#true} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {5255#true} is VALID [2022-04-28 04:12:13,148 INFO L290 TraceCheckUtils]: 4: Hoare triple {5255#true} assume !(~space > 0); {5255#true} is VALID [2022-04-28 04:12:13,148 INFO L290 TraceCheckUtils]: 5: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,148 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {5255#true} {5256#false} #154#return; {5256#false} is VALID [2022-04-28 04:12:13,148 INFO L272 TraceCheckUtils]: 0: Hoare triple {5255#true} call ULTIMATE.init(); {5298#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:12:13,148 INFO L290 TraceCheckUtils]: 1: Hoare triple {5298#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {5255#true} is VALID [2022-04-28 04:12:13,148 INFO L290 TraceCheckUtils]: 2: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,149 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5255#true} {5255#true} #160#return; {5255#true} is VALID [2022-04-28 04:12:13,149 INFO L272 TraceCheckUtils]: 4: Hoare triple {5255#true} call #t~ret20 := main(); {5255#true} is VALID [2022-04-28 04:12:13,149 INFO L290 TraceCheckUtils]: 5: Hoare triple {5255#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {5255#true} is VALID [2022-04-28 04:12:13,149 INFO L272 TraceCheckUtils]: 6: Hoare triple {5255#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {5255#true} is VALID [2022-04-28 04:12:13,149 INFO L290 TraceCheckUtils]: 7: Hoare triple {5255#true} ~cond := #in~cond; {5255#true} is VALID [2022-04-28 04:12:13,149 INFO L290 TraceCheckUtils]: 8: Hoare triple {5255#true} assume !(0 == ~cond); {5255#true} is VALID [2022-04-28 04:12:13,149 INFO L290 TraceCheckUtils]: 9: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,149 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5255#true} {5255#true} #142#return; {5255#true} is VALID [2022-04-28 04:12:13,149 INFO L272 TraceCheckUtils]: 11: Hoare triple {5255#true} call #t~ret14 := is_pow2(~n~0); {5255#true} is VALID [2022-04-28 04:12:13,149 INFO L290 TraceCheckUtils]: 12: Hoare triple {5255#true} ~x := #in~x; {5255#true} is VALID [2022-04-28 04:12:13,149 INFO L290 TraceCheckUtils]: 13: Hoare triple {5255#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {5255#true} is VALID [2022-04-28 04:12:13,149 INFO L290 TraceCheckUtils]: 14: Hoare triple {5255#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {5255#true} is VALID [2022-04-28 04:12:13,149 INFO L290 TraceCheckUtils]: 15: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,149 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {5255#true} {5255#true} #144#return; {5255#true} is VALID [2022-04-28 04:12:13,150 INFO L290 TraceCheckUtils]: 17: Hoare triple {5255#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {5255#true} is VALID [2022-04-28 04:12:13,150 INFO L272 TraceCheckUtils]: 18: Hoare triple {5255#true} call assume_abort_if_not(#t~ret14); {5255#true} is VALID [2022-04-28 04:12:13,150 INFO L290 TraceCheckUtils]: 19: Hoare triple {5255#true} ~cond := #in~cond; {5255#true} is VALID [2022-04-28 04:12:13,150 INFO L290 TraceCheckUtils]: 20: Hoare triple {5255#true} assume !(0 == ~cond); {5255#true} is VALID [2022-04-28 04:12:13,150 INFO L290 TraceCheckUtils]: 21: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,150 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {5255#true} {5255#true} #146#return; {5255#true} is VALID [2022-04-28 04:12:13,150 INFO L290 TraceCheckUtils]: 23: Hoare triple {5255#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {5255#true} is VALID [2022-04-28 04:12:13,151 INFO L272 TraceCheckUtils]: 24: Hoare triple {5255#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {5299#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:12:13,151 INFO L290 TraceCheckUtils]: 25: Hoare triple {5299#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {5255#true} is VALID [2022-04-28 04:12:13,151 INFO L290 TraceCheckUtils]: 26: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,151 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {5255#true} {5255#true} #148#return; {5255#true} is VALID [2022-04-28 04:12:13,151 INFO L290 TraceCheckUtils]: 28: Hoare triple {5255#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {5255#true} is VALID [2022-04-28 04:12:13,152 INFO L272 TraceCheckUtils]: 29: Hoare triple {5255#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {5299#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:12:13,152 INFO L290 TraceCheckUtils]: 30: Hoare triple {5299#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {5255#true} is VALID [2022-04-28 04:12:13,152 INFO L290 TraceCheckUtils]: 31: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,152 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {5255#true} {5255#true} #150#return; {5255#true} is VALID [2022-04-28 04:12:13,152 INFO L290 TraceCheckUtils]: 33: Hoare triple {5255#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {5279#(= main_~i~1 0)} is VALID [2022-04-28 04:12:13,153 INFO L290 TraceCheckUtils]: 34: Hoare triple {5279#(= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {5279#(= main_~i~1 0)} is VALID [2022-04-28 04:12:13,153 INFO L290 TraceCheckUtils]: 35: Hoare triple {5279#(= main_~i~1 0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {5280#(<= main_~i~1 1)} is VALID [2022-04-28 04:12:13,154 INFO L290 TraceCheckUtils]: 36: Hoare triple {5280#(<= main_~i~1 1)} assume !(~i~1 < ~n~0); {5281#(<= main_~n~0 1)} is VALID [2022-04-28 04:12:13,154 INFO L272 TraceCheckUtils]: 37: Hoare triple {5281#(<= main_~n~0 1)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {5299#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:12:13,155 INFO L290 TraceCheckUtils]: 38: Hoare triple {5299#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {5300#(and (= |upsweep_#in~n| upsweep_~n) (<= 1 upsweep_~space~0))} is VALID [2022-04-28 04:12:13,155 INFO L290 TraceCheckUtils]: 39: Hoare triple {5300#(and (= |upsweep_#in~n| upsweep_~n) (<= 1 upsweep_~space~0))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {5301#(and (= |upsweep_#in~n| upsweep_~n) (<= 2 upsweep_~n))} is VALID [2022-04-28 04:12:13,156 INFO L290 TraceCheckUtils]: 40: Hoare triple {5301#(and (= |upsweep_#in~n| upsweep_~n) (<= 2 upsweep_~n))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {5301#(and (= |upsweep_#in~n| upsweep_~n) (<= 2 upsweep_~n))} is VALID [2022-04-28 04:12:13,156 INFO L290 TraceCheckUtils]: 41: Hoare triple {5301#(and (= |upsweep_#in~n| upsweep_~n) (<= 2 upsweep_~n))} assume !(~left~0 < ~n); {5301#(and (= |upsweep_#in~n| upsweep_~n) (<= 2 upsweep_~n))} is VALID [2022-04-28 04:12:13,157 INFO L290 TraceCheckUtils]: 42: Hoare triple {5301#(and (= |upsweep_#in~n| upsweep_~n) (<= 2 upsweep_~n))} ~space~0 := 2 * ~space~0; {5301#(and (= |upsweep_#in~n| upsweep_~n) (<= 2 upsweep_~n))} is VALID [2022-04-28 04:12:13,157 INFO L290 TraceCheckUtils]: 43: Hoare triple {5301#(and (= |upsweep_#in~n| upsweep_~n) (<= 2 upsweep_~n))} assume !(~space~0 < ~n); {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,157 INFO L290 TraceCheckUtils]: 44: Hoare triple {5302#(<= 2 |upsweep_#in~n|)} #res := ~space~0; {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,158 INFO L290 TraceCheckUtils]: 45: Hoare triple {5302#(<= 2 |upsweep_#in~n|)} assume true; {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,159 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {5302#(<= 2 |upsweep_#in~n|)} {5281#(<= main_~n~0 1)} #152#return; {5256#false} is VALID [2022-04-28 04:12:13,159 INFO L290 TraceCheckUtils]: 47: Hoare triple {5256#false} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {5256#false} is VALID [2022-04-28 04:12:13,159 INFO L272 TraceCheckUtils]: 48: Hoare triple {5256#false} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {5299#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:12:13,159 INFO L290 TraceCheckUtils]: 49: Hoare triple {5299#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {5255#true} is VALID [2022-04-28 04:12:13,159 INFO L290 TraceCheckUtils]: 50: Hoare triple {5255#true} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {5255#true} is VALID [2022-04-28 04:12:13,159 INFO L290 TraceCheckUtils]: 51: Hoare triple {5255#true} assume !(~right~1 < ~n); {5255#true} is VALID [2022-04-28 04:12:13,159 INFO L290 TraceCheckUtils]: 52: Hoare triple {5255#true} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {5255#true} is VALID [2022-04-28 04:12:13,159 INFO L290 TraceCheckUtils]: 53: Hoare triple {5255#true} assume !(~space > 0); {5255#true} is VALID [2022-04-28 04:12:13,159 INFO L290 TraceCheckUtils]: 54: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,159 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {5255#true} {5256#false} #154#return; {5256#false} is VALID [2022-04-28 04:12:13,159 INFO L272 TraceCheckUtils]: 56: Hoare triple {5256#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {5256#false} is VALID [2022-04-28 04:12:13,159 INFO L290 TraceCheckUtils]: 57: Hoare triple {5256#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {5256#false} is VALID [2022-04-28 04:12:13,159 INFO L290 TraceCheckUtils]: 58: Hoare triple {5256#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {5256#false} is VALID [2022-04-28 04:12:13,159 INFO L272 TraceCheckUtils]: 59: Hoare triple {5256#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {5256#false} is VALID [2022-04-28 04:12:13,160 INFO L290 TraceCheckUtils]: 60: Hoare triple {5256#false} ~cond := #in~cond; {5256#false} is VALID [2022-04-28 04:12:13,160 INFO L290 TraceCheckUtils]: 61: Hoare triple {5256#false} assume 0 == ~cond; {5256#false} is VALID [2022-04-28 04:12:13,160 INFO L290 TraceCheckUtils]: 62: Hoare triple {5256#false} assume !false; {5256#false} is VALID [2022-04-28 04:12:13,160 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2022-04-28 04:12:13,160 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:12:13,160 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [726615343] [2022-04-28 04:12:13,160 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [726615343] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:12:13,160 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [604897702] [2022-04-28 04:12:13,160 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:12:13,160 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:12:13,161 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:12:13,161 INFO L229 MonitoredProcess]: Starting monitored process 7 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:12:13,162 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Waiting until timeout for monitored process [2022-04-28 04:12:13,232 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:12:13,232 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:12:13,234 INFO L263 TraceCheckSpWp]: Trace formula consists of 263 conjuncts, 7 conjunts are in the unsatisfiable core [2022-04-28 04:12:13,249 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:13,251 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:12:13,477 INFO L272 TraceCheckUtils]: 0: Hoare triple {5255#true} call ULTIMATE.init(); {5255#true} is VALID [2022-04-28 04:12:13,477 INFO L290 TraceCheckUtils]: 1: Hoare triple {5255#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {5255#true} is VALID [2022-04-28 04:12:13,477 INFO L290 TraceCheckUtils]: 2: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,477 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5255#true} {5255#true} #160#return; {5255#true} is VALID [2022-04-28 04:12:13,477 INFO L272 TraceCheckUtils]: 4: Hoare triple {5255#true} call #t~ret20 := main(); {5255#true} is VALID [2022-04-28 04:12:13,477 INFO L290 TraceCheckUtils]: 5: Hoare triple {5255#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {5255#true} is VALID [2022-04-28 04:12:13,477 INFO L272 TraceCheckUtils]: 6: Hoare triple {5255#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {5255#true} is VALID [2022-04-28 04:12:13,477 INFO L290 TraceCheckUtils]: 7: Hoare triple {5255#true} ~cond := #in~cond; {5255#true} is VALID [2022-04-28 04:12:13,478 INFO L290 TraceCheckUtils]: 8: Hoare triple {5255#true} assume !(0 == ~cond); {5255#true} is VALID [2022-04-28 04:12:13,478 INFO L290 TraceCheckUtils]: 9: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,478 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5255#true} {5255#true} #142#return; {5255#true} is VALID [2022-04-28 04:12:13,478 INFO L272 TraceCheckUtils]: 11: Hoare triple {5255#true} call #t~ret14 := is_pow2(~n~0); {5255#true} is VALID [2022-04-28 04:12:13,478 INFO L290 TraceCheckUtils]: 12: Hoare triple {5255#true} ~x := #in~x; {5255#true} is VALID [2022-04-28 04:12:13,478 INFO L290 TraceCheckUtils]: 13: Hoare triple {5255#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {5255#true} is VALID [2022-04-28 04:12:13,478 INFO L290 TraceCheckUtils]: 14: Hoare triple {5255#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {5255#true} is VALID [2022-04-28 04:12:13,478 INFO L290 TraceCheckUtils]: 15: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,478 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {5255#true} {5255#true} #144#return; {5255#true} is VALID [2022-04-28 04:12:13,478 INFO L290 TraceCheckUtils]: 17: Hoare triple {5255#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {5255#true} is VALID [2022-04-28 04:12:13,478 INFO L272 TraceCheckUtils]: 18: Hoare triple {5255#true} call assume_abort_if_not(#t~ret14); {5255#true} is VALID [2022-04-28 04:12:13,478 INFO L290 TraceCheckUtils]: 19: Hoare triple {5255#true} ~cond := #in~cond; {5255#true} is VALID [2022-04-28 04:12:13,478 INFO L290 TraceCheckUtils]: 20: Hoare triple {5255#true} assume !(0 == ~cond); {5255#true} is VALID [2022-04-28 04:12:13,478 INFO L290 TraceCheckUtils]: 21: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,479 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {5255#true} {5255#true} #146#return; {5255#true} is VALID [2022-04-28 04:12:13,479 INFO L290 TraceCheckUtils]: 23: Hoare triple {5255#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {5255#true} is VALID [2022-04-28 04:12:13,479 INFO L272 TraceCheckUtils]: 24: Hoare triple {5255#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {5255#true} is VALID [2022-04-28 04:12:13,479 INFO L290 TraceCheckUtils]: 25: Hoare triple {5255#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {5255#true} is VALID [2022-04-28 04:12:13,479 INFO L290 TraceCheckUtils]: 26: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,479 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {5255#true} {5255#true} #148#return; {5255#true} is VALID [2022-04-28 04:12:13,479 INFO L290 TraceCheckUtils]: 28: Hoare triple {5255#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {5255#true} is VALID [2022-04-28 04:12:13,479 INFO L272 TraceCheckUtils]: 29: Hoare triple {5255#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {5255#true} is VALID [2022-04-28 04:12:13,479 INFO L290 TraceCheckUtils]: 30: Hoare triple {5255#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {5255#true} is VALID [2022-04-28 04:12:13,479 INFO L290 TraceCheckUtils]: 31: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,479 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {5255#true} {5255#true} #150#return; {5255#true} is VALID [2022-04-28 04:12:13,480 INFO L290 TraceCheckUtils]: 33: Hoare triple {5255#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {5405#(<= main_~i~1 0)} is VALID [2022-04-28 04:12:13,480 INFO L290 TraceCheckUtils]: 34: Hoare triple {5405#(<= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {5405#(<= main_~i~1 0)} is VALID [2022-04-28 04:12:13,481 INFO L290 TraceCheckUtils]: 35: Hoare triple {5405#(<= main_~i~1 0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {5280#(<= main_~i~1 1)} is VALID [2022-04-28 04:12:13,481 INFO L290 TraceCheckUtils]: 36: Hoare triple {5280#(<= main_~i~1 1)} assume !(~i~1 < ~n~0); {5281#(<= main_~n~0 1)} is VALID [2022-04-28 04:12:13,481 INFO L272 TraceCheckUtils]: 37: Hoare triple {5281#(<= main_~n~0 1)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {5255#true} is VALID [2022-04-28 04:12:13,482 INFO L290 TraceCheckUtils]: 38: Hoare triple {5255#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {5421#(and (<= upsweep_~n |upsweep_#in~n|) (<= 1 upsweep_~space~0))} is VALID [2022-04-28 04:12:13,482 INFO L290 TraceCheckUtils]: 39: Hoare triple {5421#(and (<= upsweep_~n |upsweep_#in~n|) (<= 1 upsweep_~space~0))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,482 INFO L290 TraceCheckUtils]: 40: Hoare triple {5302#(<= 2 |upsweep_#in~n|)} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,483 INFO L290 TraceCheckUtils]: 41: Hoare triple {5302#(<= 2 |upsweep_#in~n|)} assume !(~left~0 < ~n); {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,483 INFO L290 TraceCheckUtils]: 42: Hoare triple {5302#(<= 2 |upsweep_#in~n|)} ~space~0 := 2 * ~space~0; {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,483 INFO L290 TraceCheckUtils]: 43: Hoare triple {5302#(<= 2 |upsweep_#in~n|)} assume !(~space~0 < ~n); {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,484 INFO L290 TraceCheckUtils]: 44: Hoare triple {5302#(<= 2 |upsweep_#in~n|)} #res := ~space~0; {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,484 INFO L290 TraceCheckUtils]: 45: Hoare triple {5302#(<= 2 |upsweep_#in~n|)} assume true; {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,485 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {5302#(<= 2 |upsweep_#in~n|)} {5281#(<= main_~n~0 1)} #152#return; {5256#false} is VALID [2022-04-28 04:12:13,485 INFO L290 TraceCheckUtils]: 47: Hoare triple {5256#false} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {5256#false} is VALID [2022-04-28 04:12:13,485 INFO L272 TraceCheckUtils]: 48: Hoare triple {5256#false} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {5256#false} is VALID [2022-04-28 04:12:13,485 INFO L290 TraceCheckUtils]: 49: Hoare triple {5256#false} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {5256#false} is VALID [2022-04-28 04:12:13,485 INFO L290 TraceCheckUtils]: 50: Hoare triple {5256#false} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {5256#false} is VALID [2022-04-28 04:12:13,485 INFO L290 TraceCheckUtils]: 51: Hoare triple {5256#false} assume !(~right~1 < ~n); {5256#false} is VALID [2022-04-28 04:12:13,485 INFO L290 TraceCheckUtils]: 52: Hoare triple {5256#false} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {5256#false} is VALID [2022-04-28 04:12:13,486 INFO L290 TraceCheckUtils]: 53: Hoare triple {5256#false} assume !(~space > 0); {5256#false} is VALID [2022-04-28 04:12:13,486 INFO L290 TraceCheckUtils]: 54: Hoare triple {5256#false} assume true; {5256#false} is VALID [2022-04-28 04:12:13,486 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {5256#false} {5256#false} #154#return; {5256#false} is VALID [2022-04-28 04:12:13,486 INFO L272 TraceCheckUtils]: 56: Hoare triple {5256#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {5256#false} is VALID [2022-04-28 04:12:13,486 INFO L290 TraceCheckUtils]: 57: Hoare triple {5256#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {5256#false} is VALID [2022-04-28 04:12:13,486 INFO L290 TraceCheckUtils]: 58: Hoare triple {5256#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {5256#false} is VALID [2022-04-28 04:12:13,486 INFO L272 TraceCheckUtils]: 59: Hoare triple {5256#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {5256#false} is VALID [2022-04-28 04:12:13,521 INFO L290 TraceCheckUtils]: 60: Hoare triple {5256#false} ~cond := #in~cond; {5256#false} is VALID [2022-04-28 04:12:13,521 INFO L290 TraceCheckUtils]: 61: Hoare triple {5256#false} assume 0 == ~cond; {5256#false} is VALID [2022-04-28 04:12:13,521 INFO L290 TraceCheckUtils]: 62: Hoare triple {5256#false} assume !false; {5256#false} is VALID [2022-04-28 04:12:13,522 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2022-04-28 04:12:13,522 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:12:13,855 INFO L290 TraceCheckUtils]: 62: Hoare triple {5256#false} assume !false; {5256#false} is VALID [2022-04-28 04:12:13,855 INFO L290 TraceCheckUtils]: 61: Hoare triple {5256#false} assume 0 == ~cond; {5256#false} is VALID [2022-04-28 04:12:13,855 INFO L290 TraceCheckUtils]: 60: Hoare triple {5256#false} ~cond := #in~cond; {5256#false} is VALID [2022-04-28 04:12:13,855 INFO L272 TraceCheckUtils]: 59: Hoare triple {5256#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {5256#false} is VALID [2022-04-28 04:12:13,855 INFO L290 TraceCheckUtils]: 58: Hoare triple {5256#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {5256#false} is VALID [2022-04-28 04:12:13,855 INFO L290 TraceCheckUtils]: 57: Hoare triple {5256#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {5256#false} is VALID [2022-04-28 04:12:13,855 INFO L272 TraceCheckUtils]: 56: Hoare triple {5256#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {5256#false} is VALID [2022-04-28 04:12:13,856 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {5255#true} {5256#false} #154#return; {5256#false} is VALID [2022-04-28 04:12:13,856 INFO L290 TraceCheckUtils]: 54: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,856 INFO L290 TraceCheckUtils]: 53: Hoare triple {5255#true} assume !(~space > 0); {5255#true} is VALID [2022-04-28 04:12:13,856 INFO L290 TraceCheckUtils]: 52: Hoare triple {5255#true} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {5255#true} is VALID [2022-04-28 04:12:13,856 INFO L290 TraceCheckUtils]: 51: Hoare triple {5255#true} assume !(~right~1 < ~n); {5255#true} is VALID [2022-04-28 04:12:13,856 INFO L290 TraceCheckUtils]: 50: Hoare triple {5255#true} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {5255#true} is VALID [2022-04-28 04:12:13,856 INFO L290 TraceCheckUtils]: 49: Hoare triple {5255#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {5255#true} is VALID [2022-04-28 04:12:13,856 INFO L272 TraceCheckUtils]: 48: Hoare triple {5256#false} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {5255#true} is VALID [2022-04-28 04:12:13,856 INFO L290 TraceCheckUtils]: 47: Hoare triple {5256#false} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {5256#false} is VALID [2022-04-28 04:12:13,872 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {5302#(<= 2 |upsweep_#in~n|)} {5281#(<= main_~n~0 1)} #152#return; {5256#false} is VALID [2022-04-28 04:12:13,872 INFO L290 TraceCheckUtils]: 45: Hoare triple {5302#(<= 2 |upsweep_#in~n|)} assume true; {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,873 INFO L290 TraceCheckUtils]: 44: Hoare triple {5302#(<= 2 |upsweep_#in~n|)} #res := ~space~0; {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,873 INFO L290 TraceCheckUtils]: 43: Hoare triple {5302#(<= 2 |upsweep_#in~n|)} assume !(~space~0 < ~n); {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,873 INFO L290 TraceCheckUtils]: 42: Hoare triple {5302#(<= 2 |upsweep_#in~n|)} ~space~0 := 2 * ~space~0; {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,873 INFO L290 TraceCheckUtils]: 41: Hoare triple {5302#(<= 2 |upsweep_#in~n|)} assume !(~left~0 < ~n); {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,874 INFO L290 TraceCheckUtils]: 40: Hoare triple {5302#(<= 2 |upsweep_#in~n|)} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,874 INFO L290 TraceCheckUtils]: 39: Hoare triple {5566#(or (not (< upsweep_~space~0 upsweep_~n)) (<= 2 |upsweep_#in~n|))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {5302#(<= 2 |upsweep_#in~n|)} is VALID [2022-04-28 04:12:13,875 INFO L290 TraceCheckUtils]: 38: Hoare triple {5255#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {5566#(or (not (< upsweep_~space~0 upsweep_~n)) (<= 2 |upsweep_#in~n|))} is VALID [2022-04-28 04:12:13,875 INFO L272 TraceCheckUtils]: 37: Hoare triple {5281#(<= main_~n~0 1)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {5255#true} is VALID [2022-04-28 04:12:13,875 INFO L290 TraceCheckUtils]: 36: Hoare triple {5280#(<= main_~i~1 1)} assume !(~i~1 < ~n~0); {5281#(<= main_~n~0 1)} is VALID [2022-04-28 04:12:13,876 INFO L290 TraceCheckUtils]: 35: Hoare triple {5405#(<= main_~i~1 0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {5280#(<= main_~i~1 1)} is VALID [2022-04-28 04:12:13,876 INFO L290 TraceCheckUtils]: 34: Hoare triple {5405#(<= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {5405#(<= main_~i~1 0)} is VALID [2022-04-28 04:12:13,876 INFO L290 TraceCheckUtils]: 33: Hoare triple {5255#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {5405#(<= main_~i~1 0)} is VALID [2022-04-28 04:12:13,876 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {5255#true} {5255#true} #150#return; {5255#true} is VALID [2022-04-28 04:12:13,877 INFO L290 TraceCheckUtils]: 31: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,877 INFO L290 TraceCheckUtils]: 30: Hoare triple {5255#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {5255#true} is VALID [2022-04-28 04:12:13,877 INFO L272 TraceCheckUtils]: 29: Hoare triple {5255#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {5255#true} is VALID [2022-04-28 04:12:13,877 INFO L290 TraceCheckUtils]: 28: Hoare triple {5255#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {5255#true} is VALID [2022-04-28 04:12:13,877 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {5255#true} {5255#true} #148#return; {5255#true} is VALID [2022-04-28 04:12:13,877 INFO L290 TraceCheckUtils]: 26: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,877 INFO L290 TraceCheckUtils]: 25: Hoare triple {5255#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {5255#true} is VALID [2022-04-28 04:12:13,877 INFO L272 TraceCheckUtils]: 24: Hoare triple {5255#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {5255#true} is VALID [2022-04-28 04:12:13,877 INFO L290 TraceCheckUtils]: 23: Hoare triple {5255#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {5255#true} is VALID [2022-04-28 04:12:13,877 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {5255#true} {5255#true} #146#return; {5255#true} is VALID [2022-04-28 04:12:13,877 INFO L290 TraceCheckUtils]: 21: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,877 INFO L290 TraceCheckUtils]: 20: Hoare triple {5255#true} assume !(0 == ~cond); {5255#true} is VALID [2022-04-28 04:12:13,877 INFO L290 TraceCheckUtils]: 19: Hoare triple {5255#true} ~cond := #in~cond; {5255#true} is VALID [2022-04-28 04:12:13,878 INFO L272 TraceCheckUtils]: 18: Hoare triple {5255#true} call assume_abort_if_not(#t~ret14); {5255#true} is VALID [2022-04-28 04:12:13,878 INFO L290 TraceCheckUtils]: 17: Hoare triple {5255#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {5255#true} is VALID [2022-04-28 04:12:13,878 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {5255#true} {5255#true} #144#return; {5255#true} is VALID [2022-04-28 04:12:13,878 INFO L290 TraceCheckUtils]: 15: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,878 INFO L290 TraceCheckUtils]: 14: Hoare triple {5255#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {5255#true} is VALID [2022-04-28 04:12:13,878 INFO L290 TraceCheckUtils]: 13: Hoare triple {5255#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {5255#true} is VALID [2022-04-28 04:12:13,878 INFO L290 TraceCheckUtils]: 12: Hoare triple {5255#true} ~x := #in~x; {5255#true} is VALID [2022-04-28 04:12:13,878 INFO L272 TraceCheckUtils]: 11: Hoare triple {5255#true} call #t~ret14 := is_pow2(~n~0); {5255#true} is VALID [2022-04-28 04:12:13,878 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5255#true} {5255#true} #142#return; {5255#true} is VALID [2022-04-28 04:12:13,878 INFO L290 TraceCheckUtils]: 9: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,878 INFO L290 TraceCheckUtils]: 8: Hoare triple {5255#true} assume !(0 == ~cond); {5255#true} is VALID [2022-04-28 04:12:13,878 INFO L290 TraceCheckUtils]: 7: Hoare triple {5255#true} ~cond := #in~cond; {5255#true} is VALID [2022-04-28 04:12:13,878 INFO L272 TraceCheckUtils]: 6: Hoare triple {5255#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {5255#true} is VALID [2022-04-28 04:12:13,878 INFO L290 TraceCheckUtils]: 5: Hoare triple {5255#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {5255#true} is VALID [2022-04-28 04:12:13,879 INFO L272 TraceCheckUtils]: 4: Hoare triple {5255#true} call #t~ret20 := main(); {5255#true} is VALID [2022-04-28 04:12:13,879 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5255#true} {5255#true} #160#return; {5255#true} is VALID [2022-04-28 04:12:13,879 INFO L290 TraceCheckUtils]: 2: Hoare triple {5255#true} assume true; {5255#true} is VALID [2022-04-28 04:12:13,879 INFO L290 TraceCheckUtils]: 1: Hoare triple {5255#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {5255#true} is VALID [2022-04-28 04:12:13,879 INFO L272 TraceCheckUtils]: 0: Hoare triple {5255#true} call ULTIMATE.init(); {5255#true} is VALID [2022-04-28 04:12:13,879 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 1 proven. 1 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2022-04-28 04:12:13,879 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [604897702] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:12:13,879 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-28 04:12:13,879 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 7, 7] total 13 [2022-04-28 04:12:13,880 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:12:13,880 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1280652979] [2022-04-28 04:12:13,880 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1280652979] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:12:13,880 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:12:13,880 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2022-04-28 04:12:13,880 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [547819212] [2022-04-28 04:12:13,880 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:12:13,880 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 9 states have (on average 4.333333333333333) internal successors, (39), 8 states have internal predecessors, (39), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) Word has length 63 [2022-04-28 04:12:13,880 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:12:13,881 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 10 states, 9 states have (on average 4.333333333333333) internal successors, (39), 8 states have internal predecessors, (39), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:12:13,926 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 58 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:12:13,926 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-04-28 04:12:13,926 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:12:13,926 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-04-28 04:12:13,927 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=32, Invalid=124, Unknown=0, NotChecked=0, Total=156 [2022-04-28 04:12:13,927 INFO L87 Difference]: Start difference. First operand 71 states and 80 transitions. Second operand has 10 states, 9 states have (on average 4.333333333333333) internal successors, (39), 8 states have internal predecessors, (39), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:12:16,090 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:12:20,383 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:12:22,518 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.13s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:12:27,647 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:12:27,647 INFO L93 Difference]: Finished difference Result 107 states and 121 transitions. [2022-04-28 04:12:27,647 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2022-04-28 04:12:27,647 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 9 states have (on average 4.333333333333333) internal successors, (39), 8 states have internal predecessors, (39), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) Word has length 63 [2022-04-28 04:12:27,648 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:12:27,648 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 9 states have (on average 4.333333333333333) internal successors, (39), 8 states have internal predecessors, (39), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:12:27,649 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 96 transitions. [2022-04-28 04:12:27,649 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 9 states have (on average 4.333333333333333) internal successors, (39), 8 states have internal predecessors, (39), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:12:27,650 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 96 transitions. [2022-04-28 04:12:27,650 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 11 states and 96 transitions. [2022-04-28 04:12:27,744 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 96 edges. 96 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:12:27,745 INFO L225 Difference]: With dead ends: 107 [2022-04-28 04:12:27,746 INFO L226 Difference]: Without dead ends: 75 [2022-04-28 04:12:27,746 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 156 GetRequests, 136 SyntacticMatches, 2 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 43 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=81, Invalid=299, Unknown=0, NotChecked=0, Total=380 [2022-04-28 04:12:27,747 INFO L413 NwaCegarLoop]: 43 mSDtfsCounter, 83 mSDsluCounter, 12 mSDsCounter, 0 mSdLazyCounter, 407 mSolverCounterSat, 42 mSolverCounterUnsat, 3 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 6.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 86 SdHoareTripleChecker+Valid, 55 SdHoareTripleChecker+Invalid, 452 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 42 IncrementalHoareTripleChecker+Valid, 407 IncrementalHoareTripleChecker+Invalid, 3 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 6.8s IncrementalHoareTripleChecker+Time [2022-04-28 04:12:27,747 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [86 Valid, 55 Invalid, 452 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [42 Valid, 407 Invalid, 3 Unknown, 0 Unchecked, 6.8s Time] [2022-04-28 04:12:27,747 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 75 states. [2022-04-28 04:12:27,801 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 75 to 73. [2022-04-28 04:12:27,801 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:12:27,802 INFO L82 GeneralOperation]: Start isEquivalent. First operand 75 states. Second operand has 73 states, 50 states have (on average 1.16) internal successors, (58), 51 states have internal predecessors, (58), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) [2022-04-28 04:12:27,802 INFO L74 IsIncluded]: Start isIncluded. First operand 75 states. Second operand has 73 states, 50 states have (on average 1.16) internal successors, (58), 51 states have internal predecessors, (58), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) [2022-04-28 04:12:27,802 INFO L87 Difference]: Start difference. First operand 75 states. Second operand has 73 states, 50 states have (on average 1.16) internal successors, (58), 51 states have internal predecessors, (58), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) [2022-04-28 04:12:27,803 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:12:27,804 INFO L93 Difference]: Finished difference Result 75 states and 84 transitions. [2022-04-28 04:12:27,804 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 84 transitions. [2022-04-28 04:12:27,804 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:12:27,804 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:12:27,804 INFO L74 IsIncluded]: Start isIncluded. First operand has 73 states, 50 states have (on average 1.16) internal successors, (58), 51 states have internal predecessors, (58), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) Second operand 75 states. [2022-04-28 04:12:27,804 INFO L87 Difference]: Start difference. First operand has 73 states, 50 states have (on average 1.16) internal successors, (58), 51 states have internal predecessors, (58), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) Second operand 75 states. [2022-04-28 04:12:27,805 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:12:27,806 INFO L93 Difference]: Finished difference Result 75 states and 84 transitions. [2022-04-28 04:12:27,806 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 84 transitions. [2022-04-28 04:12:27,806 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:12:27,806 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:12:27,806 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:12:27,806 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:12:27,806 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 73 states, 50 states have (on average 1.16) internal successors, (58), 51 states have internal predecessors, (58), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) [2022-04-28 04:12:27,807 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 73 states to 73 states and 82 transitions. [2022-04-28 04:12:27,807 INFO L78 Accepts]: Start accepts. Automaton has 73 states and 82 transitions. Word has length 63 [2022-04-28 04:12:27,808 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:12:27,808 INFO L495 AbstractCegarLoop]: Abstraction has 73 states and 82 transitions. [2022-04-28 04:12:27,808 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 10 states, 9 states have (on average 4.333333333333333) internal successors, (39), 8 states have internal predecessors, (39), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:12:27,808 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 73 states and 82 transitions. [2022-04-28 04:12:27,906 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 82 edges. 82 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:12:27,907 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 82 transitions. [2022-04-28 04:12:27,909 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 66 [2022-04-28 04:12:27,909 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:12:27,909 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1] [2022-04-28 04:12:27,925 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Ended with exit code 0 [2022-04-28 04:12:28,109 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable7,7 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:12:28,112 INFO L420 AbstractCegarLoop]: === Iteration 9 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:12:28,112 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:12:28,112 INFO L85 PathProgramCache]: Analyzing trace with hash 1560433451, now seen corresponding path program 3 times [2022-04-28 04:12:28,112 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:12:28,112 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [706091588] [2022-04-28 04:12:28,113 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:12:28,113 INFO L85 PathProgramCache]: Analyzing trace with hash 1560433451, now seen corresponding path program 4 times [2022-04-28 04:12:28,113 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:12:28,113 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [150692941] [2022-04-28 04:12:28,113 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:12:28,113 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:12:28,136 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:28,174 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:12:28,175 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:28,177 INFO L290 TraceCheckUtils]: 0: Hoare triple {6251#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {6208#true} is VALID [2022-04-28 04:12:28,178 INFO L290 TraceCheckUtils]: 1: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,178 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {6208#true} {6208#true} #160#return; {6208#true} is VALID [2022-04-28 04:12:28,178 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:12:28,178 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:28,180 INFO L290 TraceCheckUtils]: 0: Hoare triple {6208#true} ~cond := #in~cond; {6208#true} is VALID [2022-04-28 04:12:28,180 INFO L290 TraceCheckUtils]: 1: Hoare triple {6208#true} assume !(0 == ~cond); {6208#true} is VALID [2022-04-28 04:12:28,180 INFO L290 TraceCheckUtils]: 2: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,180 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6208#true} {6208#true} #142#return; {6208#true} is VALID [2022-04-28 04:12:28,180 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:12:28,182 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:28,184 INFO L290 TraceCheckUtils]: 0: Hoare triple {6208#true} ~x := #in~x; {6208#true} is VALID [2022-04-28 04:12:28,184 INFO L290 TraceCheckUtils]: 1: Hoare triple {6208#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {6208#true} is VALID [2022-04-28 04:12:28,184 INFO L290 TraceCheckUtils]: 2: Hoare triple {6208#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {6208#true} is VALID [2022-04-28 04:12:28,184 INFO L290 TraceCheckUtils]: 3: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,184 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {6208#true} {6208#true} #144#return; {6208#true} is VALID [2022-04-28 04:12:28,184 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:12:28,185 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:28,187 INFO L290 TraceCheckUtils]: 0: Hoare triple {6208#true} ~cond := #in~cond; {6208#true} is VALID [2022-04-28 04:12:28,187 INFO L290 TraceCheckUtils]: 1: Hoare triple {6208#true} assume !(0 == ~cond); {6208#true} is VALID [2022-04-28 04:12:28,187 INFO L290 TraceCheckUtils]: 2: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,187 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6208#true} {6208#true} #146#return; {6208#true} is VALID [2022-04-28 04:12:28,193 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:12:28,195 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:28,197 INFO L290 TraceCheckUtils]: 0: Hoare triple {6252#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {6208#true} is VALID [2022-04-28 04:12:28,198 INFO L290 TraceCheckUtils]: 1: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,198 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {6208#true} {6208#true} #148#return; {6208#true} is VALID [2022-04-28 04:12:28,198 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:12:28,198 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:28,201 INFO L290 TraceCheckUtils]: 0: Hoare triple {6252#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {6208#true} is VALID [2022-04-28 04:12:28,201 INFO L290 TraceCheckUtils]: 1: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,201 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {6208#true} {6208#true} #150#return; {6208#true} is VALID [2022-04-28 04:12:28,201 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 39 [2022-04-28 04:12:28,206 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:28,208 INFO L290 TraceCheckUtils]: 0: Hoare triple {6252#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {6208#true} is VALID [2022-04-28 04:12:28,208 INFO L290 TraceCheckUtils]: 1: Hoare triple {6208#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {6208#true} is VALID [2022-04-28 04:12:28,208 INFO L290 TraceCheckUtils]: 2: Hoare triple {6208#true} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {6208#true} is VALID [2022-04-28 04:12:28,209 INFO L290 TraceCheckUtils]: 3: Hoare triple {6208#true} assume !(~left~0 < ~n); {6208#true} is VALID [2022-04-28 04:12:28,209 INFO L290 TraceCheckUtils]: 4: Hoare triple {6208#true} ~space~0 := 2 * ~space~0; {6208#true} is VALID [2022-04-28 04:12:28,209 INFO L290 TraceCheckUtils]: 5: Hoare triple {6208#true} assume !(~space~0 < ~n); {6208#true} is VALID [2022-04-28 04:12:28,209 INFO L290 TraceCheckUtils]: 6: Hoare triple {6208#true} #res := ~space~0; {6208#true} is VALID [2022-04-28 04:12:28,209 INFO L290 TraceCheckUtils]: 7: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,210 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {6208#true} {6234#(<= 2 main_~n~0)} #152#return; {6234#(<= 2 main_~n~0)} is VALID [2022-04-28 04:12:28,210 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 50 [2022-04-28 04:12:28,214 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:28,293 INFO L290 TraceCheckUtils]: 0: Hoare triple {6252#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {6253#(<= |downsweep_#in~n| downsweep_~n)} is VALID [2022-04-28 04:12:28,293 INFO L290 TraceCheckUtils]: 1: Hoare triple {6253#(<= |downsweep_#in~n| downsweep_~n)} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {6254#(<= (+ downsweep_~right~1 |downsweep_#in~n| 1) (+ downsweep_~n (* 2 downsweep_~space)))} is VALID [2022-04-28 04:12:28,294 INFO L290 TraceCheckUtils]: 2: Hoare triple {6254#(<= (+ downsweep_~right~1 |downsweep_#in~n| 1) (+ downsweep_~n (* 2 downsweep_~space)))} assume !(~right~1 < ~n); {6255#(<= (+ |downsweep_#in~n| 1) (* 2 downsweep_~space))} is VALID [2022-04-28 04:12:28,295 INFO L290 TraceCheckUtils]: 3: Hoare triple {6255#(<= (+ |downsweep_#in~n| 1) (* 2 downsweep_~space))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {6256#(<= |downsweep_#in~n| (+ (* downsweep_~space 4) 1))} is VALID [2022-04-28 04:12:28,295 INFO L290 TraceCheckUtils]: 4: Hoare triple {6256#(<= |downsweep_#in~n| (+ (* downsweep_~space 4) 1))} assume !(~space > 0); {6257#(<= |downsweep_#in~n| 1)} is VALID [2022-04-28 04:12:28,295 INFO L290 TraceCheckUtils]: 5: Hoare triple {6257#(<= |downsweep_#in~n| 1)} assume true; {6257#(<= |downsweep_#in~n| 1)} is VALID [2022-04-28 04:12:28,296 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {6257#(<= |downsweep_#in~n| 1)} {6234#(<= 2 main_~n~0)} #154#return; {6209#false} is VALID [2022-04-28 04:12:28,297 INFO L272 TraceCheckUtils]: 0: Hoare triple {6208#true} call ULTIMATE.init(); {6251#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:12:28,297 INFO L290 TraceCheckUtils]: 1: Hoare triple {6251#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {6208#true} is VALID [2022-04-28 04:12:28,297 INFO L290 TraceCheckUtils]: 2: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,297 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6208#true} {6208#true} #160#return; {6208#true} is VALID [2022-04-28 04:12:28,297 INFO L272 TraceCheckUtils]: 4: Hoare triple {6208#true} call #t~ret20 := main(); {6208#true} is VALID [2022-04-28 04:12:28,297 INFO L290 TraceCheckUtils]: 5: Hoare triple {6208#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {6208#true} is VALID [2022-04-28 04:12:28,297 INFO L272 TraceCheckUtils]: 6: Hoare triple {6208#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {6208#true} is VALID [2022-04-28 04:12:28,297 INFO L290 TraceCheckUtils]: 7: Hoare triple {6208#true} ~cond := #in~cond; {6208#true} is VALID [2022-04-28 04:12:28,298 INFO L290 TraceCheckUtils]: 8: Hoare triple {6208#true} assume !(0 == ~cond); {6208#true} is VALID [2022-04-28 04:12:28,298 INFO L290 TraceCheckUtils]: 9: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,298 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {6208#true} {6208#true} #142#return; {6208#true} is VALID [2022-04-28 04:12:28,298 INFO L272 TraceCheckUtils]: 11: Hoare triple {6208#true} call #t~ret14 := is_pow2(~n~0); {6208#true} is VALID [2022-04-28 04:12:28,298 INFO L290 TraceCheckUtils]: 12: Hoare triple {6208#true} ~x := #in~x; {6208#true} is VALID [2022-04-28 04:12:28,298 INFO L290 TraceCheckUtils]: 13: Hoare triple {6208#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {6208#true} is VALID [2022-04-28 04:12:28,298 INFO L290 TraceCheckUtils]: 14: Hoare triple {6208#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {6208#true} is VALID [2022-04-28 04:12:28,298 INFO L290 TraceCheckUtils]: 15: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,298 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {6208#true} {6208#true} #144#return; {6208#true} is VALID [2022-04-28 04:12:28,298 INFO L290 TraceCheckUtils]: 17: Hoare triple {6208#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {6208#true} is VALID [2022-04-28 04:12:28,298 INFO L272 TraceCheckUtils]: 18: Hoare triple {6208#true} call assume_abort_if_not(#t~ret14); {6208#true} is VALID [2022-04-28 04:12:28,299 INFO L290 TraceCheckUtils]: 19: Hoare triple {6208#true} ~cond := #in~cond; {6208#true} is VALID [2022-04-28 04:12:28,299 INFO L290 TraceCheckUtils]: 20: Hoare triple {6208#true} assume !(0 == ~cond); {6208#true} is VALID [2022-04-28 04:12:28,299 INFO L290 TraceCheckUtils]: 21: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,299 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {6208#true} {6208#true} #146#return; {6208#true} is VALID [2022-04-28 04:12:28,299 INFO L290 TraceCheckUtils]: 23: Hoare triple {6208#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {6208#true} is VALID [2022-04-28 04:12:28,300 INFO L272 TraceCheckUtils]: 24: Hoare triple {6208#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {6252#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:12:28,300 INFO L290 TraceCheckUtils]: 25: Hoare triple {6252#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {6208#true} is VALID [2022-04-28 04:12:28,300 INFO L290 TraceCheckUtils]: 26: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,300 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {6208#true} {6208#true} #148#return; {6208#true} is VALID [2022-04-28 04:12:28,300 INFO L290 TraceCheckUtils]: 28: Hoare triple {6208#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {6208#true} is VALID [2022-04-28 04:12:28,301 INFO L272 TraceCheckUtils]: 29: Hoare triple {6208#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {6252#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:12:28,301 INFO L290 TraceCheckUtils]: 30: Hoare triple {6252#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {6208#true} is VALID [2022-04-28 04:12:28,301 INFO L290 TraceCheckUtils]: 31: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,301 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {6208#true} {6208#true} #150#return; {6208#true} is VALID [2022-04-28 04:12:28,301 INFO L290 TraceCheckUtils]: 33: Hoare triple {6208#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {6232#(= main_~i~1 0)} is VALID [2022-04-28 04:12:28,302 INFO L290 TraceCheckUtils]: 34: Hoare triple {6232#(= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {6232#(= main_~i~1 0)} is VALID [2022-04-28 04:12:28,302 INFO L290 TraceCheckUtils]: 35: Hoare triple {6232#(= main_~i~1 0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {6233#(<= 1 main_~i~1)} is VALID [2022-04-28 04:12:28,303 INFO L290 TraceCheckUtils]: 36: Hoare triple {6233#(<= 1 main_~i~1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {6234#(<= 2 main_~n~0)} is VALID [2022-04-28 04:12:28,303 INFO L290 TraceCheckUtils]: 37: Hoare triple {6234#(<= 2 main_~n~0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {6234#(<= 2 main_~n~0)} is VALID [2022-04-28 04:12:28,303 INFO L290 TraceCheckUtils]: 38: Hoare triple {6234#(<= 2 main_~n~0)} assume !(~i~1 < ~n~0); {6234#(<= 2 main_~n~0)} is VALID [2022-04-28 04:12:28,304 INFO L272 TraceCheckUtils]: 39: Hoare triple {6234#(<= 2 main_~n~0)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {6252#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:12:28,304 INFO L290 TraceCheckUtils]: 40: Hoare triple {6252#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {6208#true} is VALID [2022-04-28 04:12:28,304 INFO L290 TraceCheckUtils]: 41: Hoare triple {6208#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {6208#true} is VALID [2022-04-28 04:12:28,304 INFO L290 TraceCheckUtils]: 42: Hoare triple {6208#true} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {6208#true} is VALID [2022-04-28 04:12:28,304 INFO L290 TraceCheckUtils]: 43: Hoare triple {6208#true} assume !(~left~0 < ~n); {6208#true} is VALID [2022-04-28 04:12:28,304 INFO L290 TraceCheckUtils]: 44: Hoare triple {6208#true} ~space~0 := 2 * ~space~0; {6208#true} is VALID [2022-04-28 04:12:28,304 INFO L290 TraceCheckUtils]: 45: Hoare triple {6208#true} assume !(~space~0 < ~n); {6208#true} is VALID [2022-04-28 04:12:28,304 INFO L290 TraceCheckUtils]: 46: Hoare triple {6208#true} #res := ~space~0; {6208#true} is VALID [2022-04-28 04:12:28,304 INFO L290 TraceCheckUtils]: 47: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,305 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {6208#true} {6234#(<= 2 main_~n~0)} #152#return; {6234#(<= 2 main_~n~0)} is VALID [2022-04-28 04:12:28,305 INFO L290 TraceCheckUtils]: 49: Hoare triple {6234#(<= 2 main_~n~0)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {6234#(<= 2 main_~n~0)} is VALID [2022-04-28 04:12:28,306 INFO L272 TraceCheckUtils]: 50: Hoare triple {6234#(<= 2 main_~n~0)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {6252#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:12:28,306 INFO L290 TraceCheckUtils]: 51: Hoare triple {6252#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {6253#(<= |downsweep_#in~n| downsweep_~n)} is VALID [2022-04-28 04:12:28,307 INFO L290 TraceCheckUtils]: 52: Hoare triple {6253#(<= |downsweep_#in~n| downsweep_~n)} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {6254#(<= (+ downsweep_~right~1 |downsweep_#in~n| 1) (+ downsweep_~n (* 2 downsweep_~space)))} is VALID [2022-04-28 04:12:28,307 INFO L290 TraceCheckUtils]: 53: Hoare triple {6254#(<= (+ downsweep_~right~1 |downsweep_#in~n| 1) (+ downsweep_~n (* 2 downsweep_~space)))} assume !(~right~1 < ~n); {6255#(<= (+ |downsweep_#in~n| 1) (* 2 downsweep_~space))} is VALID [2022-04-28 04:12:28,308 INFO L290 TraceCheckUtils]: 54: Hoare triple {6255#(<= (+ |downsweep_#in~n| 1) (* 2 downsweep_~space))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {6256#(<= |downsweep_#in~n| (+ (* downsweep_~space 4) 1))} is VALID [2022-04-28 04:12:28,309 INFO L290 TraceCheckUtils]: 55: Hoare triple {6256#(<= |downsweep_#in~n| (+ (* downsweep_~space 4) 1))} assume !(~space > 0); {6257#(<= |downsweep_#in~n| 1)} is VALID [2022-04-28 04:12:28,309 INFO L290 TraceCheckUtils]: 56: Hoare triple {6257#(<= |downsweep_#in~n| 1)} assume true; {6257#(<= |downsweep_#in~n| 1)} is VALID [2022-04-28 04:12:28,310 INFO L284 TraceCheckUtils]: 57: Hoare quadruple {6257#(<= |downsweep_#in~n| 1)} {6234#(<= 2 main_~n~0)} #154#return; {6209#false} is VALID [2022-04-28 04:12:28,310 INFO L272 TraceCheckUtils]: 58: Hoare triple {6209#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {6209#false} is VALID [2022-04-28 04:12:28,310 INFO L290 TraceCheckUtils]: 59: Hoare triple {6209#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {6209#false} is VALID [2022-04-28 04:12:28,310 INFO L290 TraceCheckUtils]: 60: Hoare triple {6209#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {6209#false} is VALID [2022-04-28 04:12:28,310 INFO L272 TraceCheckUtils]: 61: Hoare triple {6209#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {6209#false} is VALID [2022-04-28 04:12:28,310 INFO L290 TraceCheckUtils]: 62: Hoare triple {6209#false} ~cond := #in~cond; {6209#false} is VALID [2022-04-28 04:12:28,310 INFO L290 TraceCheckUtils]: 63: Hoare triple {6209#false} assume 0 == ~cond; {6209#false} is VALID [2022-04-28 04:12:28,310 INFO L290 TraceCheckUtils]: 64: Hoare triple {6209#false} assume !false; {6209#false} is VALID [2022-04-28 04:12:28,310 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2022-04-28 04:12:28,310 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:12:28,310 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [150692941] [2022-04-28 04:12:28,310 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [150692941] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:12:28,311 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [450458286] [2022-04-28 04:12:28,311 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-28 04:12:28,311 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:12:28,311 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:12:28,312 INFO L229 MonitoredProcess]: Starting monitored process 8 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:12:28,312 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Waiting until timeout for monitored process [2022-04-28 04:12:28,379 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-28 04:12:28,379 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:12:28,380 INFO L263 TraceCheckSpWp]: Trace formula consists of 230 conjuncts, 10 conjunts are in the unsatisfiable core [2022-04-28 04:12:28,404 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:28,405 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:12:28,789 INFO L272 TraceCheckUtils]: 0: Hoare triple {6208#true} call ULTIMATE.init(); {6208#true} is VALID [2022-04-28 04:12:28,789 INFO L290 TraceCheckUtils]: 1: Hoare triple {6208#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {6208#true} is VALID [2022-04-28 04:12:28,789 INFO L290 TraceCheckUtils]: 2: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,789 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6208#true} {6208#true} #160#return; {6208#true} is VALID [2022-04-28 04:12:28,789 INFO L272 TraceCheckUtils]: 4: Hoare triple {6208#true} call #t~ret20 := main(); {6208#true} is VALID [2022-04-28 04:12:28,789 INFO L290 TraceCheckUtils]: 5: Hoare triple {6208#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {6208#true} is VALID [2022-04-28 04:12:28,790 INFO L272 TraceCheckUtils]: 6: Hoare triple {6208#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {6208#true} is VALID [2022-04-28 04:12:28,790 INFO L290 TraceCheckUtils]: 7: Hoare triple {6208#true} ~cond := #in~cond; {6208#true} is VALID [2022-04-28 04:12:28,790 INFO L290 TraceCheckUtils]: 8: Hoare triple {6208#true} assume !(0 == ~cond); {6208#true} is VALID [2022-04-28 04:12:28,790 INFO L290 TraceCheckUtils]: 9: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,790 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {6208#true} {6208#true} #142#return; {6208#true} is VALID [2022-04-28 04:12:28,790 INFO L272 TraceCheckUtils]: 11: Hoare triple {6208#true} call #t~ret14 := is_pow2(~n~0); {6208#true} is VALID [2022-04-28 04:12:28,790 INFO L290 TraceCheckUtils]: 12: Hoare triple {6208#true} ~x := #in~x; {6208#true} is VALID [2022-04-28 04:12:28,790 INFO L290 TraceCheckUtils]: 13: Hoare triple {6208#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {6208#true} is VALID [2022-04-28 04:12:28,790 INFO L290 TraceCheckUtils]: 14: Hoare triple {6208#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {6208#true} is VALID [2022-04-28 04:12:28,790 INFO L290 TraceCheckUtils]: 15: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,790 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {6208#true} {6208#true} #144#return; {6208#true} is VALID [2022-04-28 04:12:28,790 INFO L290 TraceCheckUtils]: 17: Hoare triple {6208#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {6208#true} is VALID [2022-04-28 04:12:28,790 INFO L272 TraceCheckUtils]: 18: Hoare triple {6208#true} call assume_abort_if_not(#t~ret14); {6208#true} is VALID [2022-04-28 04:12:28,790 INFO L290 TraceCheckUtils]: 19: Hoare triple {6208#true} ~cond := #in~cond; {6208#true} is VALID [2022-04-28 04:12:28,791 INFO L290 TraceCheckUtils]: 20: Hoare triple {6208#true} assume !(0 == ~cond); {6208#true} is VALID [2022-04-28 04:12:28,791 INFO L290 TraceCheckUtils]: 21: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,791 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {6208#true} {6208#true} #146#return; {6208#true} is VALID [2022-04-28 04:12:28,791 INFO L290 TraceCheckUtils]: 23: Hoare triple {6208#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {6208#true} is VALID [2022-04-28 04:12:28,791 INFO L272 TraceCheckUtils]: 24: Hoare triple {6208#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {6208#true} is VALID [2022-04-28 04:12:28,791 INFO L290 TraceCheckUtils]: 25: Hoare triple {6208#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {6208#true} is VALID [2022-04-28 04:12:28,791 INFO L290 TraceCheckUtils]: 26: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,791 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {6208#true} {6208#true} #148#return; {6208#true} is VALID [2022-04-28 04:12:28,791 INFO L290 TraceCheckUtils]: 28: Hoare triple {6208#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {6208#true} is VALID [2022-04-28 04:12:28,791 INFO L272 TraceCheckUtils]: 29: Hoare triple {6208#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {6208#true} is VALID [2022-04-28 04:12:28,791 INFO L290 TraceCheckUtils]: 30: Hoare triple {6208#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {6208#true} is VALID [2022-04-28 04:12:28,791 INFO L290 TraceCheckUtils]: 31: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,791 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {6208#true} {6208#true} #150#return; {6208#true} is VALID [2022-04-28 04:12:28,799 INFO L290 TraceCheckUtils]: 33: Hoare triple {6208#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {6360#(<= 0 main_~i~1)} is VALID [2022-04-28 04:12:28,800 INFO L290 TraceCheckUtils]: 34: Hoare triple {6360#(<= 0 main_~i~1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {6360#(<= 0 main_~i~1)} is VALID [2022-04-28 04:12:28,801 INFO L290 TraceCheckUtils]: 35: Hoare triple {6360#(<= 0 main_~i~1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {6233#(<= 1 main_~i~1)} is VALID [2022-04-28 04:12:28,801 INFO L290 TraceCheckUtils]: 36: Hoare triple {6233#(<= 1 main_~i~1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {6234#(<= 2 main_~n~0)} is VALID [2022-04-28 04:12:28,802 INFO L290 TraceCheckUtils]: 37: Hoare triple {6234#(<= 2 main_~n~0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {6234#(<= 2 main_~n~0)} is VALID [2022-04-28 04:12:28,802 INFO L290 TraceCheckUtils]: 38: Hoare triple {6234#(<= 2 main_~n~0)} assume !(~i~1 < ~n~0); {6234#(<= 2 main_~n~0)} is VALID [2022-04-28 04:12:28,802 INFO L272 TraceCheckUtils]: 39: Hoare triple {6234#(<= 2 main_~n~0)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {6208#true} is VALID [2022-04-28 04:12:28,802 INFO L290 TraceCheckUtils]: 40: Hoare triple {6208#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {6208#true} is VALID [2022-04-28 04:12:28,802 INFO L290 TraceCheckUtils]: 41: Hoare triple {6208#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {6208#true} is VALID [2022-04-28 04:12:28,802 INFO L290 TraceCheckUtils]: 42: Hoare triple {6208#true} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {6208#true} is VALID [2022-04-28 04:12:28,802 INFO L290 TraceCheckUtils]: 43: Hoare triple {6208#true} assume !(~left~0 < ~n); {6208#true} is VALID [2022-04-28 04:12:28,802 INFO L290 TraceCheckUtils]: 44: Hoare triple {6208#true} ~space~0 := 2 * ~space~0; {6208#true} is VALID [2022-04-28 04:12:28,802 INFO L290 TraceCheckUtils]: 45: Hoare triple {6208#true} assume !(~space~0 < ~n); {6208#true} is VALID [2022-04-28 04:12:28,802 INFO L290 TraceCheckUtils]: 46: Hoare triple {6208#true} #res := ~space~0; {6208#true} is VALID [2022-04-28 04:12:28,803 INFO L290 TraceCheckUtils]: 47: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:28,803 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {6208#true} {6234#(<= 2 main_~n~0)} #152#return; {6234#(<= 2 main_~n~0)} is VALID [2022-04-28 04:12:28,803 INFO L290 TraceCheckUtils]: 49: Hoare triple {6234#(<= 2 main_~n~0)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {6234#(<= 2 main_~n~0)} is VALID [2022-04-28 04:12:28,804 INFO L272 TraceCheckUtils]: 50: Hoare triple {6234#(<= 2 main_~n~0)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {6208#true} is VALID [2022-04-28 04:12:28,804 INFO L290 TraceCheckUtils]: 51: Hoare triple {6208#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {6253#(<= |downsweep_#in~n| downsweep_~n)} is VALID [2022-04-28 04:12:28,804 INFO L290 TraceCheckUtils]: 52: Hoare triple {6253#(<= |downsweep_#in~n| downsweep_~n)} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {6418#(and (<= |downsweep_#in~n| downsweep_~n) (<= (+ downsweep_~right~1 1) (* 2 downsweep_~space)) (< 0 downsweep_~space))} is VALID [2022-04-28 04:12:28,805 INFO L290 TraceCheckUtils]: 53: Hoare triple {6418#(and (<= |downsweep_#in~n| downsweep_~n) (<= (+ downsweep_~right~1 1) (* 2 downsweep_~space)) (< 0 downsweep_~space))} assume !(~right~1 < ~n); {6422#(and (<= (+ |downsweep_#in~n| 1) (* 2 downsweep_~space)) (< 0 downsweep_~space))} is VALID [2022-04-28 04:12:28,806 INFO L290 TraceCheckUtils]: 54: Hoare triple {6422#(and (<= (+ |downsweep_#in~n| 1) (* 2 downsweep_~space)) (< 0 downsweep_~space))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {6426#(and (< (div (+ (* (- 1) (div (+ (- 1) (* (- 1) |downsweep_#in~n|)) (- 2))) 1) (- 2)) (+ downsweep_~space 1)) (< 0 (+ downsweep_~space 1)))} is VALID [2022-04-28 04:12:28,807 INFO L290 TraceCheckUtils]: 55: Hoare triple {6426#(and (< (div (+ (* (- 1) (div (+ (- 1) (* (- 1) |downsweep_#in~n|)) (- 2))) 1) (- 2)) (+ downsweep_~space 1)) (< 0 (+ downsweep_~space 1)))} assume !(~space > 0); {6257#(<= |downsweep_#in~n| 1)} is VALID [2022-04-28 04:12:28,807 INFO L290 TraceCheckUtils]: 56: Hoare triple {6257#(<= |downsweep_#in~n| 1)} assume true; {6257#(<= |downsweep_#in~n| 1)} is VALID [2022-04-28 04:12:28,808 INFO L284 TraceCheckUtils]: 57: Hoare quadruple {6257#(<= |downsweep_#in~n| 1)} {6234#(<= 2 main_~n~0)} #154#return; {6209#false} is VALID [2022-04-28 04:12:28,808 INFO L272 TraceCheckUtils]: 58: Hoare triple {6209#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {6209#false} is VALID [2022-04-28 04:12:28,808 INFO L290 TraceCheckUtils]: 59: Hoare triple {6209#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {6209#false} is VALID [2022-04-28 04:12:28,808 INFO L290 TraceCheckUtils]: 60: Hoare triple {6209#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {6209#false} is VALID [2022-04-28 04:12:28,808 INFO L272 TraceCheckUtils]: 61: Hoare triple {6209#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {6209#false} is VALID [2022-04-28 04:12:28,808 INFO L290 TraceCheckUtils]: 62: Hoare triple {6209#false} ~cond := #in~cond; {6209#false} is VALID [2022-04-28 04:12:28,808 INFO L290 TraceCheckUtils]: 63: Hoare triple {6209#false} assume 0 == ~cond; {6209#false} is VALID [2022-04-28 04:12:28,808 INFO L290 TraceCheckUtils]: 64: Hoare triple {6209#false} assume !false; {6209#false} is VALID [2022-04-28 04:12:28,808 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 1 proven. 4 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2022-04-28 04:12:28,808 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:12:30,034 INFO L290 TraceCheckUtils]: 64: Hoare triple {6209#false} assume !false; {6209#false} is VALID [2022-04-28 04:12:30,034 INFO L290 TraceCheckUtils]: 63: Hoare triple {6209#false} assume 0 == ~cond; {6209#false} is VALID [2022-04-28 04:12:30,035 INFO L290 TraceCheckUtils]: 62: Hoare triple {6209#false} ~cond := #in~cond; {6209#false} is VALID [2022-04-28 04:12:30,035 INFO L272 TraceCheckUtils]: 61: Hoare triple {6209#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {6209#false} is VALID [2022-04-28 04:12:30,035 INFO L290 TraceCheckUtils]: 60: Hoare triple {6209#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {6209#false} is VALID [2022-04-28 04:12:30,035 INFO L290 TraceCheckUtils]: 59: Hoare triple {6209#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {6209#false} is VALID [2022-04-28 04:12:30,035 INFO L272 TraceCheckUtils]: 58: Hoare triple {6209#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {6209#false} is VALID [2022-04-28 04:12:30,036 INFO L284 TraceCheckUtils]: 57: Hoare quadruple {6257#(<= |downsweep_#in~n| 1)} {6234#(<= 2 main_~n~0)} #154#return; {6209#false} is VALID [2022-04-28 04:12:30,036 INFO L290 TraceCheckUtils]: 56: Hoare triple {6257#(<= |downsweep_#in~n| 1)} assume true; {6257#(<= |downsweep_#in~n| 1)} is VALID [2022-04-28 04:12:30,036 INFO L290 TraceCheckUtils]: 55: Hoare triple {6487#(or (<= |downsweep_#in~n| 1) (< 0 downsweep_~space))} assume !(~space > 0); {6257#(<= |downsweep_#in~n| 1)} is VALID [2022-04-28 04:12:30,037 INFO L290 TraceCheckUtils]: 54: Hoare triple {6491#(or (< 0 (div downsweep_~space 2)) (<= |downsweep_#in~n| 1))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {6487#(or (<= |downsweep_#in~n| 1) (< 0 downsweep_~space))} is VALID [2022-04-28 04:12:30,037 INFO L290 TraceCheckUtils]: 53: Hoare triple {6495#(or (< 0 (div downsweep_~space 2)) (<= |downsweep_#in~n| 1) (< downsweep_~right~1 downsweep_~n))} assume !(~right~1 < ~n); {6491#(or (< 0 (div downsweep_~space 2)) (<= |downsweep_#in~n| 1))} is VALID [2022-04-28 04:12:30,038 INFO L290 TraceCheckUtils]: 52: Hoare triple {6499#(or (<= 0 (div (+ (- 1) (div downsweep_~n 2)) 2)) (<= |downsweep_#in~n| 1))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {6495#(or (< 0 (div downsweep_~space 2)) (<= |downsweep_#in~n| 1) (< downsweep_~right~1 downsweep_~n))} is VALID [2022-04-28 04:12:30,039 INFO L290 TraceCheckUtils]: 51: Hoare triple {6208#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {6499#(or (<= 0 (div (+ (- 1) (div downsweep_~n 2)) 2)) (<= |downsweep_#in~n| 1))} is VALID [2022-04-28 04:12:30,039 INFO L272 TraceCheckUtils]: 50: Hoare triple {6234#(<= 2 main_~n~0)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {6208#true} is VALID [2022-04-28 04:12:30,039 INFO L290 TraceCheckUtils]: 49: Hoare triple {6234#(<= 2 main_~n~0)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {6234#(<= 2 main_~n~0)} is VALID [2022-04-28 04:12:30,040 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {6208#true} {6234#(<= 2 main_~n~0)} #152#return; {6234#(<= 2 main_~n~0)} is VALID [2022-04-28 04:12:30,040 INFO L290 TraceCheckUtils]: 47: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:30,040 INFO L290 TraceCheckUtils]: 46: Hoare triple {6208#true} #res := ~space~0; {6208#true} is VALID [2022-04-28 04:12:30,040 INFO L290 TraceCheckUtils]: 45: Hoare triple {6208#true} assume !(~space~0 < ~n); {6208#true} is VALID [2022-04-28 04:12:30,040 INFO L290 TraceCheckUtils]: 44: Hoare triple {6208#true} ~space~0 := 2 * ~space~0; {6208#true} is VALID [2022-04-28 04:12:30,040 INFO L290 TraceCheckUtils]: 43: Hoare triple {6208#true} assume !(~left~0 < ~n); {6208#true} is VALID [2022-04-28 04:12:30,041 INFO L290 TraceCheckUtils]: 42: Hoare triple {6208#true} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {6208#true} is VALID [2022-04-28 04:12:30,041 INFO L290 TraceCheckUtils]: 41: Hoare triple {6208#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {6208#true} is VALID [2022-04-28 04:12:30,041 INFO L290 TraceCheckUtils]: 40: Hoare triple {6208#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {6208#true} is VALID [2022-04-28 04:12:30,041 INFO L272 TraceCheckUtils]: 39: Hoare triple {6234#(<= 2 main_~n~0)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {6208#true} is VALID [2022-04-28 04:12:30,041 INFO L290 TraceCheckUtils]: 38: Hoare triple {6234#(<= 2 main_~n~0)} assume !(~i~1 < ~n~0); {6234#(<= 2 main_~n~0)} is VALID [2022-04-28 04:12:30,041 INFO L290 TraceCheckUtils]: 37: Hoare triple {6234#(<= 2 main_~n~0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {6234#(<= 2 main_~n~0)} is VALID [2022-04-28 04:12:30,042 INFO L290 TraceCheckUtils]: 36: Hoare triple {6233#(<= 1 main_~i~1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {6234#(<= 2 main_~n~0)} is VALID [2022-04-28 04:12:30,042 INFO L290 TraceCheckUtils]: 35: Hoare triple {6360#(<= 0 main_~i~1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {6233#(<= 1 main_~i~1)} is VALID [2022-04-28 04:12:30,043 INFO L290 TraceCheckUtils]: 34: Hoare triple {6360#(<= 0 main_~i~1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {6360#(<= 0 main_~i~1)} is VALID [2022-04-28 04:12:30,043 INFO L290 TraceCheckUtils]: 33: Hoare triple {6208#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {6360#(<= 0 main_~i~1)} is VALID [2022-04-28 04:12:30,043 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {6208#true} {6208#true} #150#return; {6208#true} is VALID [2022-04-28 04:12:30,043 INFO L290 TraceCheckUtils]: 31: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:30,043 INFO L290 TraceCheckUtils]: 30: Hoare triple {6208#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {6208#true} is VALID [2022-04-28 04:12:30,043 INFO L272 TraceCheckUtils]: 29: Hoare triple {6208#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {6208#true} is VALID [2022-04-28 04:12:30,043 INFO L290 TraceCheckUtils]: 28: Hoare triple {6208#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {6208#true} is VALID [2022-04-28 04:12:30,043 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {6208#true} {6208#true} #148#return; {6208#true} is VALID [2022-04-28 04:12:30,044 INFO L290 TraceCheckUtils]: 26: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:30,044 INFO L290 TraceCheckUtils]: 25: Hoare triple {6208#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {6208#true} is VALID [2022-04-28 04:12:30,044 INFO L272 TraceCheckUtils]: 24: Hoare triple {6208#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {6208#true} is VALID [2022-04-28 04:12:30,044 INFO L290 TraceCheckUtils]: 23: Hoare triple {6208#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {6208#true} is VALID [2022-04-28 04:12:30,044 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {6208#true} {6208#true} #146#return; {6208#true} is VALID [2022-04-28 04:12:30,044 INFO L290 TraceCheckUtils]: 21: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:30,044 INFO L290 TraceCheckUtils]: 20: Hoare triple {6208#true} assume !(0 == ~cond); {6208#true} is VALID [2022-04-28 04:12:30,044 INFO L290 TraceCheckUtils]: 19: Hoare triple {6208#true} ~cond := #in~cond; {6208#true} is VALID [2022-04-28 04:12:30,044 INFO L272 TraceCheckUtils]: 18: Hoare triple {6208#true} call assume_abort_if_not(#t~ret14); {6208#true} is VALID [2022-04-28 04:12:30,044 INFO L290 TraceCheckUtils]: 17: Hoare triple {6208#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {6208#true} is VALID [2022-04-28 04:12:30,044 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {6208#true} {6208#true} #144#return; {6208#true} is VALID [2022-04-28 04:12:30,044 INFO L290 TraceCheckUtils]: 15: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:30,044 INFO L290 TraceCheckUtils]: 14: Hoare triple {6208#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {6208#true} is VALID [2022-04-28 04:12:30,044 INFO L290 TraceCheckUtils]: 13: Hoare triple {6208#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {6208#true} is VALID [2022-04-28 04:12:30,045 INFO L290 TraceCheckUtils]: 12: Hoare triple {6208#true} ~x := #in~x; {6208#true} is VALID [2022-04-28 04:12:30,045 INFO L272 TraceCheckUtils]: 11: Hoare triple {6208#true} call #t~ret14 := is_pow2(~n~0); {6208#true} is VALID [2022-04-28 04:12:30,045 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {6208#true} {6208#true} #142#return; {6208#true} is VALID [2022-04-28 04:12:30,045 INFO L290 TraceCheckUtils]: 9: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:30,045 INFO L290 TraceCheckUtils]: 8: Hoare triple {6208#true} assume !(0 == ~cond); {6208#true} is VALID [2022-04-28 04:12:30,045 INFO L290 TraceCheckUtils]: 7: Hoare triple {6208#true} ~cond := #in~cond; {6208#true} is VALID [2022-04-28 04:12:30,045 INFO L272 TraceCheckUtils]: 6: Hoare triple {6208#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {6208#true} is VALID [2022-04-28 04:12:30,045 INFO L290 TraceCheckUtils]: 5: Hoare triple {6208#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {6208#true} is VALID [2022-04-28 04:12:30,045 INFO L272 TraceCheckUtils]: 4: Hoare triple {6208#true} call #t~ret20 := main(); {6208#true} is VALID [2022-04-28 04:12:30,045 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6208#true} {6208#true} #160#return; {6208#true} is VALID [2022-04-28 04:12:30,045 INFO L290 TraceCheckUtils]: 2: Hoare triple {6208#true} assume true; {6208#true} is VALID [2022-04-28 04:12:30,045 INFO L290 TraceCheckUtils]: 1: Hoare triple {6208#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {6208#true} is VALID [2022-04-28 04:12:30,045 INFO L272 TraceCheckUtils]: 0: Hoare triple {6208#true} call ULTIMATE.init(); {6208#true} is VALID [2022-04-28 04:12:30,046 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 1 proven. 4 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2022-04-28 04:12:30,046 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [450458286] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:12:30,046 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-28 04:12:30,046 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 10, 10] total 20 [2022-04-28 04:12:30,046 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:12:30,046 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [706091588] [2022-04-28 04:12:30,046 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [706091588] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:12:30,046 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:12:30,046 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [12] imperfect sequences [] total 12 [2022-04-28 04:12:30,046 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1313233633] [2022-04-28 04:12:30,046 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:12:30,047 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 12 states have (on average 3.4166666666666665) internal successors, (41), 10 states have internal predecessors, (41), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) Word has length 65 [2022-04-28 04:12:30,047 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:12:30,047 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 12 states, 12 states have (on average 3.4166666666666665) internal successors, (41), 10 states have internal predecessors, (41), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:12:30,086 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 60 edges. 60 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:12:30,086 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-04-28 04:12:30,086 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:12:30,086 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-04-28 04:12:30,086 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=64, Invalid=316, Unknown=0, NotChecked=0, Total=380 [2022-04-28 04:12:30,087 INFO L87 Difference]: Start difference. First operand 73 states and 82 transitions. Second operand has 12 states, 12 states have (on average 3.4166666666666665) internal successors, (41), 10 states have internal predecessors, (41), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:12:34,434 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:12:36,564 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.13s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:12:38,724 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.16s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:12:43,019 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:12:45,167 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.15s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:12:47,296 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.13s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:12:49,433 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:12:50,785 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:12:50,785 INFO L93 Difference]: Finished difference Result 95 states and 108 transitions. [2022-04-28 04:12:50,785 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-04-28 04:12:50,785 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 12 states have (on average 3.4166666666666665) internal successors, (41), 10 states have internal predecessors, (41), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) Word has length 65 [2022-04-28 04:12:50,786 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:12:50,786 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 12 states have (on average 3.4166666666666665) internal successors, (41), 10 states have internal predecessors, (41), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:12:50,787 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 95 transitions. [2022-04-28 04:12:50,787 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 12 states have (on average 3.4166666666666665) internal successors, (41), 10 states have internal predecessors, (41), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:12:50,788 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 95 transitions. [2022-04-28 04:12:50,788 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 15 states and 95 transitions. [2022-04-28 04:12:50,865 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 95 edges. 95 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:12:50,866 INFO L225 Difference]: With dead ends: 95 [2022-04-28 04:12:50,866 INFO L226 Difference]: Without dead ends: 81 [2022-04-28 04:12:50,867 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 166 GetRequests, 133 SyntacticMatches, 4 SemanticMatches, 29 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 116 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=158, Invalid=772, Unknown=0, NotChecked=0, Total=930 [2022-04-28 04:12:50,869 INFO L413 NwaCegarLoop]: 46 mSDtfsCounter, 83 mSDsluCounter, 16 mSDsCounter, 0 mSdLazyCounter, 597 mSolverCounterSat, 43 mSolverCounterUnsat, 7 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 14.6s Time, 0 mProtectedPredicate, 0 mProtectedAction, 84 SdHoareTripleChecker+Valid, 62 SdHoareTripleChecker+Invalid, 647 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 43 IncrementalHoareTripleChecker+Valid, 597 IncrementalHoareTripleChecker+Invalid, 7 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 15.3s IncrementalHoareTripleChecker+Time [2022-04-28 04:12:50,869 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [84 Valid, 62 Invalid, 647 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [43 Valid, 597 Invalid, 7 Unknown, 0 Unchecked, 15.3s Time] [2022-04-28 04:12:50,869 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 81 states. [2022-04-28 04:12:50,961 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 81 to 76. [2022-04-28 04:12:50,961 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:12:50,962 INFO L82 GeneralOperation]: Start isEquivalent. First operand 81 states. Second operand has 76 states, 53 states have (on average 1.169811320754717) internal successors, (62), 54 states have internal predecessors, (62), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) [2022-04-28 04:12:50,962 INFO L74 IsIncluded]: Start isIncluded. First operand 81 states. Second operand has 76 states, 53 states have (on average 1.169811320754717) internal successors, (62), 54 states have internal predecessors, (62), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) [2022-04-28 04:12:50,962 INFO L87 Difference]: Start difference. First operand 81 states. Second operand has 76 states, 53 states have (on average 1.169811320754717) internal successors, (62), 54 states have internal predecessors, (62), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) [2022-04-28 04:12:50,963 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:12:50,964 INFO L93 Difference]: Finished difference Result 81 states and 93 transitions. [2022-04-28 04:12:50,964 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 93 transitions. [2022-04-28 04:12:50,964 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:12:50,964 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:12:50,964 INFO L74 IsIncluded]: Start isIncluded. First operand has 76 states, 53 states have (on average 1.169811320754717) internal successors, (62), 54 states have internal predecessors, (62), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) Second operand 81 states. [2022-04-28 04:12:50,964 INFO L87 Difference]: Start difference. First operand has 76 states, 53 states have (on average 1.169811320754717) internal successors, (62), 54 states have internal predecessors, (62), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) Second operand 81 states. [2022-04-28 04:12:50,966 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:12:50,966 INFO L93 Difference]: Finished difference Result 81 states and 93 transitions. [2022-04-28 04:12:50,966 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 93 transitions. [2022-04-28 04:12:50,966 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:12:50,966 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:12:50,966 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:12:50,966 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:12:50,966 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 76 states, 53 states have (on average 1.169811320754717) internal successors, (62), 54 states have internal predecessors, (62), 13 states have call successors, (13), 11 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 10 states have call successors, (11) [2022-04-28 04:12:50,983 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 76 states to 76 states and 86 transitions. [2022-04-28 04:12:50,984 INFO L78 Accepts]: Start accepts. Automaton has 76 states and 86 transitions. Word has length 65 [2022-04-28 04:12:50,984 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:12:50,984 INFO L495 AbstractCegarLoop]: Abstraction has 76 states and 86 transitions. [2022-04-28 04:12:50,984 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 12 states, 12 states have (on average 3.4166666666666665) internal successors, (41), 10 states have internal predecessors, (41), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:12:50,984 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 76 states and 86 transitions. [2022-04-28 04:12:51,096 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 86 edges. 86 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:12:51,096 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 86 transitions. [2022-04-28 04:12:51,096 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 67 [2022-04-28 04:12:51,096 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:12:51,097 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1] [2022-04-28 04:12:51,114 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Forceful destruction successful, exit code 0 [2022-04-28 04:12:51,314 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable8,8 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:12:51,315 INFO L420 AbstractCegarLoop]: === Iteration 10 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:12:51,315 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:12:51,315 INFO L85 PathProgramCache]: Analyzing trace with hash -1084413588, now seen corresponding path program 1 times [2022-04-28 04:12:51,315 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:12:51,315 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1996183784] [2022-04-28 04:12:51,316 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:12:51,316 INFO L85 PathProgramCache]: Analyzing trace with hash -1084413588, now seen corresponding path program 2 times [2022-04-28 04:12:51,316 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:12:51,316 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1055376560] [2022-04-28 04:12:51,316 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:12:51,316 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:12:51,341 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:52,038 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:12:52,039 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:52,052 INFO L290 TraceCheckUtils]: 0: Hoare triple {7237#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {7182#true} is VALID [2022-04-28 04:12:52,052 INFO L290 TraceCheckUtils]: 1: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:12:52,052 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {7182#true} {7182#true} #160#return; {7182#true} is VALID [2022-04-28 04:12:52,052 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:12:52,053 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:52,055 INFO L290 TraceCheckUtils]: 0: Hoare triple {7182#true} ~cond := #in~cond; {7182#true} is VALID [2022-04-28 04:12:52,055 INFO L290 TraceCheckUtils]: 1: Hoare triple {7182#true} assume !(0 == ~cond); {7182#true} is VALID [2022-04-28 04:12:52,055 INFO L290 TraceCheckUtils]: 2: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:12:52,055 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7182#true} {7182#true} #142#return; {7182#true} is VALID [2022-04-28 04:12:52,055 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:12:52,056 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:52,058 INFO L290 TraceCheckUtils]: 0: Hoare triple {7182#true} ~x := #in~x; {7182#true} is VALID [2022-04-28 04:12:52,058 INFO L290 TraceCheckUtils]: 1: Hoare triple {7182#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {7182#true} is VALID [2022-04-28 04:12:52,058 INFO L290 TraceCheckUtils]: 2: Hoare triple {7182#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {7182#true} is VALID [2022-04-28 04:12:52,058 INFO L290 TraceCheckUtils]: 3: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:12:52,058 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {7182#true} {7182#true} #144#return; {7182#true} is VALID [2022-04-28 04:12:52,059 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:12:52,059 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:52,060 INFO L290 TraceCheckUtils]: 0: Hoare triple {7182#true} ~cond := #in~cond; {7182#true} is VALID [2022-04-28 04:12:52,060 INFO L290 TraceCheckUtils]: 1: Hoare triple {7182#true} assume !(0 == ~cond); {7182#true} is VALID [2022-04-28 04:12:52,060 INFO L290 TraceCheckUtils]: 2: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:12:52,061 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7182#true} {7182#true} #146#return; {7182#true} is VALID [2022-04-28 04:12:52,098 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:12:52,100 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:52,123 INFO L290 TraceCheckUtils]: 0: Hoare triple {7238#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {7239#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-28 04:12:52,123 INFO L290 TraceCheckUtils]: 1: Hoare triple {7239#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} assume true; {7239#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-28 04:12:52,124 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {7239#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} {7200#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0))} #148#return; {7204#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc15.base|)))} is VALID [2022-04-28 04:12:52,124 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:12:52,126 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:52,152 INFO L290 TraceCheckUtils]: 0: Hoare triple {7238#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {7240#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-04-28 04:12:52,152 INFO L290 TraceCheckUtils]: 1: Hoare triple {7240#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} assume true; {7240#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-04-28 04:12:52,153 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {7240#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} {7205#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} #150#return; {7205#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} is VALID [2022-04-28 04:12:52,153 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 39 [2022-04-28 04:12:52,164 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:52,253 INFO L290 TraceCheckUtils]: 0: Hoare triple {7238#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {7241#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base))} is VALID [2022-04-28 04:12:52,254 INFO L290 TraceCheckUtils]: 1: Hoare triple {7241#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {7241#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base))} is VALID [2022-04-28 04:12:52,255 INFO L290 TraceCheckUtils]: 2: Hoare triple {7241#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} is VALID [2022-04-28 04:12:52,256 INFO L290 TraceCheckUtils]: 3: Hoare triple {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} assume !(~left~0 < ~n); {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} is VALID [2022-04-28 04:12:52,256 INFO L290 TraceCheckUtils]: 4: Hoare triple {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} ~space~0 := 2 * ~space~0; {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} is VALID [2022-04-28 04:12:52,256 INFO L290 TraceCheckUtils]: 5: Hoare triple {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} assume !(~space~0 < ~n); {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} is VALID [2022-04-28 04:12:52,257 INFO L290 TraceCheckUtils]: 6: Hoare triple {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} #res := ~space~0; {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} is VALID [2022-04-28 04:12:52,257 INFO L290 TraceCheckUtils]: 7: Hoare triple {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} assume true; {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} is VALID [2022-04-28 04:12:52,259 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} {7212#(and (<= main_~n~0 2) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} #152#return; {7222#(and (<= main_~n~0 2) (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= main_~a~0.offset 0) (not (= main_~a~0.base main_~a0~0.base)) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= 4 (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))))} is VALID [2022-04-28 04:12:52,259 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 50 [2022-04-28 04:12:52,313 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:56,902 INFO L290 TraceCheckUtils]: 0: Hoare triple {7238#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {7243#(and (= downsweep_~n |downsweep_#in~n|) (= (select (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4))) 0) (or (and (= downsweep_~a.base |downsweep_#in~a.base|) (= (store (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (select (select |old(#memory_int)| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)))) (select |old(#memory_int)| downsweep_~a.base)) (<= |downsweep_#in~a.offset| downsweep_~a.offset)) (not (= |downsweep_#in~a.offset| 0))))} is VALID [2022-04-28 04:12:56,903 INFO L290 TraceCheckUtils]: 1: Hoare triple {7243#(and (= downsweep_~n |downsweep_#in~n|) (= (select (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4))) 0) (or (and (= downsweep_~a.base |downsweep_#in~a.base|) (= (store (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (select (select |old(#memory_int)| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)))) (select |old(#memory_int)| downsweep_~a.base)) (<= |downsweep_#in~a.offset| downsweep_~a.offset)) (not (= |downsweep_#in~a.offset| 0))))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {7244#(and (or (= (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (+ downsweep_~a.offset (* downsweep_~right~1 4))) (and (= downsweep_~n |downsweep_#in~n|) (or (<= 1 downsweep_~right~1) (<= downsweep_~n (+ downsweep_~right~1 1))))) (or (and (= (select (select |#memory_int| downsweep_~a.base) (+ downsweep_~a.offset (* downsweep_~right~1 4))) 0) (or (and (= downsweep_~a.base |downsweep_#in~a.base|) (= (store (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (select (select |old(#memory_int)| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)))) (select |old(#memory_int)| downsweep_~a.base)) (<= (+ |downsweep_#in~a.offset| 4) (+ downsweep_~a.offset (* downsweep_~right~1 4)))) (not (= |downsweep_#in~a.offset| 0)))) (not (= (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (+ downsweep_~a.offset (* downsweep_~right~1 4))))))} is VALID [2022-04-28 04:12:56,911 INFO L290 TraceCheckUtils]: 2: Hoare triple {7244#(and (or (= (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (+ downsweep_~a.offset (* downsweep_~right~1 4))) (and (= downsweep_~n |downsweep_#in~n|) (or (<= 1 downsweep_~right~1) (<= downsweep_~n (+ downsweep_~right~1 1))))) (or (and (= (select (select |#memory_int| downsweep_~a.base) (+ downsweep_~a.offset (* downsweep_~right~1 4))) 0) (or (and (= downsweep_~a.base |downsweep_#in~a.base|) (= (store (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (select (select |old(#memory_int)| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)))) (select |old(#memory_int)| downsweep_~a.base)) (<= (+ |downsweep_#in~a.offset| 4) (+ downsweep_~a.offset (* downsweep_~right~1 4)))) (not (= |downsweep_#in~a.offset| 0)))) (not (= (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (+ downsweep_~a.offset (* downsweep_~right~1 4))))))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {7245#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (and (<= 3 downsweep_~n) (= downsweep_~n |downsweep_#in~n|)) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:12:56,915 INFO L290 TraceCheckUtils]: 3: Hoare triple {7245#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (and (<= 3 downsweep_~n) (= downsweep_~n |downsweep_#in~n|)) (not (= |downsweep_#in~a.offset| 0)))} assume !(~right~1 < ~n); {7246#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:12:56,917 INFO L290 TraceCheckUtils]: 4: Hoare triple {7246#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {7246#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:12:56,919 INFO L290 TraceCheckUtils]: 5: Hoare triple {7246#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} assume !(~space > 0); {7246#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:12:56,921 INFO L290 TraceCheckUtils]: 6: Hoare triple {7246#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} assume true; {7246#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:12:56,955 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {7246#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} {7222#(and (<= main_~n~0 2) (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= main_~a~0.offset 0) (not (= main_~a~0.base main_~a0~0.base)) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= 4 (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))))} #154#return; {7231#(and (or (= (select (select |#memory_int| main_~a~0.base) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0) (<= 4 (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (= main_~a~0.offset 0) (or (<= 4 (@diff (store (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= ((as const (Array Int Int)) 0) (store (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (or (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (<= 4 (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (store (store (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= 4 (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))))} is VALID [2022-04-28 04:12:56,963 INFO L272 TraceCheckUtils]: 0: Hoare triple {7182#true} call ULTIMATE.init(); {7237#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:12:56,963 INFO L290 TraceCheckUtils]: 1: Hoare triple {7237#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {7182#true} is VALID [2022-04-28 04:12:56,964 INFO L290 TraceCheckUtils]: 2: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:12:56,964 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7182#true} {7182#true} #160#return; {7182#true} is VALID [2022-04-28 04:12:56,964 INFO L272 TraceCheckUtils]: 4: Hoare triple {7182#true} call #t~ret20 := main(); {7182#true} is VALID [2022-04-28 04:12:56,964 INFO L290 TraceCheckUtils]: 5: Hoare triple {7182#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {7182#true} is VALID [2022-04-28 04:12:56,964 INFO L272 TraceCheckUtils]: 6: Hoare triple {7182#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {7182#true} is VALID [2022-04-28 04:12:56,964 INFO L290 TraceCheckUtils]: 7: Hoare triple {7182#true} ~cond := #in~cond; {7182#true} is VALID [2022-04-28 04:12:56,964 INFO L290 TraceCheckUtils]: 8: Hoare triple {7182#true} assume !(0 == ~cond); {7182#true} is VALID [2022-04-28 04:12:56,964 INFO L290 TraceCheckUtils]: 9: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:12:56,964 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7182#true} {7182#true} #142#return; {7182#true} is VALID [2022-04-28 04:12:56,964 INFO L272 TraceCheckUtils]: 11: Hoare triple {7182#true} call #t~ret14 := is_pow2(~n~0); {7182#true} is VALID [2022-04-28 04:12:56,964 INFO L290 TraceCheckUtils]: 12: Hoare triple {7182#true} ~x := #in~x; {7182#true} is VALID [2022-04-28 04:12:56,964 INFO L290 TraceCheckUtils]: 13: Hoare triple {7182#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {7182#true} is VALID [2022-04-28 04:12:56,964 INFO L290 TraceCheckUtils]: 14: Hoare triple {7182#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {7182#true} is VALID [2022-04-28 04:12:56,964 INFO L290 TraceCheckUtils]: 15: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:12:56,965 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {7182#true} {7182#true} #144#return; {7182#true} is VALID [2022-04-28 04:12:56,965 INFO L290 TraceCheckUtils]: 17: Hoare triple {7182#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {7182#true} is VALID [2022-04-28 04:12:56,965 INFO L272 TraceCheckUtils]: 18: Hoare triple {7182#true} call assume_abort_if_not(#t~ret14); {7182#true} is VALID [2022-04-28 04:12:56,965 INFO L290 TraceCheckUtils]: 19: Hoare triple {7182#true} ~cond := #in~cond; {7182#true} is VALID [2022-04-28 04:12:56,965 INFO L290 TraceCheckUtils]: 20: Hoare triple {7182#true} assume !(0 == ~cond); {7182#true} is VALID [2022-04-28 04:12:56,965 INFO L290 TraceCheckUtils]: 21: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:12:56,965 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {7182#true} {7182#true} #146#return; {7182#true} is VALID [2022-04-28 04:12:56,966 INFO L290 TraceCheckUtils]: 23: Hoare triple {7182#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {7200#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0))} is VALID [2022-04-28 04:12:56,967 INFO L272 TraceCheckUtils]: 24: Hoare triple {7200#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0))} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {7238#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:12:56,967 INFO L290 TraceCheckUtils]: 25: Hoare triple {7238#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {7239#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-28 04:12:56,968 INFO L290 TraceCheckUtils]: 26: Hoare triple {7239#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} assume true; {7239#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-28 04:12:56,969 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {7239#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} {7200#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0))} #148#return; {7204#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc15.base|)))} is VALID [2022-04-28 04:12:56,969 INFO L290 TraceCheckUtils]: 28: Hoare triple {7204#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc15.base|)))} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {7205#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} is VALID [2022-04-28 04:12:56,970 INFO L272 TraceCheckUtils]: 29: Hoare triple {7205#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {7238#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:12:56,970 INFO L290 TraceCheckUtils]: 30: Hoare triple {7238#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {7240#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-04-28 04:12:56,971 INFO L290 TraceCheckUtils]: 31: Hoare triple {7240#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} assume true; {7240#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-04-28 04:12:56,972 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {7240#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} {7205#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} #150#return; {7205#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} is VALID [2022-04-28 04:12:56,972 INFO L290 TraceCheckUtils]: 33: Hoare triple {7205#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {7209#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~i~1 0))} is VALID [2022-04-28 04:12:56,973 INFO L290 TraceCheckUtils]: 34: Hoare triple {7209#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~i~1 0))} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {7209#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~i~1 0))} is VALID [2022-04-28 04:12:56,973 INFO L290 TraceCheckUtils]: 35: Hoare triple {7209#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~i~1 0))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {7210#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= main_~i~1 1) (not (= main_~a~0.base main_~a0~0.base)))} is VALID [2022-04-28 04:12:56,974 INFO L290 TraceCheckUtils]: 36: Hoare triple {7210#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= main_~i~1 1) (not (= main_~a~0.base main_~a0~0.base)))} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {7210#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= main_~i~1 1) (not (= main_~a~0.base main_~a0~0.base)))} is VALID [2022-04-28 04:12:56,974 INFO L290 TraceCheckUtils]: 37: Hoare triple {7210#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= main_~i~1 1) (not (= main_~a~0.base main_~a0~0.base)))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {7211#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= main_~i~1 2) (not (= main_~a~0.base main_~a0~0.base)))} is VALID [2022-04-28 04:12:56,975 INFO L290 TraceCheckUtils]: 38: Hoare triple {7211#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= main_~i~1 2) (not (= main_~a~0.base main_~a0~0.base)))} assume !(~i~1 < ~n~0); {7212#(and (<= main_~n~0 2) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} is VALID [2022-04-28 04:12:56,975 INFO L272 TraceCheckUtils]: 39: Hoare triple {7212#(and (<= main_~n~0 2) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {7238#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:12:56,976 INFO L290 TraceCheckUtils]: 40: Hoare triple {7238#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {7241#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base))} is VALID [2022-04-28 04:12:56,976 INFO L290 TraceCheckUtils]: 41: Hoare triple {7241#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {7241#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base))} is VALID [2022-04-28 04:12:56,977 INFO L290 TraceCheckUtils]: 42: Hoare triple {7241#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} is VALID [2022-04-28 04:12:56,977 INFO L290 TraceCheckUtils]: 43: Hoare triple {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} assume !(~left~0 < ~n); {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} is VALID [2022-04-28 04:12:56,978 INFO L290 TraceCheckUtils]: 44: Hoare triple {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} ~space~0 := 2 * ~space~0; {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} is VALID [2022-04-28 04:12:56,978 INFO L290 TraceCheckUtils]: 45: Hoare triple {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} assume !(~space~0 < ~n); {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} is VALID [2022-04-28 04:12:56,978 INFO L290 TraceCheckUtils]: 46: Hoare triple {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} #res := ~space~0; {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} is VALID [2022-04-28 04:12:56,979 INFO L290 TraceCheckUtils]: 47: Hoare triple {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} assume true; {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} is VALID [2022-04-28 04:12:56,980 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {7242#(or (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))) (= (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|))) 0))} {7212#(and (<= main_~n~0 2) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)))} #152#return; {7222#(and (<= main_~n~0 2) (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= main_~a~0.offset 0) (not (= main_~a~0.base main_~a0~0.base)) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= 4 (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))))} is VALID [2022-04-28 04:12:56,981 INFO L290 TraceCheckUtils]: 49: Hoare triple {7222#(and (<= main_~n~0 2) (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= main_~a~0.offset 0) (not (= main_~a~0.base main_~a0~0.base)) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= 4 (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))))} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {7222#(and (<= main_~n~0 2) (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= main_~a~0.offset 0) (not (= main_~a~0.base main_~a0~0.base)) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= 4 (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))))} is VALID [2022-04-28 04:12:56,982 INFO L272 TraceCheckUtils]: 50: Hoare triple {7222#(and (<= main_~n~0 2) (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= main_~a~0.offset 0) (not (= main_~a~0.base main_~a0~0.base)) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= 4 (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))))} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {7238#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:12:56,982 INFO L290 TraceCheckUtils]: 51: Hoare triple {7238#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {7243#(and (= downsweep_~n |downsweep_#in~n|) (= (select (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4))) 0) (or (and (= downsweep_~a.base |downsweep_#in~a.base|) (= (store (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (select (select |old(#memory_int)| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)))) (select |old(#memory_int)| downsweep_~a.base)) (<= |downsweep_#in~a.offset| downsweep_~a.offset)) (not (= |downsweep_#in~a.offset| 0))))} is VALID [2022-04-28 04:12:56,984 INFO L290 TraceCheckUtils]: 52: Hoare triple {7243#(and (= downsweep_~n |downsweep_#in~n|) (= (select (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4))) 0) (or (and (= downsweep_~a.base |downsweep_#in~a.base|) (= (store (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (select (select |old(#memory_int)| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)))) (select |old(#memory_int)| downsweep_~a.base)) (<= |downsweep_#in~a.offset| downsweep_~a.offset)) (not (= |downsweep_#in~a.offset| 0))))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {7244#(and (or (= (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (+ downsweep_~a.offset (* downsweep_~right~1 4))) (and (= downsweep_~n |downsweep_#in~n|) (or (<= 1 downsweep_~right~1) (<= downsweep_~n (+ downsweep_~right~1 1))))) (or (and (= (select (select |#memory_int| downsweep_~a.base) (+ downsweep_~a.offset (* downsweep_~right~1 4))) 0) (or (and (= downsweep_~a.base |downsweep_#in~a.base|) (= (store (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (select (select |old(#memory_int)| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)))) (select |old(#memory_int)| downsweep_~a.base)) (<= (+ |downsweep_#in~a.offset| 4) (+ downsweep_~a.offset (* downsweep_~right~1 4)))) (not (= |downsweep_#in~a.offset| 0)))) (not (= (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (+ downsweep_~a.offset (* downsweep_~right~1 4))))))} is VALID [2022-04-28 04:12:56,990 INFO L290 TraceCheckUtils]: 53: Hoare triple {7244#(and (or (= (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (+ downsweep_~a.offset (* downsweep_~right~1 4))) (and (= downsweep_~n |downsweep_#in~n|) (or (<= 1 downsweep_~right~1) (<= downsweep_~n (+ downsweep_~right~1 1))))) (or (and (= (select (select |#memory_int| downsweep_~a.base) (+ downsweep_~a.offset (* downsweep_~right~1 4))) 0) (or (and (= downsweep_~a.base |downsweep_#in~a.base|) (= (store (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (select (select |old(#memory_int)| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)))) (select |old(#memory_int)| downsweep_~a.base)) (<= (+ |downsweep_#in~a.offset| 4) (+ downsweep_~a.offset (* downsweep_~right~1 4)))) (not (= |downsweep_#in~a.offset| 0)))) (not (= (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (+ downsweep_~a.offset (* downsweep_~right~1 4))))))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {7245#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (and (<= 3 downsweep_~n) (= downsweep_~n |downsweep_#in~n|)) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:12:56,992 INFO L290 TraceCheckUtils]: 54: Hoare triple {7245#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (and (<= 3 downsweep_~n) (= downsweep_~n |downsweep_#in~n|)) (not (= |downsweep_#in~a.offset| 0)))} assume !(~right~1 < ~n); {7246#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:12:56,993 INFO L290 TraceCheckUtils]: 55: Hoare triple {7246#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {7246#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:12:56,995 INFO L290 TraceCheckUtils]: 56: Hoare triple {7246#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} assume !(~space > 0); {7246#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:12:56,997 INFO L290 TraceCheckUtils]: 57: Hoare triple {7246#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} assume true; {7246#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:12:57,036 INFO L284 TraceCheckUtils]: 58: Hoare quadruple {7246#(or (and (= (store (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select |old(#memory_int)| |downsweep_#in~a.base|) (select |#memory_int| |downsweep_#in~a.base|)) (<= (+ |downsweep_#in~a.offset| 4) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (select |old(#memory_int)| |downsweep_#in~a.base|) (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))))) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0) (= (store (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (<= (+ |downsweep_#in~a.offset| 4) (@diff (store (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (select |old(#memory_int)| |downsweep_#in~a.base|))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (@diff (select |#memory_int| |downsweep_#in~a.base|) (select |old(#memory_int)| |downsweep_#in~a.base|))) 0)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} {7222#(and (<= main_~n~0 2) (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= main_~a~0.offset 0) (not (= main_~a~0.base main_~a0~0.base)) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= 4 (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))))} #154#return; {7231#(and (or (= (select (select |#memory_int| main_~a~0.base) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0) (<= 4 (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (= main_~a~0.offset 0) (or (<= 4 (@diff (store (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= ((as const (Array Int Int)) 0) (store (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (or (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (<= 4 (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (store (store (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= 4 (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))))} is VALID [2022-04-28 04:12:57,039 INFO L272 TraceCheckUtils]: 59: Hoare triple {7231#(and (or (= (select (select |#memory_int| main_~a~0.base) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0) (<= 4 (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (= main_~a~0.offset 0) (or (<= 4 (@diff (store (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= ((as const (Array Int Int)) 0) (store (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (or (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (<= 4 (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (store (store (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= 4 (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))))} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {7232#(and (or (<= 4 (@diff (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |check_#in~a.base|) (@diff (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (= |check_#in~a.offset| 0) (or (<= 4 (@diff (store (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= ((as const (Array Int Int)) 0) (store (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (or (= ((as const (Array Int Int)) 0) (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0)) (<= 4 (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (store (store (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (or (<= 4 (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0))) 0)))} is VALID [2022-04-28 04:12:57,043 INFO L290 TraceCheckUtils]: 60: Hoare triple {7232#(and (or (<= 4 (@diff (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |check_#in~a.base|) (@diff (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (= |check_#in~a.offset| 0) (or (<= 4 (@diff (store (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= ((as const (Array Int Int)) 0) (store (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (or (= ((as const (Array Int Int)) 0) (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0)) (<= 4 (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (store (store (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (or (<= 4 (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |check_#in~a.base|) (@diff (select |#memory_int| |check_#in~a.base|) ((as const (Array Int Int)) 0))) 0)))} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {7233#(and (= (select (select |#memory_int| check_~a.base) (+ (* check_~i~0 4) check_~a.offset)) check_~sum~0) (= check_~i~0 0) (= check_~a.offset 0))} is VALID [2022-04-28 04:12:57,044 INFO L290 TraceCheckUtils]: 61: Hoare triple {7233#(and (= (select (select |#memory_int| check_~a.base) (+ (* check_~i~0 4) check_~a.offset)) check_~sum~0) (= check_~i~0 0) (= check_~a.offset 0))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {7234#(= |check_#t~mem11| check_~sum~0)} is VALID [2022-04-28 04:12:57,044 INFO L272 TraceCheckUtils]: 62: Hoare triple {7234#(= |check_#t~mem11| check_~sum~0)} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {7235#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-28 04:12:57,045 INFO L290 TraceCheckUtils]: 63: Hoare triple {7235#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {7236#(not (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-28 04:12:57,045 INFO L290 TraceCheckUtils]: 64: Hoare triple {7236#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {7183#false} is VALID [2022-04-28 04:12:57,045 INFO L290 TraceCheckUtils]: 65: Hoare triple {7183#false} assume !false; {7183#false} is VALID [2022-04-28 04:12:57,045 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2022-04-28 04:12:57,046 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:12:57,046 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1055376560] [2022-04-28 04:12:57,046 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1055376560] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:12:57,046 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [409101657] [2022-04-28 04:12:57,046 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:12:57,046 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:12:57,046 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:12:57,047 INFO L229 MonitoredProcess]: Starting monitored process 9 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:12:57,047 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (9)] Waiting until timeout for monitored process [2022-04-28 04:12:57,126 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:12:57,126 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:12:57,128 INFO L263 TraceCheckSpWp]: Trace formula consists of 283 conjuncts, 71 conjunts are in the unsatisfiable core [2022-04-28 04:12:57,151 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:12:57,152 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:12:57,768 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 12 [2022-04-28 04:12:58,084 INFO L356 Elim1Store]: treesize reduction 151, result has 25.2 percent of original size [2022-04-28 04:12:58,085 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 4 case distinctions, treesize of input 52 treesize of output 68 [2022-04-28 04:12:59,284 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 7 [2022-04-28 04:12:59,410 INFO L272 TraceCheckUtils]: 0: Hoare triple {7182#true} call ULTIMATE.init(); {7182#true} is VALID [2022-04-28 04:12:59,410 INFO L290 TraceCheckUtils]: 1: Hoare triple {7182#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {7182#true} is VALID [2022-04-28 04:12:59,411 INFO L290 TraceCheckUtils]: 2: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:12:59,411 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7182#true} {7182#true} #160#return; {7182#true} is VALID [2022-04-28 04:12:59,411 INFO L272 TraceCheckUtils]: 4: Hoare triple {7182#true} call #t~ret20 := main(); {7182#true} is VALID [2022-04-28 04:12:59,411 INFO L290 TraceCheckUtils]: 5: Hoare triple {7182#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {7182#true} is VALID [2022-04-28 04:12:59,411 INFO L272 TraceCheckUtils]: 6: Hoare triple {7182#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {7182#true} is VALID [2022-04-28 04:12:59,411 INFO L290 TraceCheckUtils]: 7: Hoare triple {7182#true} ~cond := #in~cond; {7182#true} is VALID [2022-04-28 04:12:59,411 INFO L290 TraceCheckUtils]: 8: Hoare triple {7182#true} assume !(0 == ~cond); {7182#true} is VALID [2022-04-28 04:12:59,411 INFO L290 TraceCheckUtils]: 9: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:12:59,411 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7182#true} {7182#true} #142#return; {7182#true} is VALID [2022-04-28 04:12:59,411 INFO L272 TraceCheckUtils]: 11: Hoare triple {7182#true} call #t~ret14 := is_pow2(~n~0); {7182#true} is VALID [2022-04-28 04:12:59,411 INFO L290 TraceCheckUtils]: 12: Hoare triple {7182#true} ~x := #in~x; {7182#true} is VALID [2022-04-28 04:12:59,411 INFO L290 TraceCheckUtils]: 13: Hoare triple {7182#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {7182#true} is VALID [2022-04-28 04:12:59,411 INFO L290 TraceCheckUtils]: 14: Hoare triple {7182#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {7182#true} is VALID [2022-04-28 04:12:59,412 INFO L290 TraceCheckUtils]: 15: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:12:59,412 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {7182#true} {7182#true} #144#return; {7182#true} is VALID [2022-04-28 04:12:59,412 INFO L290 TraceCheckUtils]: 17: Hoare triple {7182#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {7182#true} is VALID [2022-04-28 04:12:59,412 INFO L272 TraceCheckUtils]: 18: Hoare triple {7182#true} call assume_abort_if_not(#t~ret14); {7182#true} is VALID [2022-04-28 04:12:59,412 INFO L290 TraceCheckUtils]: 19: Hoare triple {7182#true} ~cond := #in~cond; {7182#true} is VALID [2022-04-28 04:12:59,412 INFO L290 TraceCheckUtils]: 20: Hoare triple {7182#true} assume !(0 == ~cond); {7182#true} is VALID [2022-04-28 04:12:59,412 INFO L290 TraceCheckUtils]: 21: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:12:59,412 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {7182#true} {7182#true} #146#return; {7182#true} is VALID [2022-04-28 04:12:59,412 INFO L290 TraceCheckUtils]: 23: Hoare triple {7182#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {7319#(= |main_#t~malloc15.offset| 0)} is VALID [2022-04-28 04:12:59,412 INFO L272 TraceCheckUtils]: 24: Hoare triple {7319#(= |main_#t~malloc15.offset| 0)} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {7182#true} is VALID [2022-04-28 04:12:59,412 INFO L290 TraceCheckUtils]: 25: Hoare triple {7182#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {7182#true} is VALID [2022-04-28 04:12:59,413 INFO L290 TraceCheckUtils]: 26: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:12:59,413 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {7182#true} {7319#(= |main_#t~malloc15.offset| 0)} #148#return; {7319#(= |main_#t~malloc15.offset| 0)} is VALID [2022-04-28 04:12:59,414 INFO L290 TraceCheckUtils]: 28: Hoare triple {7319#(= |main_#t~malloc15.offset| 0)} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {7335#(= main_~a~0.offset 0)} is VALID [2022-04-28 04:12:59,414 INFO L272 TraceCheckUtils]: 29: Hoare triple {7335#(= main_~a~0.offset 0)} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {7182#true} is VALID [2022-04-28 04:12:59,414 INFO L290 TraceCheckUtils]: 30: Hoare triple {7182#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {7182#true} is VALID [2022-04-28 04:12:59,414 INFO L290 TraceCheckUtils]: 31: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:12:59,415 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {7182#true} {7335#(= main_~a~0.offset 0)} #150#return; {7335#(= main_~a~0.offset 0)} is VALID [2022-04-28 04:12:59,415 INFO L290 TraceCheckUtils]: 33: Hoare triple {7335#(= main_~a~0.offset 0)} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {7351#(and (= main_~a~0.offset 0) (<= main_~i~1 0))} is VALID [2022-04-28 04:12:59,416 INFO L290 TraceCheckUtils]: 34: Hoare triple {7351#(and (= main_~a~0.offset 0) (<= main_~i~1 0))} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {7351#(and (= main_~a~0.offset 0) (<= main_~i~1 0))} is VALID [2022-04-28 04:12:59,416 INFO L290 TraceCheckUtils]: 35: Hoare triple {7351#(and (= main_~a~0.offset 0) (<= main_~i~1 0))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {7358#(and (= main_~a~0.offset 0) (<= main_~i~1 1))} is VALID [2022-04-28 04:12:59,417 INFO L290 TraceCheckUtils]: 36: Hoare triple {7358#(and (= main_~a~0.offset 0) (<= main_~i~1 1))} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {7358#(and (= main_~a~0.offset 0) (<= main_~i~1 1))} is VALID [2022-04-28 04:12:59,417 INFO L290 TraceCheckUtils]: 37: Hoare triple {7358#(and (= main_~a~0.offset 0) (<= main_~i~1 1))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {7365#(and (= main_~a~0.offset 0) (<= main_~i~1 2))} is VALID [2022-04-28 04:12:59,418 INFO L290 TraceCheckUtils]: 38: Hoare triple {7365#(and (= main_~a~0.offset 0) (<= main_~i~1 2))} assume !(~i~1 < ~n~0); {7369#(and (<= main_~n~0 2) (= main_~a~0.offset 0))} is VALID [2022-04-28 04:12:59,418 INFO L272 TraceCheckUtils]: 39: Hoare triple {7369#(and (<= main_~n~0 2) (= main_~a~0.offset 0))} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {7182#true} is VALID [2022-04-28 04:12:59,419 INFO L290 TraceCheckUtils]: 40: Hoare triple {7182#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {7376#(and (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:12:59,419 INFO L290 TraceCheckUtils]: 41: Hoare triple {7376#(and (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {7376#(and (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:12:59,419 INFO L290 TraceCheckUtils]: 42: Hoare triple {7376#(and (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {7376#(and (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:12:59,420 INFO L290 TraceCheckUtils]: 43: Hoare triple {7376#(and (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} assume !(~left~0 < ~n); {7376#(and (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:12:59,420 INFO L290 TraceCheckUtils]: 44: Hoare triple {7376#(and (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} ~space~0 := 2 * ~space~0; {7389#(and (= 2 upsweep_~space~0) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:12:59,421 INFO L290 TraceCheckUtils]: 45: Hoare triple {7389#(and (= 2 upsweep_~space~0) (<= |upsweep_#in~n| upsweep_~n))} assume !(~space~0 < ~n); {7393#(and (<= |upsweep_#in~n| upsweep_~space~0) (= 2 upsweep_~space~0))} is VALID [2022-04-28 04:12:59,421 INFO L290 TraceCheckUtils]: 46: Hoare triple {7393#(and (<= |upsweep_#in~n| upsweep_~space~0) (= 2 upsweep_~space~0))} #res := ~space~0; {7397#(and (<= |upsweep_#in~n| 2) (= |upsweep_#res| 2))} is VALID [2022-04-28 04:12:59,421 INFO L290 TraceCheckUtils]: 47: Hoare triple {7397#(and (<= |upsweep_#in~n| 2) (= |upsweep_#res| 2))} assume true; {7397#(and (<= |upsweep_#in~n| 2) (= |upsweep_#res| 2))} is VALID [2022-04-28 04:12:59,422 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {7397#(and (<= |upsweep_#in~n| 2) (= |upsweep_#res| 2))} {7369#(and (<= main_~n~0 2) (= main_~a~0.offset 0))} #152#return; {7404#(and (<= main_~n~0 2) (= main_~a~0.offset 0) (= |main_#t~ret19| 2))} is VALID [2022-04-28 04:12:59,422 INFO L290 TraceCheckUtils]: 49: Hoare triple {7404#(and (<= main_~n~0 2) (= main_~a~0.offset 0) (= |main_#t~ret19| 2))} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {7408#(and (<= main_~n~0 2) (= main_~a~0.offset 0) (= 2 main_~space~1))} is VALID [2022-04-28 04:12:59,422 INFO L272 TraceCheckUtils]: 50: Hoare triple {7408#(and (<= main_~n~0 2) (= main_~a~0.offset 0) (= 2 main_~space~1))} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {7182#true} is VALID [2022-04-28 04:12:59,424 INFO L290 TraceCheckUtils]: 51: Hoare triple {7182#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {7415#(and (<= downsweep_~n |downsweep_#in~n|) (= downsweep_~a.base |downsweep_#in~a.base|) (= downsweep_~a.offset |downsweep_#in~a.offset|) (= (select (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4))) 0) (or (and (or (= (mod |downsweep_#in~space| 2) 0) (not (< |downsweep_#in~space| 0))) (= downsweep_~space (div |downsweep_#in~space| 2))) (and (not (= (mod |downsweep_#in~space| 2) 0)) (< |downsweep_#in~space| 0) (= downsweep_~space (+ (div |downsweep_#in~space| 2) 1)))))} is VALID [2022-04-28 04:12:59,424 INFO L290 TraceCheckUtils]: 52: Hoare triple {7415#(and (<= downsweep_~n |downsweep_#in~n|) (= downsweep_~a.base |downsweep_#in~a.base|) (= downsweep_~a.offset |downsweep_#in~a.offset|) (= (select (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4))) 0) (or (and (or (= (mod |downsweep_#in~space| 2) 0) (not (< |downsweep_#in~space| 0))) (= downsweep_~space (div |downsweep_#in~space| 2))) (and (not (= (mod |downsweep_#in~space| 2) 0)) (< |downsweep_#in~space| 0) (= downsweep_~space (+ (div |downsweep_#in~space| 2) 1)))))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {7419#(and (<= downsweep_~n |downsweep_#in~n|) (= downsweep_~a.base |downsweep_#in~a.base|) (= downsweep_~a.offset |downsweep_#in~a.offset|) (= downsweep_~space (div |downsweep_#in~space| 2)) (= downsweep_~right~1 (+ (- 1) (* 2 downsweep_~space))) (= (select (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4))) 0) (< 0 downsweep_~space))} is VALID [2022-04-28 04:12:59,433 INFO L290 TraceCheckUtils]: 53: Hoare triple {7419#(and (<= downsweep_~n |downsweep_#in~n|) (= downsweep_~a.base |downsweep_#in~a.base|) (= downsweep_~a.offset |downsweep_#in~a.offset|) (= downsweep_~space (div |downsweep_#in~space| 2)) (= downsweep_~right~1 (+ (- 1) (* 2 downsweep_~space))) (= (select (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4))) 0) (< 0 downsweep_~space))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {7423#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((downsweep_~n Int)) (and (<= downsweep_~n |downsweep_#in~n|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)) 0) (not (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))))) (< (* 2 (div |downsweep_#in~space| 2)) (+ downsweep_~n 1)) (or (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* downsweep_~n 4) (- 4) |downsweep_#in~a.offset|)) 0)))))} is VALID [2022-04-28 04:12:59,437 INFO L290 TraceCheckUtils]: 54: Hoare triple {7423#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((downsweep_~n Int)) (and (<= downsweep_~n |downsweep_#in~n|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)) 0) (not (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))))) (< (* 2 (div |downsweep_#in~space| 2)) (+ downsweep_~n 1)) (or (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* downsweep_~n 4) (- 4) |downsweep_#in~a.offset|)) 0)))))} assume !(~right~1 < ~n); {7423#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((downsweep_~n Int)) (and (<= downsweep_~n |downsweep_#in~n|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)) 0) (not (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))))) (< (* 2 (div |downsweep_#in~space| 2)) (+ downsweep_~n 1)) (or (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* downsweep_~n 4) (- 4) |downsweep_#in~a.offset|)) 0)))))} is VALID [2022-04-28 04:12:59,442 INFO L290 TraceCheckUtils]: 55: Hoare triple {7423#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((downsweep_~n Int)) (and (<= downsweep_~n |downsweep_#in~n|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)) 0) (not (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))))) (< (* 2 (div |downsweep_#in~space| 2)) (+ downsweep_~n 1)) (or (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* downsweep_~n 4) (- 4) |downsweep_#in~a.offset|)) 0)))))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {7423#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((downsweep_~n Int)) (and (<= downsweep_~n |downsweep_#in~n|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)) 0) (not (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))))) (< (* 2 (div |downsweep_#in~space| 2)) (+ downsweep_~n 1)) (or (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* downsweep_~n 4) (- 4) |downsweep_#in~a.offset|)) 0)))))} is VALID [2022-04-28 04:12:59,446 INFO L290 TraceCheckUtils]: 56: Hoare triple {7423#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((downsweep_~n Int)) (and (<= downsweep_~n |downsweep_#in~n|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)) 0) (not (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))))) (< (* 2 (div |downsweep_#in~space| 2)) (+ downsweep_~n 1)) (or (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* downsweep_~n 4) (- 4) |downsweep_#in~a.offset|)) 0)))))} assume !(~space > 0); {7423#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((downsweep_~n Int)) (and (<= downsweep_~n |downsweep_#in~n|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)) 0) (not (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))))) (< (* 2 (div |downsweep_#in~space| 2)) (+ downsweep_~n 1)) (or (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* downsweep_~n 4) (- 4) |downsweep_#in~a.offset|)) 0)))))} is VALID [2022-04-28 04:12:59,450 INFO L290 TraceCheckUtils]: 57: Hoare triple {7423#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((downsweep_~n Int)) (and (<= downsweep_~n |downsweep_#in~n|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)) 0) (not (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))))) (< (* 2 (div |downsweep_#in~space| 2)) (+ downsweep_~n 1)) (or (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* downsweep_~n 4) (- 4) |downsweep_#in~a.offset|)) 0)))))} assume true; {7423#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((downsweep_~n Int)) (and (<= downsweep_~n |downsweep_#in~n|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)) 0) (not (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))))) (< (* 2 (div |downsweep_#in~space| 2)) (+ downsweep_~n 1)) (or (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* downsweep_~n 4) (- 4) |downsweep_#in~a.offset|)) 0)))))} is VALID [2022-04-28 04:12:59,452 INFO L284 TraceCheckUtils]: 58: Hoare quadruple {7423#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((downsweep_~n Int)) (and (<= downsweep_~n |downsweep_#in~n|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)) 0) (not (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))))) (< (* 2 (div |downsweep_#in~space| 2)) (+ downsweep_~n 1)) (or (= (* downsweep_~n 4) (* 8 (div |downsweep_#in~space| 2))) (= (select (select |#memory_int| |downsweep_#in~a.base|) (+ (* downsweep_~n 4) (- 4) |downsweep_#in~a.offset|)) 0)))))} {7408#(and (<= main_~n~0 2) (= main_~a~0.offset 0) (= 2 main_~space~1))} #154#return; {7439#(and (<= main_~n~0 2) (exists ((downsweep_~n Int)) (and (< 1 downsweep_~n) (= (select (select |#memory_int| main_~a~0.base) main_~a~0.offset) 0) (<= downsweep_~n main_~n~0))) (= main_~a~0.offset 0))} is VALID [2022-04-28 04:12:59,453 INFO L272 TraceCheckUtils]: 59: Hoare triple {7439#(and (<= main_~n~0 2) (exists ((downsweep_~n Int)) (and (< 1 downsweep_~n) (= (select (select |#memory_int| main_~a~0.base) main_~a~0.offset) 0) (<= downsweep_~n main_~n~0))) (= main_~a~0.offset 0))} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {7443#(and (= |check_#in~a.offset| 0) (= (select (select |#memory_int| |check_#in~a.base|) 0) 0) (<= |check_#in~n| 2))} is VALID [2022-04-28 04:12:59,453 INFO L290 TraceCheckUtils]: 60: Hoare triple {7443#(and (= |check_#in~a.offset| 0) (= (select (select |#memory_int| |check_#in~a.base|) 0) 0) (<= |check_#in~n| 2))} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {7447#(and (= (select (select |#memory_int| check_~a.base) 0) 0) (<= check_~n 2) (= check_~i~0 0) (= check_~sum~0 0) (= check_~a.offset 0))} is VALID [2022-04-28 04:12:59,454 INFO L290 TraceCheckUtils]: 61: Hoare triple {7447#(and (= (select (select |#memory_int| check_~a.base) 0) 0) (<= check_~n 2) (= check_~i~0 0) (= check_~sum~0 0) (= check_~a.offset 0))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {7451#(and (= |check_#t~mem11| 0) (= check_~sum~0 0))} is VALID [2022-04-28 04:12:59,454 INFO L272 TraceCheckUtils]: 62: Hoare triple {7451#(and (= |check_#t~mem11| 0) (= check_~sum~0 0))} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {7455#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-28 04:12:59,454 INFO L290 TraceCheckUtils]: 63: Hoare triple {7455#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {7459#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:12:59,455 INFO L290 TraceCheckUtils]: 64: Hoare triple {7459#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {7183#false} is VALID [2022-04-28 04:12:59,455 INFO L290 TraceCheckUtils]: 65: Hoare triple {7183#false} assume !false; {7183#false} is VALID [2022-04-28 04:12:59,455 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-04-28 04:12:59,455 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:13:00,563 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-28 04:13:00,563 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 2 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 3 new quantified variables, introduced 4 case distinctions, treesize of input 169 treesize of output 176 [2022-04-28 04:13:00,599 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-28 04:13:00,601 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-28 04:13:00,602 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-28 04:13:00,603 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-28 04:13:00,736 INFO L356 Elim1Store]: treesize reduction 149, result has 55.4 percent of original size [2022-04-28 04:13:00,736 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 2 stores, 2 select indices, 2 select index equivalence classes, 4 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 10 case distinctions, treesize of input 246 treesize of output 464 [2022-04-28 04:13:01,026 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-28 04:13:01,028 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-28 04:13:01,030 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-28 04:13:01,030 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-28 04:13:01,062 INFO L356 Elim1Store]: treesize reduction 94, result has 16.8 percent of original size [2022-04-28 04:13:01,062 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 4 case distinctions, treesize of input 274 treesize of output 136 [2022-04-28 04:13:01,116 INFO L356 Elim1Store]: treesize reduction 33, result has 23.3 percent of original size [2022-04-28 04:13:01,116 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 3 select indices, 3 select index equivalence classes, 0 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 3 case distinctions, treesize of input 64 treesize of output 53 [2022-04-28 04:13:02,051 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 48 treesize of output 44 [2022-04-28 04:13:02,110 INFO L356 Elim1Store]: treesize reduction 12, result has 7.7 percent of original size [2022-04-28 04:13:02,111 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 1284 treesize of output 1 [2022-04-28 04:13:02,851 INFO L290 TraceCheckUtils]: 65: Hoare triple {7183#false} assume !false; {7183#false} is VALID [2022-04-28 04:13:02,851 INFO L290 TraceCheckUtils]: 64: Hoare triple {7459#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {7183#false} is VALID [2022-04-28 04:13:02,851 INFO L290 TraceCheckUtils]: 63: Hoare triple {7455#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {7459#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:13:02,852 INFO L272 TraceCheckUtils]: 62: Hoare triple {7234#(= |check_#t~mem11| check_~sum~0)} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {7455#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-28 04:13:02,852 INFO L290 TraceCheckUtils]: 61: Hoare triple {7478#(or (= (select (select |#memory_int| check_~a.base) (+ (* check_~i~0 4) check_~a.offset)) check_~sum~0) (not (< check_~i~0 check_~n)))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {7234#(= |check_#t~mem11| check_~sum~0)} is VALID [2022-04-28 04:13:02,853 INFO L290 TraceCheckUtils]: 60: Hoare triple {7482#(or (= (select (select |#memory_int| |check_#in~a.base|) |check_#in~a.offset|) 0) (<= |check_#in~n| 0))} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {7478#(or (= (select (select |#memory_int| check_~a.base) (+ (* check_~i~0 4) check_~a.offset)) check_~sum~0) (not (< check_~i~0 check_~n)))} is VALID [2022-04-28 04:13:02,854 INFO L272 TraceCheckUtils]: 59: Hoare triple {7486#(or (= (select (select |#memory_int| main_~a~0.base) main_~a~0.offset) 0) (<= main_~n~0 0))} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {7482#(or (= (select (select |#memory_int| |check_#in~a.base|) |check_#in~a.offset|) 0) (<= |check_#in~n| 0))} is VALID [2022-04-28 04:13:02,855 INFO L284 TraceCheckUtils]: 58: Hoare quadruple {7494#(or (= 0 (select (select |#memory_int| |downsweep_#in~a.base|) |downsweep_#in~a.offset|)) (and (or (< (* 2 (div |downsweep_#in~space| 2)) |downsweep_#in~n|) (not (= (* (div |downsweep_#in~space| 2) 4) 4))) (< (* 2 (div |downsweep_#in~space| 2)) (+ |downsweep_#in~n| 1)) (not (<= (div |downsweep_#in~space| 2) 0))))} {7490#(or (and (<= main_~n~0 (* 2 (div main_~space~1 2))) (or (<= (+ main_~n~0 1) (* 2 (div main_~space~1 2))) (= (+ (- 4) (* (div main_~space~1 2) 4)) 0))) (<= (div main_~space~1 2) 0))} #154#return; {7486#(or (= (select (select |#memory_int| main_~a~0.base) main_~a~0.offset) 0) (<= main_~n~0 0))} is VALID [2022-04-28 04:13:02,855 INFO L290 TraceCheckUtils]: 57: Hoare triple {7494#(or (= 0 (select (select |#memory_int| |downsweep_#in~a.base|) |downsweep_#in~a.offset|)) (and (or (< (* 2 (div |downsweep_#in~space| 2)) |downsweep_#in~n|) (not (= (* (div |downsweep_#in~space| 2) 4) 4))) (< (* 2 (div |downsweep_#in~space| 2)) (+ |downsweep_#in~n| 1)) (not (<= (div |downsweep_#in~space| 2) 0))))} assume true; {7494#(or (= 0 (select (select |#memory_int| |downsweep_#in~a.base|) |downsweep_#in~a.offset|)) (and (or (< (* 2 (div |downsweep_#in~space| 2)) |downsweep_#in~n|) (not (= (* (div |downsweep_#in~space| 2) 4) 4))) (< (* 2 (div |downsweep_#in~space| 2)) (+ |downsweep_#in~n| 1)) (not (<= (div |downsweep_#in~space| 2) 0))))} is VALID [2022-04-28 04:13:02,856 INFO L290 TraceCheckUtils]: 56: Hoare triple {7494#(or (= 0 (select (select |#memory_int| |downsweep_#in~a.base|) |downsweep_#in~a.offset|)) (and (or (< (* 2 (div |downsweep_#in~space| 2)) |downsweep_#in~n|) (not (= (* (div |downsweep_#in~space| 2) 4) 4))) (< (* 2 (div |downsweep_#in~space| 2)) (+ |downsweep_#in~n| 1)) (not (<= (div |downsweep_#in~space| 2) 0))))} assume !(~space > 0); {7494#(or (= 0 (select (select |#memory_int| |downsweep_#in~a.base|) |downsweep_#in~a.offset|)) (and (or (< (* 2 (div |downsweep_#in~space| 2)) |downsweep_#in~n|) (not (= (* (div |downsweep_#in~space| 2) 4) 4))) (< (* 2 (div |downsweep_#in~space| 2)) (+ |downsweep_#in~n| 1)) (not (<= (div |downsweep_#in~space| 2) 0))))} is VALID [2022-04-28 04:13:02,857 INFO L290 TraceCheckUtils]: 55: Hoare triple {7494#(or (= 0 (select (select |#memory_int| |downsweep_#in~a.base|) |downsweep_#in~a.offset|)) (and (or (< (* 2 (div |downsweep_#in~space| 2)) |downsweep_#in~n|) (not (= (* (div |downsweep_#in~space| 2) 4) 4))) (< (* 2 (div |downsweep_#in~space| 2)) (+ |downsweep_#in~n| 1)) (not (<= (div |downsweep_#in~space| 2) 0))))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {7494#(or (= 0 (select (select |#memory_int| |downsweep_#in~a.base|) |downsweep_#in~a.offset|)) (and (or (< (* 2 (div |downsweep_#in~space| 2)) |downsweep_#in~n|) (not (= (* (div |downsweep_#in~space| 2) 4) 4))) (< (* 2 (div |downsweep_#in~space| 2)) (+ |downsweep_#in~n| 1)) (not (<= (div |downsweep_#in~space| 2) 0))))} is VALID [2022-04-28 04:13:02,857 INFO L290 TraceCheckUtils]: 54: Hoare triple {7494#(or (= 0 (select (select |#memory_int| |downsweep_#in~a.base|) |downsweep_#in~a.offset|)) (and (or (< (* 2 (div |downsweep_#in~space| 2)) |downsweep_#in~n|) (not (= (* (div |downsweep_#in~space| 2) 4) 4))) (< (* 2 (div |downsweep_#in~space| 2)) (+ |downsweep_#in~n| 1)) (not (<= (div |downsweep_#in~space| 2) 0))))} assume !(~right~1 < ~n); {7494#(or (= 0 (select (select |#memory_int| |downsweep_#in~a.base|) |downsweep_#in~a.offset|)) (and (or (< (* 2 (div |downsweep_#in~space| 2)) |downsweep_#in~n|) (not (= (* (div |downsweep_#in~space| 2) 4) 4))) (< (* 2 (div |downsweep_#in~space| 2)) (+ |downsweep_#in~n| 1)) (not (<= (div |downsweep_#in~space| 2) 0))))} is VALID [2022-04-28 04:13:02,859 INFO L290 TraceCheckUtils]: 53: Hoare triple {7510#(or (forall ((v_ArrVal_268 Int)) (= (select (select (store |#memory_int| downsweep_~a.base (store (store (select |#memory_int| downsweep_~a.base) (+ downsweep_~a.offset (* downsweep_~right~1 4)) v_ArrVal_268) (+ downsweep_~a.offset (* downsweep_~right~1 4) (* downsweep_~space (- 4))) (select (select |#memory_int| downsweep_~a.base) (+ downsweep_~a.offset (* downsweep_~right~1 4))))) |downsweep_#in~a.base|) |downsweep_#in~a.offset|) 0)) (not (< downsweep_~right~1 downsweep_~n)) (and (or (< (* 2 (div |downsweep_#in~space| 2)) |downsweep_#in~n|) (not (= (* (div |downsweep_#in~space| 2) 4) 4))) (< (* 2 (div |downsweep_#in~space| 2)) (+ |downsweep_#in~n| 1)) (not (<= (div |downsweep_#in~space| 2) 0))))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {7494#(or (= 0 (select (select |#memory_int| |downsweep_#in~a.base|) |downsweep_#in~a.offset|)) (and (or (< (* 2 (div |downsweep_#in~space| 2)) |downsweep_#in~n|) (not (= (* (div |downsweep_#in~space| 2) 4) 4))) (< (* 2 (div |downsweep_#in~space| 2)) (+ |downsweep_#in~n| 1)) (not (<= (div |downsweep_#in~space| 2) 0))))} is VALID [2022-04-28 04:13:02,862 INFO L290 TraceCheckUtils]: 52: Hoare triple {7514#(or (not (< 0 downsweep_~space)) (not (< (* 2 downsweep_~space) (+ downsweep_~n 1))) (and (or (< (* 2 (div |downsweep_#in~space| 2)) |downsweep_#in~n|) (not (= (* (div |downsweep_#in~space| 2) 4) 4))) (< (* 2 (div |downsweep_#in~space| 2)) (+ |downsweep_#in~n| 1)) (not (<= (div |downsweep_#in~space| 2) 0))) (forall ((v_ArrVal_268 Int)) (= (select (select (store |#memory_int| downsweep_~a.base (store (store (select |#memory_int| downsweep_~a.base) (+ downsweep_~a.offset (- 4) (* downsweep_~space 8)) v_ArrVal_268) (+ (* downsweep_~space 4) downsweep_~a.offset (- 4)) (select (select |#memory_int| downsweep_~a.base) (+ downsweep_~a.offset (- 4) (* downsweep_~space 8))))) |downsweep_#in~a.base|) |downsweep_#in~a.offset|) 0)))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {7510#(or (forall ((v_ArrVal_268 Int)) (= (select (select (store |#memory_int| downsweep_~a.base (store (store (select |#memory_int| downsweep_~a.base) (+ downsweep_~a.offset (* downsweep_~right~1 4)) v_ArrVal_268) (+ downsweep_~a.offset (* downsweep_~right~1 4) (* downsweep_~space (- 4))) (select (select |#memory_int| downsweep_~a.base) (+ downsweep_~a.offset (* downsweep_~right~1 4))))) |downsweep_#in~a.base|) |downsweep_#in~a.offset|) 0)) (not (< downsweep_~right~1 downsweep_~n)) (and (or (< (* 2 (div |downsweep_#in~space| 2)) |downsweep_#in~n|) (not (= (* (div |downsweep_#in~space| 2) 4) 4))) (< (* 2 (div |downsweep_#in~space| 2)) (+ |downsweep_#in~n| 1)) (not (<= (div |downsweep_#in~space| 2) 0))))} is VALID [2022-04-28 04:13:02,864 INFO L290 TraceCheckUtils]: 51: Hoare triple {7182#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {7514#(or (not (< 0 downsweep_~space)) (not (< (* 2 downsweep_~space) (+ downsweep_~n 1))) (and (or (< (* 2 (div |downsweep_#in~space| 2)) |downsweep_#in~n|) (not (= (* (div |downsweep_#in~space| 2) 4) 4))) (< (* 2 (div |downsweep_#in~space| 2)) (+ |downsweep_#in~n| 1)) (not (<= (div |downsweep_#in~space| 2) 0))) (forall ((v_ArrVal_268 Int)) (= (select (select (store |#memory_int| downsweep_~a.base (store (store (select |#memory_int| downsweep_~a.base) (+ downsweep_~a.offset (- 4) (* downsweep_~space 8)) v_ArrVal_268) (+ (* downsweep_~space 4) downsweep_~a.offset (- 4)) (select (select |#memory_int| downsweep_~a.base) (+ downsweep_~a.offset (- 4) (* downsweep_~space 8))))) |downsweep_#in~a.base|) |downsweep_#in~a.offset|) 0)))} is VALID [2022-04-28 04:13:02,864 INFO L272 TraceCheckUtils]: 50: Hoare triple {7490#(or (and (<= main_~n~0 (* 2 (div main_~space~1 2))) (or (<= (+ main_~n~0 1) (* 2 (div main_~space~1 2))) (= (+ (- 4) (* (div main_~space~1 2) 4)) 0))) (<= (div main_~space~1 2) 0))} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {7182#true} is VALID [2022-04-28 04:13:02,865 INFO L290 TraceCheckUtils]: 49: Hoare triple {7521#(or (<= (div |main_#t~ret19| 2) 0) (and (or (= 0 (+ (* (div |main_#t~ret19| 2) 4) (- 4))) (<= (+ main_~n~0 1) (* (div |main_#t~ret19| 2) 2))) (<= main_~n~0 (* (div |main_#t~ret19| 2) 2))))} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {7490#(or (and (<= main_~n~0 (* 2 (div main_~space~1 2))) (or (<= (+ main_~n~0 1) (* 2 (div main_~space~1 2))) (= (+ (- 4) (* (div main_~space~1 2) 4)) 0))) (<= (div main_~space~1 2) 0))} is VALID [2022-04-28 04:13:02,866 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {7528#(or (<= (div |upsweep_#res| 2) 0) (and (<= |upsweep_#in~n| (* (div |upsweep_#res| 2) 2)) (or (= (+ (- 4) (* (div |upsweep_#res| 2) 4)) 0) (<= (+ |upsweep_#in~n| 1) (* (div |upsweep_#res| 2) 2)))))} {7182#true} #152#return; {7521#(or (<= (div |main_#t~ret19| 2) 0) (and (or (= 0 (+ (* (div |main_#t~ret19| 2) 4) (- 4))) (<= (+ main_~n~0 1) (* (div |main_#t~ret19| 2) 2))) (<= main_~n~0 (* (div |main_#t~ret19| 2) 2))))} is VALID [2022-04-28 04:13:02,867 INFO L290 TraceCheckUtils]: 47: Hoare triple {7528#(or (<= (div |upsweep_#res| 2) 0) (and (<= |upsweep_#in~n| (* (div |upsweep_#res| 2) 2)) (or (= (+ (- 4) (* (div |upsweep_#res| 2) 4)) 0) (<= (+ |upsweep_#in~n| 1) (* (div |upsweep_#res| 2) 2)))))} assume true; {7528#(or (<= (div |upsweep_#res| 2) 0) (and (<= |upsweep_#in~n| (* (div |upsweep_#res| 2) 2)) (or (= (+ (- 4) (* (div |upsweep_#res| 2) 4)) 0) (<= (+ |upsweep_#in~n| 1) (* (div |upsweep_#res| 2) 2)))))} is VALID [2022-04-28 04:13:02,867 INFO L290 TraceCheckUtils]: 46: Hoare triple {7535#(or (<= (div upsweep_~space~0 2) 0) (and (<= |upsweep_#in~n| (* 2 (div upsweep_~space~0 2))) (or (= (+ (* (div upsweep_~space~0 2) 4) (- 4)) 0) (<= (+ |upsweep_#in~n| 1) (* 2 (div upsweep_~space~0 2))))))} #res := ~space~0; {7528#(or (<= (div |upsweep_#res| 2) 0) (and (<= |upsweep_#in~n| (* (div |upsweep_#res| 2) 2)) (or (= (+ (- 4) (* (div |upsweep_#res| 2) 4)) 0) (<= (+ |upsweep_#in~n| 1) (* (div |upsweep_#res| 2) 2)))))} is VALID [2022-04-28 04:13:02,868 INFO L290 TraceCheckUtils]: 45: Hoare triple {7539#(or (< upsweep_~space~0 upsweep_~n) (<= (div upsweep_~space~0 2) 0) (and (<= |upsweep_#in~n| (* 2 (div upsweep_~space~0 2))) (or (= (+ (* (div upsweep_~space~0 2) 4) (- 4)) 0) (<= (+ |upsweep_#in~n| 1) (* 2 (div upsweep_~space~0 2))))))} assume !(~space~0 < ~n); {7535#(or (<= (div upsweep_~space~0 2) 0) (and (<= |upsweep_#in~n| (* 2 (div upsweep_~space~0 2))) (or (= (+ (* (div upsweep_~space~0 2) 4) (- 4)) 0) (<= (+ |upsweep_#in~n| 1) (* 2 (div upsweep_~space~0 2))))))} is VALID [2022-04-28 04:13:02,869 INFO L290 TraceCheckUtils]: 44: Hoare triple {7543#(or (<= upsweep_~space~0 0) (< (* 2 upsweep_~space~0) upsweep_~n) (and (<= |upsweep_#in~n| (* 2 upsweep_~space~0)) (or (<= (+ |upsweep_#in~n| 1) (* 2 upsweep_~space~0)) (= (+ (* (div (* 2 upsweep_~space~0) 2) 4) (- 4)) 0))))} ~space~0 := 2 * ~space~0; {7539#(or (< upsweep_~space~0 upsweep_~n) (<= (div upsweep_~space~0 2) 0) (and (<= |upsweep_#in~n| (* 2 (div upsweep_~space~0 2))) (or (= (+ (* (div upsweep_~space~0 2) 4) (- 4)) 0) (<= (+ |upsweep_#in~n| 1) (* 2 (div upsweep_~space~0 2))))))} is VALID [2022-04-28 04:13:02,869 INFO L290 TraceCheckUtils]: 43: Hoare triple {7543#(or (<= upsweep_~space~0 0) (< (* 2 upsweep_~space~0) upsweep_~n) (and (<= |upsweep_#in~n| (* 2 upsweep_~space~0)) (or (<= (+ |upsweep_#in~n| 1) (* 2 upsweep_~space~0)) (= (+ (* (div (* 2 upsweep_~space~0) 2) 4) (- 4)) 0))))} assume !(~left~0 < ~n); {7543#(or (<= upsweep_~space~0 0) (< (* 2 upsweep_~space~0) upsweep_~n) (and (<= |upsweep_#in~n| (* 2 upsweep_~space~0)) (or (<= (+ |upsweep_#in~n| 1) (* 2 upsweep_~space~0)) (= (+ (* (div (* 2 upsweep_~space~0) 2) 4) (- 4)) 0))))} is VALID [2022-04-28 04:13:02,870 INFO L290 TraceCheckUtils]: 42: Hoare triple {7543#(or (<= upsweep_~space~0 0) (< (* 2 upsweep_~space~0) upsweep_~n) (and (<= |upsweep_#in~n| (* 2 upsweep_~space~0)) (or (<= (+ |upsweep_#in~n| 1) (* 2 upsweep_~space~0)) (= (+ (* (div (* 2 upsweep_~space~0) 2) 4) (- 4)) 0))))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {7543#(or (<= upsweep_~space~0 0) (< (* 2 upsweep_~space~0) upsweep_~n) (and (<= |upsweep_#in~n| (* 2 upsweep_~space~0)) (or (<= (+ |upsweep_#in~n| 1) (* 2 upsweep_~space~0)) (= (+ (* (div (* 2 upsweep_~space~0) 2) 4) (- 4)) 0))))} is VALID [2022-04-28 04:13:02,871 INFO L290 TraceCheckUtils]: 41: Hoare triple {7543#(or (<= upsweep_~space~0 0) (< (* 2 upsweep_~space~0) upsweep_~n) (and (<= |upsweep_#in~n| (* 2 upsweep_~space~0)) (or (<= (+ |upsweep_#in~n| 1) (* 2 upsweep_~space~0)) (= (+ (* (div (* 2 upsweep_~space~0) 2) 4) (- 4)) 0))))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {7543#(or (<= upsweep_~space~0 0) (< (* 2 upsweep_~space~0) upsweep_~n) (and (<= |upsweep_#in~n| (* 2 upsweep_~space~0)) (or (<= (+ |upsweep_#in~n| 1) (* 2 upsweep_~space~0)) (= (+ (* (div (* 2 upsweep_~space~0) 2) 4) (- 4)) 0))))} is VALID [2022-04-28 04:13:02,871 INFO L290 TraceCheckUtils]: 40: Hoare triple {7182#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {7543#(or (<= upsweep_~space~0 0) (< (* 2 upsweep_~space~0) upsweep_~n) (and (<= |upsweep_#in~n| (* 2 upsweep_~space~0)) (or (<= (+ |upsweep_#in~n| 1) (* 2 upsweep_~space~0)) (= (+ (* (div (* 2 upsweep_~space~0) 2) 4) (- 4)) 0))))} is VALID [2022-04-28 04:13:02,871 INFO L272 TraceCheckUtils]: 39: Hoare triple {7182#true} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {7182#true} is VALID [2022-04-28 04:13:02,872 INFO L290 TraceCheckUtils]: 38: Hoare triple {7182#true} assume !(~i~1 < ~n~0); {7182#true} is VALID [2022-04-28 04:13:02,872 INFO L290 TraceCheckUtils]: 37: Hoare triple {7182#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {7182#true} is VALID [2022-04-28 04:13:02,872 INFO L290 TraceCheckUtils]: 36: Hoare triple {7182#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {7182#true} is VALID [2022-04-28 04:13:02,872 INFO L290 TraceCheckUtils]: 35: Hoare triple {7182#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {7182#true} is VALID [2022-04-28 04:13:02,872 INFO L290 TraceCheckUtils]: 34: Hoare triple {7182#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {7182#true} is VALID [2022-04-28 04:13:02,872 INFO L290 TraceCheckUtils]: 33: Hoare triple {7182#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {7182#true} is VALID [2022-04-28 04:13:02,872 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {7182#true} {7182#true} #150#return; {7182#true} is VALID [2022-04-28 04:13:02,872 INFO L290 TraceCheckUtils]: 31: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:13:02,872 INFO L290 TraceCheckUtils]: 30: Hoare triple {7182#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {7182#true} is VALID [2022-04-28 04:13:02,872 INFO L272 TraceCheckUtils]: 29: Hoare triple {7182#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {7182#true} is VALID [2022-04-28 04:13:02,872 INFO L290 TraceCheckUtils]: 28: Hoare triple {7182#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {7182#true} is VALID [2022-04-28 04:13:02,872 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {7182#true} {7182#true} #148#return; {7182#true} is VALID [2022-04-28 04:13:02,872 INFO L290 TraceCheckUtils]: 26: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:13:02,872 INFO L290 TraceCheckUtils]: 25: Hoare triple {7182#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {7182#true} is VALID [2022-04-28 04:13:02,872 INFO L272 TraceCheckUtils]: 24: Hoare triple {7182#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {7182#true} is VALID [2022-04-28 04:13:02,873 INFO L290 TraceCheckUtils]: 23: Hoare triple {7182#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {7182#true} is VALID [2022-04-28 04:13:02,873 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {7182#true} {7182#true} #146#return; {7182#true} is VALID [2022-04-28 04:13:02,873 INFO L290 TraceCheckUtils]: 21: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:13:02,873 INFO L290 TraceCheckUtils]: 20: Hoare triple {7182#true} assume !(0 == ~cond); {7182#true} is VALID [2022-04-28 04:13:02,873 INFO L290 TraceCheckUtils]: 19: Hoare triple {7182#true} ~cond := #in~cond; {7182#true} is VALID [2022-04-28 04:13:02,873 INFO L272 TraceCheckUtils]: 18: Hoare triple {7182#true} call assume_abort_if_not(#t~ret14); {7182#true} is VALID [2022-04-28 04:13:02,873 INFO L290 TraceCheckUtils]: 17: Hoare triple {7182#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {7182#true} is VALID [2022-04-28 04:13:02,873 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {7182#true} {7182#true} #144#return; {7182#true} is VALID [2022-04-28 04:13:02,873 INFO L290 TraceCheckUtils]: 15: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:13:02,873 INFO L290 TraceCheckUtils]: 14: Hoare triple {7182#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {7182#true} is VALID [2022-04-28 04:13:02,873 INFO L290 TraceCheckUtils]: 13: Hoare triple {7182#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {7182#true} is VALID [2022-04-28 04:13:02,873 INFO L290 TraceCheckUtils]: 12: Hoare triple {7182#true} ~x := #in~x; {7182#true} is VALID [2022-04-28 04:13:02,873 INFO L272 TraceCheckUtils]: 11: Hoare triple {7182#true} call #t~ret14 := is_pow2(~n~0); {7182#true} is VALID [2022-04-28 04:13:02,873 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7182#true} {7182#true} #142#return; {7182#true} is VALID [2022-04-28 04:13:02,874 INFO L290 TraceCheckUtils]: 9: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:13:02,874 INFO L290 TraceCheckUtils]: 8: Hoare triple {7182#true} assume !(0 == ~cond); {7182#true} is VALID [2022-04-28 04:13:02,874 INFO L290 TraceCheckUtils]: 7: Hoare triple {7182#true} ~cond := #in~cond; {7182#true} is VALID [2022-04-28 04:13:02,874 INFO L272 TraceCheckUtils]: 6: Hoare triple {7182#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {7182#true} is VALID [2022-04-28 04:13:02,874 INFO L290 TraceCheckUtils]: 5: Hoare triple {7182#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {7182#true} is VALID [2022-04-28 04:13:02,874 INFO L272 TraceCheckUtils]: 4: Hoare triple {7182#true} call #t~ret20 := main(); {7182#true} is VALID [2022-04-28 04:13:02,874 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7182#true} {7182#true} #160#return; {7182#true} is VALID [2022-04-28 04:13:02,874 INFO L290 TraceCheckUtils]: 2: Hoare triple {7182#true} assume true; {7182#true} is VALID [2022-04-28 04:13:02,874 INFO L290 TraceCheckUtils]: 1: Hoare triple {7182#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {7182#true} is VALID [2022-04-28 04:13:02,874 INFO L272 TraceCheckUtils]: 0: Hoare triple {7182#true} call ULTIMATE.init(); {7182#true} is VALID [2022-04-28 04:13:02,875 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-04-28 04:13:02,875 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [409101657] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:13:02,875 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-28 04:13:02,875 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [26, 23, 17] total 59 [2022-04-28 04:13:02,875 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:13:02,875 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1996183784] [2022-04-28 04:13:02,875 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1996183784] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:13:02,875 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:13:02,875 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [26] imperfect sequences [] total 26 [2022-04-28 04:13:02,875 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1011089820] [2022-04-28 04:13:02,875 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:13:02,876 INFO L78 Accepts]: Start accepts. Automaton has has 26 states, 22 states have (on average 2.0) internal successors, (44), 20 states have internal predecessors, (44), 7 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (8), 5 states have call predecessors, (8), 5 states have call successors, (8) Word has length 66 [2022-04-28 04:13:02,876 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:13:02,876 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 26 states, 22 states have (on average 2.0) internal successors, (44), 20 states have internal predecessors, (44), 7 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (8), 5 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-28 04:13:02,984 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:13:02,984 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 26 states [2022-04-28 04:13:02,985 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:13:02,985 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 26 interpolants. [2022-04-28 04:13:02,986 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=213, Invalid=3209, Unknown=0, NotChecked=0, Total=3422 [2022-04-28 04:13:02,986 INFO L87 Difference]: Start difference. First operand 76 states and 86 transitions. Second operand has 26 states, 22 states have (on average 2.0) internal successors, (44), 20 states have internal predecessors, (44), 7 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (8), 5 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-28 04:13:09,847 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:13:14,138 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:13:18,407 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:13:24,813 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:13:26,965 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:13:29,101 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.14s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:13:35,784 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:13:35,784 INFO L93 Difference]: Finished difference Result 110 states and 130 transitions. [2022-04-28 04:13:35,784 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 28 states. [2022-04-28 04:13:35,785 INFO L78 Accepts]: Start accepts. Automaton has has 26 states, 22 states have (on average 2.0) internal successors, (44), 20 states have internal predecessors, (44), 7 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (8), 5 states have call predecessors, (8), 5 states have call successors, (8) Word has length 66 [2022-04-28 04:13:35,785 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:13:35,785 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 26 states, 22 states have (on average 2.0) internal successors, (44), 20 states have internal predecessors, (44), 7 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (8), 5 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-28 04:13:35,786 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 114 transitions. [2022-04-28 04:13:35,786 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 26 states, 22 states have (on average 2.0) internal successors, (44), 20 states have internal predecessors, (44), 7 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (8), 5 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-28 04:13:35,788 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 114 transitions. [2022-04-28 04:13:35,788 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 28 states and 114 transitions. [2022-04-28 04:13:35,963 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 114 edges. 114 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:13:35,965 INFO L225 Difference]: With dead ends: 110 [2022-04-28 04:13:35,965 INFO L226 Difference]: Without dead ends: 108 [2022-04-28 04:13:35,966 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 200 GetRequests, 117 SyntacticMatches, 1 SemanticMatches, 82 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1471 ImplicationChecksByTransitivity, 4.3s TimeCoverageRelationStatistics Valid=551, Invalid=6421, Unknown=0, NotChecked=0, Total=6972 [2022-04-28 04:13:35,967 INFO L413 NwaCegarLoop]: 42 mSDtfsCounter, 211 mSDsluCounter, 30 mSDsCounter, 0 mSdLazyCounter, 1272 mSolverCounterSat, 188 mSolverCounterUnsat, 6 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 14.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 211 SdHoareTripleChecker+Valid, 72 SdHoareTripleChecker+Invalid, 1466 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 188 IncrementalHoareTripleChecker+Valid, 1272 IncrementalHoareTripleChecker+Invalid, 6 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 14.9s IncrementalHoareTripleChecker+Time [2022-04-28 04:13:35,967 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [211 Valid, 72 Invalid, 1466 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [188 Valid, 1272 Invalid, 6 Unknown, 0 Unchecked, 14.9s Time] [2022-04-28 04:13:35,967 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 108 states. [2022-04-28 04:13:36,154 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 108 to 89. [2022-04-28 04:13:36,155 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:13:36,155 INFO L82 GeneralOperation]: Start isEquivalent. First operand 108 states. Second operand has 89 states, 63 states have (on average 1.2063492063492063) internal successors, (76), 66 states have internal predecessors, (76), 15 states have call successors, (15), 11 states have call predecessors, (15), 10 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) [2022-04-28 04:13:36,155 INFO L74 IsIncluded]: Start isIncluded. First operand 108 states. Second operand has 89 states, 63 states have (on average 1.2063492063492063) internal successors, (76), 66 states have internal predecessors, (76), 15 states have call successors, (15), 11 states have call predecessors, (15), 10 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) [2022-04-28 04:13:36,155 INFO L87 Difference]: Start difference. First operand 108 states. Second operand has 89 states, 63 states have (on average 1.2063492063492063) internal successors, (76), 66 states have internal predecessors, (76), 15 states have call successors, (15), 11 states have call predecessors, (15), 10 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) [2022-04-28 04:13:36,157 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:13:36,157 INFO L93 Difference]: Finished difference Result 108 states and 128 transitions. [2022-04-28 04:13:36,157 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 128 transitions. [2022-04-28 04:13:36,157 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:13:36,158 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:13:36,158 INFO L74 IsIncluded]: Start isIncluded. First operand has 89 states, 63 states have (on average 1.2063492063492063) internal successors, (76), 66 states have internal predecessors, (76), 15 states have call successors, (15), 11 states have call predecessors, (15), 10 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) Second operand 108 states. [2022-04-28 04:13:36,158 INFO L87 Difference]: Start difference. First operand has 89 states, 63 states have (on average 1.2063492063492063) internal successors, (76), 66 states have internal predecessors, (76), 15 states have call successors, (15), 11 states have call predecessors, (15), 10 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) Second operand 108 states. [2022-04-28 04:13:36,159 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:13:36,160 INFO L93 Difference]: Finished difference Result 108 states and 128 transitions. [2022-04-28 04:13:36,160 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 128 transitions. [2022-04-28 04:13:36,160 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:13:36,160 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:13:36,160 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:13:36,160 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:13:36,160 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 89 states, 63 states have (on average 1.2063492063492063) internal successors, (76), 66 states have internal predecessors, (76), 15 states have call successors, (15), 11 states have call predecessors, (15), 10 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) [2022-04-28 04:13:36,161 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 89 states to 89 states and 107 transitions. [2022-04-28 04:13:36,162 INFO L78 Accepts]: Start accepts. Automaton has 89 states and 107 transitions. Word has length 66 [2022-04-28 04:13:36,162 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:13:36,162 INFO L495 AbstractCegarLoop]: Abstraction has 89 states and 107 transitions. [2022-04-28 04:13:36,162 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 26 states, 22 states have (on average 2.0) internal successors, (44), 20 states have internal predecessors, (44), 7 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (8), 5 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-28 04:13:36,162 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 89 states and 107 transitions. [2022-04-28 04:13:36,373 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 107 edges. 107 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:13:36,373 INFO L276 IsEmpty]: Start isEmpty. Operand 89 states and 107 transitions. [2022-04-28 04:13:36,373 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 68 [2022-04-28 04:13:36,373 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:13:36,374 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1] [2022-04-28 04:13:36,390 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (9)] Forceful destruction successful, exit code 0 [2022-04-28 04:13:36,574 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 9 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable9 [2022-04-28 04:13:36,576 INFO L420 AbstractCegarLoop]: === Iteration 11 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:13:36,577 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:13:36,577 INFO L85 PathProgramCache]: Analyzing trace with hash -1470293173, now seen corresponding path program 3 times [2022-04-28 04:13:36,577 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:13:36,577 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [608386869] [2022-04-28 04:13:36,578 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:13:36,578 INFO L85 PathProgramCache]: Analyzing trace with hash -1470293173, now seen corresponding path program 4 times [2022-04-28 04:13:36,578 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:13:36,578 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [220027905] [2022-04-28 04:13:36,578 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:13:36,578 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:13:36,611 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:36,651 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:13:36,652 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:36,654 INFO L290 TraceCheckUtils]: 0: Hoare triple {8386#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {8340#true} is VALID [2022-04-28 04:13:36,654 INFO L290 TraceCheckUtils]: 1: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:36,655 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {8340#true} {8340#true} #160#return; {8340#true} is VALID [2022-04-28 04:13:36,655 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:13:36,655 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:36,657 INFO L290 TraceCheckUtils]: 0: Hoare triple {8340#true} ~cond := #in~cond; {8340#true} is VALID [2022-04-28 04:13:36,657 INFO L290 TraceCheckUtils]: 1: Hoare triple {8340#true} assume !(0 == ~cond); {8340#true} is VALID [2022-04-28 04:13:36,657 INFO L290 TraceCheckUtils]: 2: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:36,657 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8340#true} {8340#true} #142#return; {8340#true} is VALID [2022-04-28 04:13:36,657 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:13:36,658 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:36,660 INFO L290 TraceCheckUtils]: 0: Hoare triple {8340#true} ~x := #in~x; {8340#true} is VALID [2022-04-28 04:13:36,660 INFO L290 TraceCheckUtils]: 1: Hoare triple {8340#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {8340#true} is VALID [2022-04-28 04:13:36,660 INFO L290 TraceCheckUtils]: 2: Hoare triple {8340#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {8340#true} is VALID [2022-04-28 04:13:36,660 INFO L290 TraceCheckUtils]: 3: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:36,660 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {8340#true} {8340#true} #144#return; {8340#true} is VALID [2022-04-28 04:13:36,660 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:13:36,661 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:36,662 INFO L290 TraceCheckUtils]: 0: Hoare triple {8340#true} ~cond := #in~cond; {8340#true} is VALID [2022-04-28 04:13:36,662 INFO L290 TraceCheckUtils]: 1: Hoare triple {8340#true} assume !(0 == ~cond); {8340#true} is VALID [2022-04-28 04:13:36,663 INFO L290 TraceCheckUtils]: 2: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:36,663 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8340#true} {8340#true} #146#return; {8340#true} is VALID [2022-04-28 04:13:36,669 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:13:36,670 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:36,672 INFO L290 TraceCheckUtils]: 0: Hoare triple {8387#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {8340#true} is VALID [2022-04-28 04:13:36,672 INFO L290 TraceCheckUtils]: 1: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:36,672 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {8340#true} {8340#true} #148#return; {8340#true} is VALID [2022-04-28 04:13:36,672 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:13:36,672 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:36,674 INFO L290 TraceCheckUtils]: 0: Hoare triple {8387#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {8340#true} is VALID [2022-04-28 04:13:36,674 INFO L290 TraceCheckUtils]: 1: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:36,674 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {8340#true} {8340#true} #150#return; {8340#true} is VALID [2022-04-28 04:13:36,674 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 39 [2022-04-28 04:13:36,676 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:36,678 INFO L290 TraceCheckUtils]: 0: Hoare triple {8387#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {8340#true} is VALID [2022-04-28 04:13:36,678 INFO L290 TraceCheckUtils]: 1: Hoare triple {8340#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {8340#true} is VALID [2022-04-28 04:13:36,679 INFO L290 TraceCheckUtils]: 2: Hoare triple {8340#true} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {8340#true} is VALID [2022-04-28 04:13:36,679 INFO L290 TraceCheckUtils]: 3: Hoare triple {8340#true} assume !(~left~0 < ~n); {8340#true} is VALID [2022-04-28 04:13:36,679 INFO L290 TraceCheckUtils]: 4: Hoare triple {8340#true} ~space~0 := 2 * ~space~0; {8340#true} is VALID [2022-04-28 04:13:36,679 INFO L290 TraceCheckUtils]: 5: Hoare triple {8340#true} assume !(~space~0 < ~n); {8340#true} is VALID [2022-04-28 04:13:36,679 INFO L290 TraceCheckUtils]: 6: Hoare triple {8340#true} #res := ~space~0; {8340#true} is VALID [2022-04-28 04:13:36,679 INFO L290 TraceCheckUtils]: 7: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:36,680 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {8340#true} {8367#(<= main_~n~0 2)} #152#return; {8367#(<= main_~n~0 2)} is VALID [2022-04-28 04:13:36,680 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 50 [2022-04-28 04:13:36,685 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:36,738 INFO L290 TraceCheckUtils]: 0: Hoare triple {8387#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {8388#(<= downsweep_~n |downsweep_#in~n|)} is VALID [2022-04-28 04:13:36,738 INFO L290 TraceCheckUtils]: 1: Hoare triple {8388#(<= downsweep_~n |downsweep_#in~n|)} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {8389#(<= (+ downsweep_~n 3) (+ downsweep_~right~1 |downsweep_#in~n| (* 2 downsweep_~space)))} is VALID [2022-04-28 04:13:36,739 INFO L290 TraceCheckUtils]: 2: Hoare triple {8389#(<= (+ downsweep_~n 3) (+ downsweep_~right~1 |downsweep_#in~n| (* 2 downsweep_~space)))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {8390#(<= (+ downsweep_~n 3) (+ downsweep_~right~1 |downsweep_#in~n|))} is VALID [2022-04-28 04:13:36,740 INFO L290 TraceCheckUtils]: 3: Hoare triple {8390#(<= (+ downsweep_~n 3) (+ downsweep_~right~1 |downsweep_#in~n|))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:36,740 INFO L290 TraceCheckUtils]: 4: Hoare triple {8391#(<= 4 |downsweep_#in~n|)} assume !(~right~1 < ~n); {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:36,740 INFO L290 TraceCheckUtils]: 5: Hoare triple {8391#(<= 4 |downsweep_#in~n|)} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:36,741 INFO L290 TraceCheckUtils]: 6: Hoare triple {8391#(<= 4 |downsweep_#in~n|)} assume !(~space > 0); {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:36,741 INFO L290 TraceCheckUtils]: 7: Hoare triple {8391#(<= 4 |downsweep_#in~n|)} assume true; {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:36,742 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {8391#(<= 4 |downsweep_#in~n|)} {8367#(<= main_~n~0 2)} #154#return; {8341#false} is VALID [2022-04-28 04:13:36,742 INFO L272 TraceCheckUtils]: 0: Hoare triple {8340#true} call ULTIMATE.init(); {8386#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:13:36,742 INFO L290 TraceCheckUtils]: 1: Hoare triple {8386#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {8340#true} is VALID [2022-04-28 04:13:36,742 INFO L290 TraceCheckUtils]: 2: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:36,743 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8340#true} {8340#true} #160#return; {8340#true} is VALID [2022-04-28 04:13:36,743 INFO L272 TraceCheckUtils]: 4: Hoare triple {8340#true} call #t~ret20 := main(); {8340#true} is VALID [2022-04-28 04:13:36,743 INFO L290 TraceCheckUtils]: 5: Hoare triple {8340#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {8340#true} is VALID [2022-04-28 04:13:36,743 INFO L272 TraceCheckUtils]: 6: Hoare triple {8340#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {8340#true} is VALID [2022-04-28 04:13:36,743 INFO L290 TraceCheckUtils]: 7: Hoare triple {8340#true} ~cond := #in~cond; {8340#true} is VALID [2022-04-28 04:13:36,743 INFO L290 TraceCheckUtils]: 8: Hoare triple {8340#true} assume !(0 == ~cond); {8340#true} is VALID [2022-04-28 04:13:36,743 INFO L290 TraceCheckUtils]: 9: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:36,743 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8340#true} {8340#true} #142#return; {8340#true} is VALID [2022-04-28 04:13:36,743 INFO L272 TraceCheckUtils]: 11: Hoare triple {8340#true} call #t~ret14 := is_pow2(~n~0); {8340#true} is VALID [2022-04-28 04:13:36,743 INFO L290 TraceCheckUtils]: 12: Hoare triple {8340#true} ~x := #in~x; {8340#true} is VALID [2022-04-28 04:13:36,743 INFO L290 TraceCheckUtils]: 13: Hoare triple {8340#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {8340#true} is VALID [2022-04-28 04:13:36,743 INFO L290 TraceCheckUtils]: 14: Hoare triple {8340#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {8340#true} is VALID [2022-04-28 04:13:36,743 INFO L290 TraceCheckUtils]: 15: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:36,743 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {8340#true} {8340#true} #144#return; {8340#true} is VALID [2022-04-28 04:13:36,744 INFO L290 TraceCheckUtils]: 17: Hoare triple {8340#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {8340#true} is VALID [2022-04-28 04:13:36,744 INFO L272 TraceCheckUtils]: 18: Hoare triple {8340#true} call assume_abort_if_not(#t~ret14); {8340#true} is VALID [2022-04-28 04:13:36,744 INFO L290 TraceCheckUtils]: 19: Hoare triple {8340#true} ~cond := #in~cond; {8340#true} is VALID [2022-04-28 04:13:36,744 INFO L290 TraceCheckUtils]: 20: Hoare triple {8340#true} assume !(0 == ~cond); {8340#true} is VALID [2022-04-28 04:13:36,744 INFO L290 TraceCheckUtils]: 21: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:36,744 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {8340#true} {8340#true} #146#return; {8340#true} is VALID [2022-04-28 04:13:36,744 INFO L290 TraceCheckUtils]: 23: Hoare triple {8340#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {8340#true} is VALID [2022-04-28 04:13:36,745 INFO L272 TraceCheckUtils]: 24: Hoare triple {8340#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {8387#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:13:36,745 INFO L290 TraceCheckUtils]: 25: Hoare triple {8387#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {8340#true} is VALID [2022-04-28 04:13:36,745 INFO L290 TraceCheckUtils]: 26: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:36,745 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {8340#true} {8340#true} #148#return; {8340#true} is VALID [2022-04-28 04:13:36,745 INFO L290 TraceCheckUtils]: 28: Hoare triple {8340#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {8340#true} is VALID [2022-04-28 04:13:36,746 INFO L272 TraceCheckUtils]: 29: Hoare triple {8340#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {8387#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:13:36,746 INFO L290 TraceCheckUtils]: 30: Hoare triple {8387#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {8340#true} is VALID [2022-04-28 04:13:36,746 INFO L290 TraceCheckUtils]: 31: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:36,746 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {8340#true} {8340#true} #150#return; {8340#true} is VALID [2022-04-28 04:13:36,746 INFO L290 TraceCheckUtils]: 33: Hoare triple {8340#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {8364#(= main_~i~1 0)} is VALID [2022-04-28 04:13:36,746 INFO L290 TraceCheckUtils]: 34: Hoare triple {8364#(= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {8364#(= main_~i~1 0)} is VALID [2022-04-28 04:13:36,747 INFO L290 TraceCheckUtils]: 35: Hoare triple {8364#(= main_~i~1 0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {8365#(<= main_~i~1 1)} is VALID [2022-04-28 04:13:36,747 INFO L290 TraceCheckUtils]: 36: Hoare triple {8365#(<= main_~i~1 1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {8365#(<= main_~i~1 1)} is VALID [2022-04-28 04:13:36,748 INFO L290 TraceCheckUtils]: 37: Hoare triple {8365#(<= main_~i~1 1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {8366#(<= main_~i~1 2)} is VALID [2022-04-28 04:13:36,748 INFO L290 TraceCheckUtils]: 38: Hoare triple {8366#(<= main_~i~1 2)} assume !(~i~1 < ~n~0); {8367#(<= main_~n~0 2)} is VALID [2022-04-28 04:13:36,749 INFO L272 TraceCheckUtils]: 39: Hoare triple {8367#(<= main_~n~0 2)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {8387#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:13:36,749 INFO L290 TraceCheckUtils]: 40: Hoare triple {8387#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {8340#true} is VALID [2022-04-28 04:13:36,749 INFO L290 TraceCheckUtils]: 41: Hoare triple {8340#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {8340#true} is VALID [2022-04-28 04:13:36,749 INFO L290 TraceCheckUtils]: 42: Hoare triple {8340#true} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {8340#true} is VALID [2022-04-28 04:13:36,749 INFO L290 TraceCheckUtils]: 43: Hoare triple {8340#true} assume !(~left~0 < ~n); {8340#true} is VALID [2022-04-28 04:13:36,749 INFO L290 TraceCheckUtils]: 44: Hoare triple {8340#true} ~space~0 := 2 * ~space~0; {8340#true} is VALID [2022-04-28 04:13:36,749 INFO L290 TraceCheckUtils]: 45: Hoare triple {8340#true} assume !(~space~0 < ~n); {8340#true} is VALID [2022-04-28 04:13:36,749 INFO L290 TraceCheckUtils]: 46: Hoare triple {8340#true} #res := ~space~0; {8340#true} is VALID [2022-04-28 04:13:36,749 INFO L290 TraceCheckUtils]: 47: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:36,750 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {8340#true} {8367#(<= main_~n~0 2)} #152#return; {8367#(<= main_~n~0 2)} is VALID [2022-04-28 04:13:36,750 INFO L290 TraceCheckUtils]: 49: Hoare triple {8367#(<= main_~n~0 2)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {8367#(<= main_~n~0 2)} is VALID [2022-04-28 04:13:36,751 INFO L272 TraceCheckUtils]: 50: Hoare triple {8367#(<= main_~n~0 2)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {8387#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:13:36,751 INFO L290 TraceCheckUtils]: 51: Hoare triple {8387#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {8388#(<= downsweep_~n |downsweep_#in~n|)} is VALID [2022-04-28 04:13:36,752 INFO L290 TraceCheckUtils]: 52: Hoare triple {8388#(<= downsweep_~n |downsweep_#in~n|)} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {8389#(<= (+ downsweep_~n 3) (+ downsweep_~right~1 |downsweep_#in~n| (* 2 downsweep_~space)))} is VALID [2022-04-28 04:13:36,753 INFO L290 TraceCheckUtils]: 53: Hoare triple {8389#(<= (+ downsweep_~n 3) (+ downsweep_~right~1 |downsweep_#in~n| (* 2 downsweep_~space)))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {8390#(<= (+ downsweep_~n 3) (+ downsweep_~right~1 |downsweep_#in~n|))} is VALID [2022-04-28 04:13:36,753 INFO L290 TraceCheckUtils]: 54: Hoare triple {8390#(<= (+ downsweep_~n 3) (+ downsweep_~right~1 |downsweep_#in~n|))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:36,754 INFO L290 TraceCheckUtils]: 55: Hoare triple {8391#(<= 4 |downsweep_#in~n|)} assume !(~right~1 < ~n); {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:36,754 INFO L290 TraceCheckUtils]: 56: Hoare triple {8391#(<= 4 |downsweep_#in~n|)} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:36,754 INFO L290 TraceCheckUtils]: 57: Hoare triple {8391#(<= 4 |downsweep_#in~n|)} assume !(~space > 0); {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:36,754 INFO L290 TraceCheckUtils]: 58: Hoare triple {8391#(<= 4 |downsweep_#in~n|)} assume true; {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:36,755 INFO L284 TraceCheckUtils]: 59: Hoare quadruple {8391#(<= 4 |downsweep_#in~n|)} {8367#(<= main_~n~0 2)} #154#return; {8341#false} is VALID [2022-04-28 04:13:36,755 INFO L272 TraceCheckUtils]: 60: Hoare triple {8341#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {8341#false} is VALID [2022-04-28 04:13:36,755 INFO L290 TraceCheckUtils]: 61: Hoare triple {8341#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {8341#false} is VALID [2022-04-28 04:13:36,755 INFO L290 TraceCheckUtils]: 62: Hoare triple {8341#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {8341#false} is VALID [2022-04-28 04:13:36,756 INFO L272 TraceCheckUtils]: 63: Hoare triple {8341#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {8341#false} is VALID [2022-04-28 04:13:36,756 INFO L290 TraceCheckUtils]: 64: Hoare triple {8341#false} ~cond := #in~cond; {8341#false} is VALID [2022-04-28 04:13:36,756 INFO L290 TraceCheckUtils]: 65: Hoare triple {8341#false} assume 0 == ~cond; {8341#false} is VALID [2022-04-28 04:13:36,756 INFO L290 TraceCheckUtils]: 66: Hoare triple {8341#false} assume !false; {8341#false} is VALID [2022-04-28 04:13:36,756 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 0 proven. 8 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2022-04-28 04:13:36,756 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:13:36,756 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [220027905] [2022-04-28 04:13:36,756 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [220027905] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:13:36,756 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [564018076] [2022-04-28 04:13:36,756 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-28 04:13:36,756 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:13:36,757 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:13:36,757 INFO L229 MonitoredProcess]: Starting monitored process 10 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:13:36,758 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (10)] Waiting until timeout for monitored process [2022-04-28 04:13:36,833 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-28 04:13:36,833 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:13:36,834 INFO L263 TraceCheckSpWp]: Trace formula consists of 256 conjuncts, 10 conjunts are in the unsatisfiable core [2022-04-28 04:13:36,847 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:36,848 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:13:37,221 INFO L272 TraceCheckUtils]: 0: Hoare triple {8340#true} call ULTIMATE.init(); {8340#true} is VALID [2022-04-28 04:13:37,222 INFO L290 TraceCheckUtils]: 1: Hoare triple {8340#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {8340#true} is VALID [2022-04-28 04:13:37,222 INFO L290 TraceCheckUtils]: 2: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:37,222 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8340#true} {8340#true} #160#return; {8340#true} is VALID [2022-04-28 04:13:37,222 INFO L272 TraceCheckUtils]: 4: Hoare triple {8340#true} call #t~ret20 := main(); {8340#true} is VALID [2022-04-28 04:13:37,222 INFO L290 TraceCheckUtils]: 5: Hoare triple {8340#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {8340#true} is VALID [2022-04-28 04:13:37,222 INFO L272 TraceCheckUtils]: 6: Hoare triple {8340#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {8340#true} is VALID [2022-04-28 04:13:37,222 INFO L290 TraceCheckUtils]: 7: Hoare triple {8340#true} ~cond := #in~cond; {8340#true} is VALID [2022-04-28 04:13:37,222 INFO L290 TraceCheckUtils]: 8: Hoare triple {8340#true} assume !(0 == ~cond); {8340#true} is VALID [2022-04-28 04:13:37,222 INFO L290 TraceCheckUtils]: 9: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:37,222 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8340#true} {8340#true} #142#return; {8340#true} is VALID [2022-04-28 04:13:37,222 INFO L272 TraceCheckUtils]: 11: Hoare triple {8340#true} call #t~ret14 := is_pow2(~n~0); {8340#true} is VALID [2022-04-28 04:13:37,223 INFO L290 TraceCheckUtils]: 12: Hoare triple {8340#true} ~x := #in~x; {8340#true} is VALID [2022-04-28 04:13:37,223 INFO L290 TraceCheckUtils]: 13: Hoare triple {8340#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {8340#true} is VALID [2022-04-28 04:13:37,223 INFO L290 TraceCheckUtils]: 14: Hoare triple {8340#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {8340#true} is VALID [2022-04-28 04:13:37,223 INFO L290 TraceCheckUtils]: 15: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:37,223 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {8340#true} {8340#true} #144#return; {8340#true} is VALID [2022-04-28 04:13:37,223 INFO L290 TraceCheckUtils]: 17: Hoare triple {8340#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {8340#true} is VALID [2022-04-28 04:13:37,223 INFO L272 TraceCheckUtils]: 18: Hoare triple {8340#true} call assume_abort_if_not(#t~ret14); {8340#true} is VALID [2022-04-28 04:13:37,223 INFO L290 TraceCheckUtils]: 19: Hoare triple {8340#true} ~cond := #in~cond; {8340#true} is VALID [2022-04-28 04:13:37,223 INFO L290 TraceCheckUtils]: 20: Hoare triple {8340#true} assume !(0 == ~cond); {8340#true} is VALID [2022-04-28 04:13:37,223 INFO L290 TraceCheckUtils]: 21: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:37,223 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {8340#true} {8340#true} #146#return; {8340#true} is VALID [2022-04-28 04:13:37,223 INFO L290 TraceCheckUtils]: 23: Hoare triple {8340#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {8340#true} is VALID [2022-04-28 04:13:37,223 INFO L272 TraceCheckUtils]: 24: Hoare triple {8340#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {8340#true} is VALID [2022-04-28 04:13:37,223 INFO L290 TraceCheckUtils]: 25: Hoare triple {8340#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {8340#true} is VALID [2022-04-28 04:13:37,224 INFO L290 TraceCheckUtils]: 26: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:37,224 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {8340#true} {8340#true} #148#return; {8340#true} is VALID [2022-04-28 04:13:37,224 INFO L290 TraceCheckUtils]: 28: Hoare triple {8340#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {8340#true} is VALID [2022-04-28 04:13:37,224 INFO L272 TraceCheckUtils]: 29: Hoare triple {8340#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {8340#true} is VALID [2022-04-28 04:13:37,224 INFO L290 TraceCheckUtils]: 30: Hoare triple {8340#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {8340#true} is VALID [2022-04-28 04:13:37,224 INFO L290 TraceCheckUtils]: 31: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:37,224 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {8340#true} {8340#true} #150#return; {8340#true} is VALID [2022-04-28 04:13:37,224 INFO L290 TraceCheckUtils]: 33: Hoare triple {8340#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {8494#(<= main_~i~1 0)} is VALID [2022-04-28 04:13:37,225 INFO L290 TraceCheckUtils]: 34: Hoare triple {8494#(<= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {8494#(<= main_~i~1 0)} is VALID [2022-04-28 04:13:37,225 INFO L290 TraceCheckUtils]: 35: Hoare triple {8494#(<= main_~i~1 0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {8365#(<= main_~i~1 1)} is VALID [2022-04-28 04:13:37,225 INFO L290 TraceCheckUtils]: 36: Hoare triple {8365#(<= main_~i~1 1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {8365#(<= main_~i~1 1)} is VALID [2022-04-28 04:13:37,226 INFO L290 TraceCheckUtils]: 37: Hoare triple {8365#(<= main_~i~1 1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {8366#(<= main_~i~1 2)} is VALID [2022-04-28 04:13:37,226 INFO L290 TraceCheckUtils]: 38: Hoare triple {8366#(<= main_~i~1 2)} assume !(~i~1 < ~n~0); {8367#(<= main_~n~0 2)} is VALID [2022-04-28 04:13:37,226 INFO L272 TraceCheckUtils]: 39: Hoare triple {8367#(<= main_~n~0 2)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {8340#true} is VALID [2022-04-28 04:13:37,226 INFO L290 TraceCheckUtils]: 40: Hoare triple {8340#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {8340#true} is VALID [2022-04-28 04:13:37,226 INFO L290 TraceCheckUtils]: 41: Hoare triple {8340#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {8340#true} is VALID [2022-04-28 04:13:37,227 INFO L290 TraceCheckUtils]: 42: Hoare triple {8340#true} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {8340#true} is VALID [2022-04-28 04:13:37,227 INFO L290 TraceCheckUtils]: 43: Hoare triple {8340#true} assume !(~left~0 < ~n); {8340#true} is VALID [2022-04-28 04:13:37,227 INFO L290 TraceCheckUtils]: 44: Hoare triple {8340#true} ~space~0 := 2 * ~space~0; {8340#true} is VALID [2022-04-28 04:13:37,227 INFO L290 TraceCheckUtils]: 45: Hoare triple {8340#true} assume !(~space~0 < ~n); {8340#true} is VALID [2022-04-28 04:13:37,227 INFO L290 TraceCheckUtils]: 46: Hoare triple {8340#true} #res := ~space~0; {8340#true} is VALID [2022-04-28 04:13:37,227 INFO L290 TraceCheckUtils]: 47: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:37,227 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {8340#true} {8367#(<= main_~n~0 2)} #152#return; {8367#(<= main_~n~0 2)} is VALID [2022-04-28 04:13:37,228 INFO L290 TraceCheckUtils]: 49: Hoare triple {8367#(<= main_~n~0 2)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {8367#(<= main_~n~0 2)} is VALID [2022-04-28 04:13:37,228 INFO L272 TraceCheckUtils]: 50: Hoare triple {8367#(<= main_~n~0 2)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {8340#true} is VALID [2022-04-28 04:13:37,228 INFO L290 TraceCheckUtils]: 51: Hoare triple {8340#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {8388#(<= downsweep_~n |downsweep_#in~n|)} is VALID [2022-04-28 04:13:37,229 INFO L290 TraceCheckUtils]: 52: Hoare triple {8388#(<= downsweep_~n |downsweep_#in~n|)} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {8552#(and (<= downsweep_~n |downsweep_#in~n|) (<= (* 2 downsweep_~space) (+ downsweep_~right~1 1)) (< 0 downsweep_~space))} is VALID [2022-04-28 04:13:37,230 INFO L290 TraceCheckUtils]: 53: Hoare triple {8552#(and (<= downsweep_~n |downsweep_#in~n|) (<= (* 2 downsweep_~space) (+ downsweep_~right~1 1)) (< 0 downsweep_~space))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {8556#(and (<= downsweep_~n |downsweep_#in~n|) (< 0 (div (+ downsweep_~right~1 1) 4)))} is VALID [2022-04-28 04:13:37,230 INFO L290 TraceCheckUtils]: 54: Hoare triple {8556#(and (<= downsweep_~n |downsweep_#in~n|) (< 0 (div (+ downsweep_~right~1 1) 4)))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:37,231 INFO L290 TraceCheckUtils]: 55: Hoare triple {8391#(<= 4 |downsweep_#in~n|)} assume !(~right~1 < ~n); {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:37,231 INFO L290 TraceCheckUtils]: 56: Hoare triple {8391#(<= 4 |downsweep_#in~n|)} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:37,231 INFO L290 TraceCheckUtils]: 57: Hoare triple {8391#(<= 4 |downsweep_#in~n|)} assume !(~space > 0); {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:37,231 INFO L290 TraceCheckUtils]: 58: Hoare triple {8391#(<= 4 |downsweep_#in~n|)} assume true; {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:37,232 INFO L284 TraceCheckUtils]: 59: Hoare quadruple {8391#(<= 4 |downsweep_#in~n|)} {8367#(<= main_~n~0 2)} #154#return; {8341#false} is VALID [2022-04-28 04:13:37,232 INFO L272 TraceCheckUtils]: 60: Hoare triple {8341#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {8341#false} is VALID [2022-04-28 04:13:37,232 INFO L290 TraceCheckUtils]: 61: Hoare triple {8341#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {8341#false} is VALID [2022-04-28 04:13:37,232 INFO L290 TraceCheckUtils]: 62: Hoare triple {8341#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {8341#false} is VALID [2022-04-28 04:13:37,232 INFO L272 TraceCheckUtils]: 63: Hoare triple {8341#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {8341#false} is VALID [2022-04-28 04:13:37,233 INFO L290 TraceCheckUtils]: 64: Hoare triple {8341#false} ~cond := #in~cond; {8341#false} is VALID [2022-04-28 04:13:37,233 INFO L290 TraceCheckUtils]: 65: Hoare triple {8341#false} assume 0 == ~cond; {8341#false} is VALID [2022-04-28 04:13:37,233 INFO L290 TraceCheckUtils]: 66: Hoare triple {8341#false} assume !false; {8341#false} is VALID [2022-04-28 04:13:37,233 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 0 proven. 8 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2022-04-28 04:13:37,233 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:13:38,242 INFO L290 TraceCheckUtils]: 66: Hoare triple {8341#false} assume !false; {8341#false} is VALID [2022-04-28 04:13:38,242 INFO L290 TraceCheckUtils]: 65: Hoare triple {8341#false} assume 0 == ~cond; {8341#false} is VALID [2022-04-28 04:13:38,242 INFO L290 TraceCheckUtils]: 64: Hoare triple {8341#false} ~cond := #in~cond; {8341#false} is VALID [2022-04-28 04:13:38,242 INFO L272 TraceCheckUtils]: 63: Hoare triple {8341#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {8341#false} is VALID [2022-04-28 04:13:38,242 INFO L290 TraceCheckUtils]: 62: Hoare triple {8341#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {8341#false} is VALID [2022-04-28 04:13:38,243 INFO L290 TraceCheckUtils]: 61: Hoare triple {8341#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {8341#false} is VALID [2022-04-28 04:13:38,243 INFO L272 TraceCheckUtils]: 60: Hoare triple {8341#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {8341#false} is VALID [2022-04-28 04:13:38,244 INFO L284 TraceCheckUtils]: 59: Hoare quadruple {8391#(<= 4 |downsweep_#in~n|)} {8617#(<= (div (+ (- 1) (* (- 1) main_~n~0)) (- 4)) 1)} #154#return; {8341#false} is VALID [2022-04-28 04:13:38,244 INFO L290 TraceCheckUtils]: 58: Hoare triple {8391#(<= 4 |downsweep_#in~n|)} assume true; {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:38,244 INFO L290 TraceCheckUtils]: 57: Hoare triple {8391#(<= 4 |downsweep_#in~n|)} assume !(~space > 0); {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:38,244 INFO L290 TraceCheckUtils]: 56: Hoare triple {8391#(<= 4 |downsweep_#in~n|)} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:38,245 INFO L290 TraceCheckUtils]: 55: Hoare triple {8391#(<= 4 |downsweep_#in~n|)} assume !(~right~1 < ~n); {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:38,245 INFO L290 TraceCheckUtils]: 54: Hoare triple {8636#(or (not (< downsweep_~right~1 downsweep_~n)) (<= 4 |downsweep_#in~n|))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {8391#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:13:38,246 INFO L290 TraceCheckUtils]: 53: Hoare triple {8640#(or (<= downsweep_~n (+ downsweep_~right~1 (* 2 downsweep_~space))) (<= 4 |downsweep_#in~n|))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {8636#(or (not (< downsweep_~right~1 downsweep_~n)) (<= 4 |downsweep_#in~n|))} is VALID [2022-04-28 04:13:38,247 INFO L290 TraceCheckUtils]: 52: Hoare triple {8644#(or (<= 4 |downsweep_#in~n|) (<= (div (+ (- 1) (* (- 1) downsweep_~n)) (- 4)) 1))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {8640#(or (<= downsweep_~n (+ downsweep_~right~1 (* 2 downsweep_~space))) (<= 4 |downsweep_#in~n|))} is VALID [2022-04-28 04:13:38,247 INFO L290 TraceCheckUtils]: 51: Hoare triple {8340#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {8644#(or (<= 4 |downsweep_#in~n|) (<= (div (+ (- 1) (* (- 1) downsweep_~n)) (- 4)) 1))} is VALID [2022-04-28 04:13:38,247 INFO L272 TraceCheckUtils]: 50: Hoare triple {8617#(<= (div (+ (- 1) (* (- 1) main_~n~0)) (- 4)) 1)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {8340#true} is VALID [2022-04-28 04:13:38,248 INFO L290 TraceCheckUtils]: 49: Hoare triple {8617#(<= (div (+ (- 1) (* (- 1) main_~n~0)) (- 4)) 1)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {8617#(<= (div (+ (- 1) (* (- 1) main_~n~0)) (- 4)) 1)} is VALID [2022-04-28 04:13:38,248 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {8340#true} {8617#(<= (div (+ (- 1) (* (- 1) main_~n~0)) (- 4)) 1)} #152#return; {8617#(<= (div (+ (- 1) (* (- 1) main_~n~0)) (- 4)) 1)} is VALID [2022-04-28 04:13:38,248 INFO L290 TraceCheckUtils]: 47: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:38,248 INFO L290 TraceCheckUtils]: 46: Hoare triple {8340#true} #res := ~space~0; {8340#true} is VALID [2022-04-28 04:13:38,249 INFO L290 TraceCheckUtils]: 45: Hoare triple {8340#true} assume !(~space~0 < ~n); {8340#true} is VALID [2022-04-28 04:13:38,249 INFO L290 TraceCheckUtils]: 44: Hoare triple {8340#true} ~space~0 := 2 * ~space~0; {8340#true} is VALID [2022-04-28 04:13:38,249 INFO L290 TraceCheckUtils]: 43: Hoare triple {8340#true} assume !(~left~0 < ~n); {8340#true} is VALID [2022-04-28 04:13:38,249 INFO L290 TraceCheckUtils]: 42: Hoare triple {8340#true} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {8340#true} is VALID [2022-04-28 04:13:38,249 INFO L290 TraceCheckUtils]: 41: Hoare triple {8340#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {8340#true} is VALID [2022-04-28 04:13:38,249 INFO L290 TraceCheckUtils]: 40: Hoare triple {8340#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {8340#true} is VALID [2022-04-28 04:13:38,249 INFO L272 TraceCheckUtils]: 39: Hoare triple {8617#(<= (div (+ (- 1) (* (- 1) main_~n~0)) (- 4)) 1)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {8340#true} is VALID [2022-04-28 04:13:38,249 INFO L290 TraceCheckUtils]: 38: Hoare triple {8684#(<= (div (+ (* (- 1) main_~i~1) (- 5)) (- 4)) 2)} assume !(~i~1 < ~n~0); {8617#(<= (div (+ (- 1) (* (- 1) main_~n~0)) (- 4)) 1)} is VALID [2022-04-28 04:13:38,250 INFO L290 TraceCheckUtils]: 37: Hoare triple {8366#(<= main_~i~1 2)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {8684#(<= (div (+ (* (- 1) main_~i~1) (- 5)) (- 4)) 2)} is VALID [2022-04-28 04:13:38,250 INFO L290 TraceCheckUtils]: 36: Hoare triple {8366#(<= main_~i~1 2)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {8366#(<= main_~i~1 2)} is VALID [2022-04-28 04:13:38,251 INFO L290 TraceCheckUtils]: 35: Hoare triple {8365#(<= main_~i~1 1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {8366#(<= main_~i~1 2)} is VALID [2022-04-28 04:13:38,251 INFO L290 TraceCheckUtils]: 34: Hoare triple {8365#(<= main_~i~1 1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {8365#(<= main_~i~1 1)} is VALID [2022-04-28 04:13:38,251 INFO L290 TraceCheckUtils]: 33: Hoare triple {8340#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {8365#(<= main_~i~1 1)} is VALID [2022-04-28 04:13:38,251 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {8340#true} {8340#true} #150#return; {8340#true} is VALID [2022-04-28 04:13:38,251 INFO L290 TraceCheckUtils]: 31: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:38,252 INFO L290 TraceCheckUtils]: 30: Hoare triple {8340#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {8340#true} is VALID [2022-04-28 04:13:38,252 INFO L272 TraceCheckUtils]: 29: Hoare triple {8340#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {8340#true} is VALID [2022-04-28 04:13:38,252 INFO L290 TraceCheckUtils]: 28: Hoare triple {8340#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {8340#true} is VALID [2022-04-28 04:13:38,252 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {8340#true} {8340#true} #148#return; {8340#true} is VALID [2022-04-28 04:13:38,252 INFO L290 TraceCheckUtils]: 26: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:38,252 INFO L290 TraceCheckUtils]: 25: Hoare triple {8340#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {8340#true} is VALID [2022-04-28 04:13:38,252 INFO L272 TraceCheckUtils]: 24: Hoare triple {8340#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {8340#true} is VALID [2022-04-28 04:13:38,252 INFO L290 TraceCheckUtils]: 23: Hoare triple {8340#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {8340#true} is VALID [2022-04-28 04:13:38,252 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {8340#true} {8340#true} #146#return; {8340#true} is VALID [2022-04-28 04:13:38,252 INFO L290 TraceCheckUtils]: 21: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:38,252 INFO L290 TraceCheckUtils]: 20: Hoare triple {8340#true} assume !(0 == ~cond); {8340#true} is VALID [2022-04-28 04:13:38,252 INFO L290 TraceCheckUtils]: 19: Hoare triple {8340#true} ~cond := #in~cond; {8340#true} is VALID [2022-04-28 04:13:38,252 INFO L272 TraceCheckUtils]: 18: Hoare triple {8340#true} call assume_abort_if_not(#t~ret14); {8340#true} is VALID [2022-04-28 04:13:38,252 INFO L290 TraceCheckUtils]: 17: Hoare triple {8340#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {8340#true} is VALID [2022-04-28 04:13:38,252 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {8340#true} {8340#true} #144#return; {8340#true} is VALID [2022-04-28 04:13:38,253 INFO L290 TraceCheckUtils]: 15: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:38,253 INFO L290 TraceCheckUtils]: 14: Hoare triple {8340#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {8340#true} is VALID [2022-04-28 04:13:38,253 INFO L290 TraceCheckUtils]: 13: Hoare triple {8340#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {8340#true} is VALID [2022-04-28 04:13:38,253 INFO L290 TraceCheckUtils]: 12: Hoare triple {8340#true} ~x := #in~x; {8340#true} is VALID [2022-04-28 04:13:38,253 INFO L272 TraceCheckUtils]: 11: Hoare triple {8340#true} call #t~ret14 := is_pow2(~n~0); {8340#true} is VALID [2022-04-28 04:13:38,253 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8340#true} {8340#true} #142#return; {8340#true} is VALID [2022-04-28 04:13:38,253 INFO L290 TraceCheckUtils]: 9: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:38,253 INFO L290 TraceCheckUtils]: 8: Hoare triple {8340#true} assume !(0 == ~cond); {8340#true} is VALID [2022-04-28 04:13:38,253 INFO L290 TraceCheckUtils]: 7: Hoare triple {8340#true} ~cond := #in~cond; {8340#true} is VALID [2022-04-28 04:13:38,253 INFO L272 TraceCheckUtils]: 6: Hoare triple {8340#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {8340#true} is VALID [2022-04-28 04:13:38,253 INFO L290 TraceCheckUtils]: 5: Hoare triple {8340#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {8340#true} is VALID [2022-04-28 04:13:38,253 INFO L272 TraceCheckUtils]: 4: Hoare triple {8340#true} call #t~ret20 := main(); {8340#true} is VALID [2022-04-28 04:13:38,253 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8340#true} {8340#true} #160#return; {8340#true} is VALID [2022-04-28 04:13:38,253 INFO L290 TraceCheckUtils]: 2: Hoare triple {8340#true} assume true; {8340#true} is VALID [2022-04-28 04:13:38,254 INFO L290 TraceCheckUtils]: 1: Hoare triple {8340#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {8340#true} is VALID [2022-04-28 04:13:38,254 INFO L272 TraceCheckUtils]: 0: Hoare triple {8340#true} call ULTIMATE.init(); {8340#true} is VALID [2022-04-28 04:13:38,254 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 3 proven. 5 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2022-04-28 04:13:38,254 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [564018076] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:13:38,254 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-28 04:13:38,254 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 10, 10] total 20 [2022-04-28 04:13:38,254 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:13:38,254 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [608386869] [2022-04-28 04:13:38,254 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [608386869] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:13:38,254 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:13:38,254 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [12] imperfect sequences [] total 12 [2022-04-28 04:13:38,255 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [59360010] [2022-04-28 04:13:38,255 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:13:38,255 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 12 states have (on average 3.5833333333333335) internal successors, (43), 10 states have internal predecessors, (43), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) Word has length 67 [2022-04-28 04:13:38,255 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:13:38,255 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 12 states, 12 states have (on average 3.5833333333333335) internal successors, (43), 10 states have internal predecessors, (43), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:13:38,294 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 62 edges. 62 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:13:38,294 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-04-28 04:13:38,294 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:13:38,295 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-04-28 04:13:38,295 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=62, Invalid=318, Unknown=0, NotChecked=0, Total=380 [2022-04-28 04:13:38,295 INFO L87 Difference]: Start difference. First operand 89 states and 107 transitions. Second operand has 12 states, 12 states have (on average 3.5833333333333335) internal successors, (43), 10 states have internal predecessors, (43), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:13:40,452 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:13:46,879 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:13:49,022 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:13:52,692 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:13:52,692 INFO L93 Difference]: Finished difference Result 114 states and 137 transitions. [2022-04-28 04:13:52,692 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2022-04-28 04:13:52,692 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 12 states have (on average 3.5833333333333335) internal successors, (43), 10 states have internal predecessors, (43), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) Word has length 67 [2022-04-28 04:13:52,692 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:13:52,692 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 12 states have (on average 3.5833333333333335) internal successors, (43), 10 states have internal predecessors, (43), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:13:52,693 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 114 transitions. [2022-04-28 04:13:52,693 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 12 states have (on average 3.5833333333333335) internal successors, (43), 10 states have internal predecessors, (43), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:13:52,694 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 114 transitions. [2022-04-28 04:13:52,694 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 16 states and 114 transitions. [2022-04-28 04:13:52,799 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 114 edges. 114 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:13:52,800 INFO L225 Difference]: With dead ends: 114 [2022-04-28 04:13:52,801 INFO L226 Difference]: Without dead ends: 102 [2022-04-28 04:13:52,801 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 171 GetRequests, 138 SyntacticMatches, 3 SemanticMatches, 30 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 161 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=166, Invalid=826, Unknown=0, NotChecked=0, Total=992 [2022-04-28 04:13:52,801 INFO L413 NwaCegarLoop]: 53 mSDtfsCounter, 92 mSDsluCounter, 12 mSDsCounter, 0 mSdLazyCounter, 550 mSolverCounterSat, 54 mSolverCounterUnsat, 3 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 6.6s Time, 0 mProtectedPredicate, 0 mProtectedAction, 95 SdHoareTripleChecker+Valid, 65 SdHoareTripleChecker+Invalid, 607 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 54 IncrementalHoareTripleChecker+Valid, 550 IncrementalHoareTripleChecker+Invalid, 3 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 6.8s IncrementalHoareTripleChecker+Time [2022-04-28 04:13:52,802 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [95 Valid, 65 Invalid, 607 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [54 Valid, 550 Invalid, 3 Unknown, 0 Unchecked, 6.8s Time] [2022-04-28 04:13:52,802 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 102 states. [2022-04-28 04:13:53,045 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 102 to 97. [2022-04-28 04:13:53,045 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:13:53,046 INFO L82 GeneralOperation]: Start isEquivalent. First operand 102 states. Second operand has 97 states, 70 states have (on average 1.2285714285714286) internal successors, (86), 74 states have internal predecessors, (86), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (17), 11 states have call predecessors, (17), 12 states have call successors, (17) [2022-04-28 04:13:53,046 INFO L74 IsIncluded]: Start isIncluded. First operand 102 states. Second operand has 97 states, 70 states have (on average 1.2285714285714286) internal successors, (86), 74 states have internal predecessors, (86), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (17), 11 states have call predecessors, (17), 12 states have call successors, (17) [2022-04-28 04:13:53,046 INFO L87 Difference]: Start difference. First operand 102 states. Second operand has 97 states, 70 states have (on average 1.2285714285714286) internal successors, (86), 74 states have internal predecessors, (86), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (17), 11 states have call predecessors, (17), 12 states have call successors, (17) [2022-04-28 04:13:53,048 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:13:53,048 INFO L93 Difference]: Finished difference Result 102 states and 124 transitions. [2022-04-28 04:13:53,048 INFO L276 IsEmpty]: Start isEmpty. Operand 102 states and 124 transitions. [2022-04-28 04:13:53,048 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:13:53,048 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:13:53,048 INFO L74 IsIncluded]: Start isIncluded. First operand has 97 states, 70 states have (on average 1.2285714285714286) internal successors, (86), 74 states have internal predecessors, (86), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (17), 11 states have call predecessors, (17), 12 states have call successors, (17) Second operand 102 states. [2022-04-28 04:13:53,049 INFO L87 Difference]: Start difference. First operand has 97 states, 70 states have (on average 1.2285714285714286) internal successors, (86), 74 states have internal predecessors, (86), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (17), 11 states have call predecessors, (17), 12 states have call successors, (17) Second operand 102 states. [2022-04-28 04:13:53,050 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:13:53,050 INFO L93 Difference]: Finished difference Result 102 states and 124 transitions. [2022-04-28 04:13:53,050 INFO L276 IsEmpty]: Start isEmpty. Operand 102 states and 124 transitions. [2022-04-28 04:13:53,050 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:13:53,050 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:13:53,050 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:13:53,051 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:13:53,051 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 97 states, 70 states have (on average 1.2285714285714286) internal successors, (86), 74 states have internal predecessors, (86), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (17), 11 states have call predecessors, (17), 12 states have call successors, (17) [2022-04-28 04:13:53,052 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 97 states to 97 states and 118 transitions. [2022-04-28 04:13:53,052 INFO L78 Accepts]: Start accepts. Automaton has 97 states and 118 transitions. Word has length 67 [2022-04-28 04:13:53,052 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:13:53,052 INFO L495 AbstractCegarLoop]: Abstraction has 97 states and 118 transitions. [2022-04-28 04:13:53,053 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 12 states, 12 states have (on average 3.5833333333333335) internal successors, (43), 10 states have internal predecessors, (43), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:13:53,053 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 97 states and 118 transitions. [2022-04-28 04:13:53,287 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 118 edges. 118 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:13:53,287 INFO L276 IsEmpty]: Start isEmpty. Operand 97 states and 118 transitions. [2022-04-28 04:13:53,287 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 69 [2022-04-28 04:13:53,287 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:13:53,288 INFO L195 NwaCegarLoop]: trace histogram [3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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] [2022-04-28 04:13:53,304 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (10)] Forceful destruction successful, exit code 0 [2022-04-28 04:13:53,493 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable10,10 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:13:53,494 INFO L420 AbstractCegarLoop]: === Iteration 12 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:13:53,494 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:13:53,494 INFO L85 PathProgramCache]: Analyzing trace with hash -1247511922, now seen corresponding path program 5 times [2022-04-28 04:13:53,494 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:13:53,494 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [915838857] [2022-04-28 04:13:53,494 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:13:53,494 INFO L85 PathProgramCache]: Analyzing trace with hash -1247511922, now seen corresponding path program 6 times [2022-04-28 04:13:53,495 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:13:53,495 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [475287680] [2022-04-28 04:13:53,495 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:13:53,495 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:13:53,525 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:53,570 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:13:53,571 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:53,573 INFO L290 TraceCheckUtils]: 0: Hoare triple {9497#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {9452#true} is VALID [2022-04-28 04:13:53,573 INFO L290 TraceCheckUtils]: 1: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:53,574 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {9452#true} {9452#true} #160#return; {9452#true} is VALID [2022-04-28 04:13:53,574 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:13:53,574 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:53,576 INFO L290 TraceCheckUtils]: 0: Hoare triple {9452#true} ~cond := #in~cond; {9452#true} is VALID [2022-04-28 04:13:53,576 INFO L290 TraceCheckUtils]: 1: Hoare triple {9452#true} assume !(0 == ~cond); {9452#true} is VALID [2022-04-28 04:13:53,576 INFO L290 TraceCheckUtils]: 2: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:53,576 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9452#true} {9452#true} #142#return; {9452#true} is VALID [2022-04-28 04:13:53,576 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:13:53,577 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:53,579 INFO L290 TraceCheckUtils]: 0: Hoare triple {9452#true} ~x := #in~x; {9452#true} is VALID [2022-04-28 04:13:53,579 INFO L290 TraceCheckUtils]: 1: Hoare triple {9452#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {9452#true} is VALID [2022-04-28 04:13:53,579 INFO L290 TraceCheckUtils]: 2: Hoare triple {9452#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {9452#true} is VALID [2022-04-28 04:13:53,579 INFO L290 TraceCheckUtils]: 3: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:53,579 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {9452#true} {9452#true} #144#return; {9452#true} is VALID [2022-04-28 04:13:53,579 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:13:53,580 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:53,581 INFO L290 TraceCheckUtils]: 0: Hoare triple {9452#true} ~cond := #in~cond; {9452#true} is VALID [2022-04-28 04:13:53,581 INFO L290 TraceCheckUtils]: 1: Hoare triple {9452#true} assume !(0 == ~cond); {9452#true} is VALID [2022-04-28 04:13:53,581 INFO L290 TraceCheckUtils]: 2: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:53,581 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9452#true} {9452#true} #146#return; {9452#true} is VALID [2022-04-28 04:13:53,589 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:13:53,590 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:53,593 INFO L290 TraceCheckUtils]: 0: Hoare triple {9498#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {9452#true} is VALID [2022-04-28 04:13:53,593 INFO L290 TraceCheckUtils]: 1: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:53,593 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {9452#true} {9452#true} #148#return; {9452#true} is VALID [2022-04-28 04:13:53,594 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:13:53,594 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:53,596 INFO L290 TraceCheckUtils]: 0: Hoare triple {9498#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {9452#true} is VALID [2022-04-28 04:13:53,597 INFO L290 TraceCheckUtils]: 1: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:53,597 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {9452#true} {9452#true} #150#return; {9452#true} is VALID [2022-04-28 04:13:53,597 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 41 [2022-04-28 04:13:53,600 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:53,679 INFO L290 TraceCheckUtils]: 0: Hoare triple {9498#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {9499#(and (<= upsweep_~space~0 1) (= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:13:53,680 INFO L290 TraceCheckUtils]: 1: Hoare triple {9499#(and (<= upsweep_~space~0 1) (= |upsweep_#in~n| upsweep_~n))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {9500#(and (= |upsweep_#in~n| upsweep_~n) (<= (+ (* 2 upsweep_~space~0) upsweep_~left~0) 2))} is VALID [2022-04-28 04:13:53,681 INFO L290 TraceCheckUtils]: 2: Hoare triple {9500#(and (= |upsweep_#in~n| upsweep_~n) (<= (+ (* 2 upsweep_~space~0) upsweep_~left~0) 2))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {9501#(and (= |upsweep_#in~n| upsweep_~n) (<= upsweep_~left~0 2))} is VALID [2022-04-28 04:13:53,682 INFO L290 TraceCheckUtils]: 3: Hoare triple {9501#(and (= |upsweep_#in~n| upsweep_~n) (<= upsweep_~left~0 2))} assume !(~left~0 < ~n); {9502#(and (<= upsweep_~n 2) (= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:13:53,682 INFO L290 TraceCheckUtils]: 4: Hoare triple {9502#(and (<= upsweep_~n 2) (= |upsweep_#in~n| upsweep_~n))} ~space~0 := 2 * ~space~0; {9502#(and (<= upsweep_~n 2) (= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:13:53,683 INFO L290 TraceCheckUtils]: 5: Hoare triple {9502#(and (<= upsweep_~n 2) (= |upsweep_#in~n| upsweep_~n))} assume !(~space~0 < ~n); {9503#(<= |upsweep_#in~n| 2)} is VALID [2022-04-28 04:13:53,683 INFO L290 TraceCheckUtils]: 6: Hoare triple {9503#(<= |upsweep_#in~n| 2)} #res := ~space~0; {9503#(<= |upsweep_#in~n| 2)} is VALID [2022-04-28 04:13:53,683 INFO L290 TraceCheckUtils]: 7: Hoare triple {9503#(<= |upsweep_#in~n| 2)} assume true; {9503#(<= |upsweep_#in~n| 2)} is VALID [2022-04-28 04:13:53,684 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {9503#(<= |upsweep_#in~n| 2)} {9479#(<= 3 main_~n~0)} #152#return; {9453#false} is VALID [2022-04-28 04:13:53,685 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 52 [2022-04-28 04:13:53,689 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:53,692 INFO L290 TraceCheckUtils]: 0: Hoare triple {9498#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {9452#true} is VALID [2022-04-28 04:13:53,693 INFO L290 TraceCheckUtils]: 1: Hoare triple {9452#true} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {9452#true} is VALID [2022-04-28 04:13:53,693 INFO L290 TraceCheckUtils]: 2: Hoare triple {9452#true} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {9452#true} is VALID [2022-04-28 04:13:53,693 INFO L290 TraceCheckUtils]: 3: Hoare triple {9452#true} assume !(~right~1 < ~n); {9452#true} is VALID [2022-04-28 04:13:53,693 INFO L290 TraceCheckUtils]: 4: Hoare triple {9452#true} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {9452#true} is VALID [2022-04-28 04:13:53,693 INFO L290 TraceCheckUtils]: 5: Hoare triple {9452#true} assume !(~space > 0); {9452#true} is VALID [2022-04-28 04:13:53,693 INFO L290 TraceCheckUtils]: 6: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:53,693 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {9452#true} {9453#false} #154#return; {9453#false} is VALID [2022-04-28 04:13:53,694 INFO L272 TraceCheckUtils]: 0: Hoare triple {9452#true} call ULTIMATE.init(); {9497#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:13:53,694 INFO L290 TraceCheckUtils]: 1: Hoare triple {9497#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {9452#true} is VALID [2022-04-28 04:13:53,694 INFO L290 TraceCheckUtils]: 2: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:53,694 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9452#true} {9452#true} #160#return; {9452#true} is VALID [2022-04-28 04:13:53,694 INFO L272 TraceCheckUtils]: 4: Hoare triple {9452#true} call #t~ret20 := main(); {9452#true} is VALID [2022-04-28 04:13:53,694 INFO L290 TraceCheckUtils]: 5: Hoare triple {9452#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {9452#true} is VALID [2022-04-28 04:13:53,694 INFO L272 TraceCheckUtils]: 6: Hoare triple {9452#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {9452#true} is VALID [2022-04-28 04:13:53,694 INFO L290 TraceCheckUtils]: 7: Hoare triple {9452#true} ~cond := #in~cond; {9452#true} is VALID [2022-04-28 04:13:53,695 INFO L290 TraceCheckUtils]: 8: Hoare triple {9452#true} assume !(0 == ~cond); {9452#true} is VALID [2022-04-28 04:13:53,695 INFO L290 TraceCheckUtils]: 9: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:53,695 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9452#true} {9452#true} #142#return; {9452#true} is VALID [2022-04-28 04:13:53,695 INFO L272 TraceCheckUtils]: 11: Hoare triple {9452#true} call #t~ret14 := is_pow2(~n~0); {9452#true} is VALID [2022-04-28 04:13:53,695 INFO L290 TraceCheckUtils]: 12: Hoare triple {9452#true} ~x := #in~x; {9452#true} is VALID [2022-04-28 04:13:53,695 INFO L290 TraceCheckUtils]: 13: Hoare triple {9452#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {9452#true} is VALID [2022-04-28 04:13:53,695 INFO L290 TraceCheckUtils]: 14: Hoare triple {9452#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {9452#true} is VALID [2022-04-28 04:13:53,695 INFO L290 TraceCheckUtils]: 15: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:53,695 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {9452#true} {9452#true} #144#return; {9452#true} is VALID [2022-04-28 04:13:53,695 INFO L290 TraceCheckUtils]: 17: Hoare triple {9452#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {9452#true} is VALID [2022-04-28 04:13:53,696 INFO L272 TraceCheckUtils]: 18: Hoare triple {9452#true} call assume_abort_if_not(#t~ret14); {9452#true} is VALID [2022-04-28 04:13:53,696 INFO L290 TraceCheckUtils]: 19: Hoare triple {9452#true} ~cond := #in~cond; {9452#true} is VALID [2022-04-28 04:13:53,696 INFO L290 TraceCheckUtils]: 20: Hoare triple {9452#true} assume !(0 == ~cond); {9452#true} is VALID [2022-04-28 04:13:53,696 INFO L290 TraceCheckUtils]: 21: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:53,696 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {9452#true} {9452#true} #146#return; {9452#true} is VALID [2022-04-28 04:13:53,696 INFO L290 TraceCheckUtils]: 23: Hoare triple {9452#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {9452#true} is VALID [2022-04-28 04:13:53,700 INFO L272 TraceCheckUtils]: 24: Hoare triple {9452#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {9498#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:13:53,700 INFO L290 TraceCheckUtils]: 25: Hoare triple {9498#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {9452#true} is VALID [2022-04-28 04:13:53,700 INFO L290 TraceCheckUtils]: 26: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:53,700 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {9452#true} {9452#true} #148#return; {9452#true} is VALID [2022-04-28 04:13:53,700 INFO L290 TraceCheckUtils]: 28: Hoare triple {9452#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {9452#true} is VALID [2022-04-28 04:13:53,701 INFO L272 TraceCheckUtils]: 29: Hoare triple {9452#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {9498#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:13:53,701 INFO L290 TraceCheckUtils]: 30: Hoare triple {9498#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {9452#true} is VALID [2022-04-28 04:13:53,701 INFO L290 TraceCheckUtils]: 31: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:53,701 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {9452#true} {9452#true} #150#return; {9452#true} is VALID [2022-04-28 04:13:53,702 INFO L290 TraceCheckUtils]: 33: Hoare triple {9452#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {9476#(= main_~i~1 0)} is VALID [2022-04-28 04:13:53,702 INFO L290 TraceCheckUtils]: 34: Hoare triple {9476#(= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {9476#(= main_~i~1 0)} is VALID [2022-04-28 04:13:53,703 INFO L290 TraceCheckUtils]: 35: Hoare triple {9476#(= main_~i~1 0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {9477#(<= 1 main_~i~1)} is VALID [2022-04-28 04:13:53,703 INFO L290 TraceCheckUtils]: 36: Hoare triple {9477#(<= 1 main_~i~1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {9477#(<= 1 main_~i~1)} is VALID [2022-04-28 04:13:53,703 INFO L290 TraceCheckUtils]: 37: Hoare triple {9477#(<= 1 main_~i~1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {9478#(<= 2 main_~i~1)} is VALID [2022-04-28 04:13:53,704 INFO L290 TraceCheckUtils]: 38: Hoare triple {9478#(<= 2 main_~i~1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {9479#(<= 3 main_~n~0)} is VALID [2022-04-28 04:13:53,704 INFO L290 TraceCheckUtils]: 39: Hoare triple {9479#(<= 3 main_~n~0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {9479#(<= 3 main_~n~0)} is VALID [2022-04-28 04:13:53,705 INFO L290 TraceCheckUtils]: 40: Hoare triple {9479#(<= 3 main_~n~0)} assume !(~i~1 < ~n~0); {9479#(<= 3 main_~n~0)} is VALID [2022-04-28 04:13:53,705 INFO L272 TraceCheckUtils]: 41: Hoare triple {9479#(<= 3 main_~n~0)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {9498#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:13:53,706 INFO L290 TraceCheckUtils]: 42: Hoare triple {9498#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {9499#(and (<= upsweep_~space~0 1) (= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:13:53,706 INFO L290 TraceCheckUtils]: 43: Hoare triple {9499#(and (<= upsweep_~space~0 1) (= |upsweep_#in~n| upsweep_~n))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {9500#(and (= |upsweep_#in~n| upsweep_~n) (<= (+ (* 2 upsweep_~space~0) upsweep_~left~0) 2))} is VALID [2022-04-28 04:13:53,707 INFO L290 TraceCheckUtils]: 44: Hoare triple {9500#(and (= |upsweep_#in~n| upsweep_~n) (<= (+ (* 2 upsweep_~space~0) upsweep_~left~0) 2))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {9501#(and (= |upsweep_#in~n| upsweep_~n) (<= upsweep_~left~0 2))} is VALID [2022-04-28 04:13:53,707 INFO L290 TraceCheckUtils]: 45: Hoare triple {9501#(and (= |upsweep_#in~n| upsweep_~n) (<= upsweep_~left~0 2))} assume !(~left~0 < ~n); {9502#(and (<= upsweep_~n 2) (= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:13:53,708 INFO L290 TraceCheckUtils]: 46: Hoare triple {9502#(and (<= upsweep_~n 2) (= |upsweep_#in~n| upsweep_~n))} ~space~0 := 2 * ~space~0; {9502#(and (<= upsweep_~n 2) (= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:13:53,708 INFO L290 TraceCheckUtils]: 47: Hoare triple {9502#(and (<= upsweep_~n 2) (= |upsweep_#in~n| upsweep_~n))} assume !(~space~0 < ~n); {9503#(<= |upsweep_#in~n| 2)} is VALID [2022-04-28 04:13:53,708 INFO L290 TraceCheckUtils]: 48: Hoare triple {9503#(<= |upsweep_#in~n| 2)} #res := ~space~0; {9503#(<= |upsweep_#in~n| 2)} is VALID [2022-04-28 04:13:53,709 INFO L290 TraceCheckUtils]: 49: Hoare triple {9503#(<= |upsweep_#in~n| 2)} assume true; {9503#(<= |upsweep_#in~n| 2)} is VALID [2022-04-28 04:13:53,709 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {9503#(<= |upsweep_#in~n| 2)} {9479#(<= 3 main_~n~0)} #152#return; {9453#false} is VALID [2022-04-28 04:13:53,710 INFO L290 TraceCheckUtils]: 51: Hoare triple {9453#false} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {9453#false} is VALID [2022-04-28 04:13:53,710 INFO L272 TraceCheckUtils]: 52: Hoare triple {9453#false} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {9498#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:13:53,710 INFO L290 TraceCheckUtils]: 53: Hoare triple {9498#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {9452#true} is VALID [2022-04-28 04:13:53,710 INFO L290 TraceCheckUtils]: 54: Hoare triple {9452#true} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {9452#true} is VALID [2022-04-28 04:13:53,710 INFO L290 TraceCheckUtils]: 55: Hoare triple {9452#true} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {9452#true} is VALID [2022-04-28 04:13:53,710 INFO L290 TraceCheckUtils]: 56: Hoare triple {9452#true} assume !(~right~1 < ~n); {9452#true} is VALID [2022-04-28 04:13:53,710 INFO L290 TraceCheckUtils]: 57: Hoare triple {9452#true} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {9452#true} is VALID [2022-04-28 04:13:53,710 INFO L290 TraceCheckUtils]: 58: Hoare triple {9452#true} assume !(~space > 0); {9452#true} is VALID [2022-04-28 04:13:53,710 INFO L290 TraceCheckUtils]: 59: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:53,710 INFO L284 TraceCheckUtils]: 60: Hoare quadruple {9452#true} {9453#false} #154#return; {9453#false} is VALID [2022-04-28 04:13:53,710 INFO L272 TraceCheckUtils]: 61: Hoare triple {9453#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {9453#false} is VALID [2022-04-28 04:13:53,710 INFO L290 TraceCheckUtils]: 62: Hoare triple {9453#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {9453#false} is VALID [2022-04-28 04:13:53,710 INFO L290 TraceCheckUtils]: 63: Hoare triple {9453#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {9453#false} is VALID [2022-04-28 04:13:53,710 INFO L272 TraceCheckUtils]: 64: Hoare triple {9453#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {9453#false} is VALID [2022-04-28 04:13:53,711 INFO L290 TraceCheckUtils]: 65: Hoare triple {9453#false} ~cond := #in~cond; {9453#false} is VALID [2022-04-28 04:13:53,711 INFO L290 TraceCheckUtils]: 66: Hoare triple {9453#false} assume 0 == ~cond; {9453#false} is VALID [2022-04-28 04:13:53,711 INFO L290 TraceCheckUtils]: 67: Hoare triple {9453#false} assume !false; {9453#false} is VALID [2022-04-28 04:13:53,711 INFO L134 CoverageAnalysis]: Checked inductivity of 20 backedges. 1 proven. 10 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2022-04-28 04:13:53,711 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:13:53,711 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [475287680] [2022-04-28 04:13:53,711 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [475287680] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:13:53,711 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [438108602] [2022-04-28 04:13:53,711 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-28 04:13:53,712 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:13:53,712 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:13:53,712 INFO L229 MonitoredProcess]: Starting monitored process 11 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:13:53,714 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (11)] Waiting until timeout for monitored process [2022-04-28 04:13:53,899 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 3 check-sat command(s) [2022-04-28 04:13:53,900 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:13:53,901 INFO L263 TraceCheckSpWp]: Trace formula consists of 261 conjuncts, 38 conjunts are in the unsatisfiable core [2022-04-28 04:13:53,918 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:13:53,931 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:13:54,847 INFO L272 TraceCheckUtils]: 0: Hoare triple {9452#true} call ULTIMATE.init(); {9452#true} is VALID [2022-04-28 04:13:54,848 INFO L290 TraceCheckUtils]: 1: Hoare triple {9452#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {9452#true} is VALID [2022-04-28 04:13:54,848 INFO L290 TraceCheckUtils]: 2: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:54,848 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9452#true} {9452#true} #160#return; {9452#true} is VALID [2022-04-28 04:13:54,848 INFO L272 TraceCheckUtils]: 4: Hoare triple {9452#true} call #t~ret20 := main(); {9452#true} is VALID [2022-04-28 04:13:54,848 INFO L290 TraceCheckUtils]: 5: Hoare triple {9452#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {9452#true} is VALID [2022-04-28 04:13:54,848 INFO L272 TraceCheckUtils]: 6: Hoare triple {9452#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {9452#true} is VALID [2022-04-28 04:13:54,848 INFO L290 TraceCheckUtils]: 7: Hoare triple {9452#true} ~cond := #in~cond; {9452#true} is VALID [2022-04-28 04:13:54,848 INFO L290 TraceCheckUtils]: 8: Hoare triple {9452#true} assume !(0 == ~cond); {9452#true} is VALID [2022-04-28 04:13:54,848 INFO L290 TraceCheckUtils]: 9: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:54,848 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9452#true} {9452#true} #142#return; {9452#true} is VALID [2022-04-28 04:13:54,848 INFO L272 TraceCheckUtils]: 11: Hoare triple {9452#true} call #t~ret14 := is_pow2(~n~0); {9452#true} is VALID [2022-04-28 04:13:54,849 INFO L290 TraceCheckUtils]: 12: Hoare triple {9452#true} ~x := #in~x; {9543#(= |is_pow2_#in~x| is_pow2_~x)} is VALID [2022-04-28 04:13:54,849 INFO L290 TraceCheckUtils]: 13: Hoare triple {9543#(= |is_pow2_#in~x| is_pow2_~x)} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {9547#(and (or (not (< 1 (mod is_pow2_~x 4294967296))) (not (= (mod is_pow2_~x 2) 0))) (= |is_pow2_#in~x| is_pow2_~x))} is VALID [2022-04-28 04:13:54,850 INFO L290 TraceCheckUtils]: 14: Hoare triple {9547#(and (or (not (< 1 (mod is_pow2_~x 4294967296))) (not (= (mod is_pow2_~x 2) 0))) (= |is_pow2_#in~x| is_pow2_~x))} #res := (if 1 == ~x % 4294967296 then 1 else 0); {9551#(and (or (and (= |is_pow2_#res| 1) (= (mod |is_pow2_#in~x| 4294967296) 1)) (and (= |is_pow2_#res| 0) (not (= (mod |is_pow2_#in~x| 4294967296) 1)))) (or (not (< 1 (mod |is_pow2_#in~x| 4294967296))) (not (= (mod |is_pow2_#in~x| 2) 0))))} is VALID [2022-04-28 04:13:54,850 INFO L290 TraceCheckUtils]: 15: Hoare triple {9551#(and (or (and (= |is_pow2_#res| 1) (= (mod |is_pow2_#in~x| 4294967296) 1)) (and (= |is_pow2_#res| 0) (not (= (mod |is_pow2_#in~x| 4294967296) 1)))) (or (not (< 1 (mod |is_pow2_#in~x| 4294967296))) (not (= (mod |is_pow2_#in~x| 2) 0))))} assume true; {9551#(and (or (and (= |is_pow2_#res| 1) (= (mod |is_pow2_#in~x| 4294967296) 1)) (and (= |is_pow2_#res| 0) (not (= (mod |is_pow2_#in~x| 4294967296) 1)))) (or (not (< 1 (mod |is_pow2_#in~x| 4294967296))) (not (= (mod |is_pow2_#in~x| 2) 0))))} is VALID [2022-04-28 04:13:54,851 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {9551#(and (or (and (= |is_pow2_#res| 1) (= (mod |is_pow2_#in~x| 4294967296) 1)) (and (= |is_pow2_#res| 0) (not (= (mod |is_pow2_#in~x| 4294967296) 1)))) (or (not (< 1 (mod |is_pow2_#in~x| 4294967296))) (not (= (mod |is_pow2_#in~x| 2) 0))))} {9452#true} #144#return; {9558#(and (or (not (< 1 (mod main_~n~0 4294967296))) (not (= (mod main_~n~0 2) 0))) (or (and (= |main_#t~ret14| 0) (not (= (mod main_~n~0 4294967296) 1))) (and (= (mod main_~n~0 4294967296) 1) (= |main_#t~ret14| 1))))} is VALID [2022-04-28 04:13:54,852 INFO L290 TraceCheckUtils]: 17: Hoare triple {9558#(and (or (not (< 1 (mod main_~n~0 4294967296))) (not (= (mod main_~n~0 2) 0))) (or (and (= |main_#t~ret14| 0) (not (= (mod main_~n~0 4294967296) 1))) (and (= (mod main_~n~0 4294967296) 1) (= |main_#t~ret14| 1))))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {9558#(and (or (not (< 1 (mod main_~n~0 4294967296))) (not (= (mod main_~n~0 2) 0))) (or (and (= |main_#t~ret14| 0) (not (= (mod main_~n~0 4294967296) 1))) (and (= (mod main_~n~0 4294967296) 1) (= |main_#t~ret14| 1))))} is VALID [2022-04-28 04:13:54,852 INFO L272 TraceCheckUtils]: 18: Hoare triple {9558#(and (or (not (< 1 (mod main_~n~0 4294967296))) (not (= (mod main_~n~0 2) 0))) (or (and (= |main_#t~ret14| 0) (not (= (mod main_~n~0 4294967296) 1))) (and (= (mod main_~n~0 4294967296) 1) (= |main_#t~ret14| 1))))} call assume_abort_if_not(#t~ret14); {9452#true} is VALID [2022-04-28 04:13:54,852 INFO L290 TraceCheckUtils]: 19: Hoare triple {9452#true} ~cond := #in~cond; {9568#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-28 04:13:54,853 INFO L290 TraceCheckUtils]: 20: Hoare triple {9568#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {9572#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-28 04:13:54,853 INFO L290 TraceCheckUtils]: 21: Hoare triple {9572#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {9572#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-28 04:13:54,853 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {9572#(not (= |assume_abort_if_not_#in~cond| 0))} {9558#(and (or (not (< 1 (mod main_~n~0 4294967296))) (not (= (mod main_~n~0 2) 0))) (or (and (= |main_#t~ret14| 0) (not (= (mod main_~n~0 4294967296) 1))) (and (= (mod main_~n~0 4294967296) 1) (= |main_#t~ret14| 1))))} #146#return; {9579#(= (mod main_~n~0 4294967296) 1)} is VALID [2022-04-28 04:13:54,854 INFO L290 TraceCheckUtils]: 23: Hoare triple {9579#(= (mod main_~n~0 4294967296) 1)} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {9579#(= (mod main_~n~0 4294967296) 1)} is VALID [2022-04-28 04:13:54,854 INFO L272 TraceCheckUtils]: 24: Hoare triple {9579#(= (mod main_~n~0 4294967296) 1)} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {9452#true} is VALID [2022-04-28 04:13:54,854 INFO L290 TraceCheckUtils]: 25: Hoare triple {9452#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {9452#true} is VALID [2022-04-28 04:13:54,854 INFO L290 TraceCheckUtils]: 26: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:54,855 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {9452#true} {9579#(= (mod main_~n~0 4294967296) 1)} #148#return; {9579#(= (mod main_~n~0 4294967296) 1)} is VALID [2022-04-28 04:13:54,855 INFO L290 TraceCheckUtils]: 28: Hoare triple {9579#(= (mod main_~n~0 4294967296) 1)} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {9579#(= (mod main_~n~0 4294967296) 1)} is VALID [2022-04-28 04:13:54,855 INFO L272 TraceCheckUtils]: 29: Hoare triple {9579#(= (mod main_~n~0 4294967296) 1)} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {9452#true} is VALID [2022-04-28 04:13:54,855 INFO L290 TraceCheckUtils]: 30: Hoare triple {9452#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {9452#true} is VALID [2022-04-28 04:13:54,855 INFO L290 TraceCheckUtils]: 31: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:54,856 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {9452#true} {9579#(= (mod main_~n~0 4294967296) 1)} #150#return; {9579#(= (mod main_~n~0 4294967296) 1)} is VALID [2022-04-28 04:13:54,856 INFO L290 TraceCheckUtils]: 33: Hoare triple {9579#(= (mod main_~n~0 4294967296) 1)} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {9579#(= (mod main_~n~0 4294967296) 1)} is VALID [2022-04-28 04:13:54,856 INFO L290 TraceCheckUtils]: 34: Hoare triple {9579#(= (mod main_~n~0 4294967296) 1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {9579#(= (mod main_~n~0 4294967296) 1)} is VALID [2022-04-28 04:13:54,856 INFO L290 TraceCheckUtils]: 35: Hoare triple {9579#(= (mod main_~n~0 4294967296) 1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {9579#(= (mod main_~n~0 4294967296) 1)} is VALID [2022-04-28 04:13:54,857 INFO L290 TraceCheckUtils]: 36: Hoare triple {9579#(= (mod main_~n~0 4294967296) 1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {9579#(= (mod main_~n~0 4294967296) 1)} is VALID [2022-04-28 04:13:54,857 INFO L290 TraceCheckUtils]: 37: Hoare triple {9579#(= (mod main_~n~0 4294967296) 1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {9579#(= (mod main_~n~0 4294967296) 1)} is VALID [2022-04-28 04:13:54,857 INFO L290 TraceCheckUtils]: 38: Hoare triple {9579#(= (mod main_~n~0 4294967296) 1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {9579#(= (mod main_~n~0 4294967296) 1)} is VALID [2022-04-28 04:13:54,857 INFO L290 TraceCheckUtils]: 39: Hoare triple {9579#(= (mod main_~n~0 4294967296) 1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {9579#(= (mod main_~n~0 4294967296) 1)} is VALID [2022-04-28 04:13:54,858 INFO L290 TraceCheckUtils]: 40: Hoare triple {9579#(= (mod main_~n~0 4294967296) 1)} assume !(~i~1 < ~n~0); {9579#(= (mod main_~n~0 4294967296) 1)} is VALID [2022-04-28 04:13:54,858 INFO L272 TraceCheckUtils]: 41: Hoare triple {9579#(= (mod main_~n~0 4294967296) 1)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {9452#true} is VALID [2022-04-28 04:13:54,858 INFO L290 TraceCheckUtils]: 42: Hoare triple {9452#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {9640#(and (= |upsweep_#in~n| upsweep_~n) (= upsweep_~space~0 1))} is VALID [2022-04-28 04:13:54,859 INFO L290 TraceCheckUtils]: 43: Hoare triple {9640#(and (= |upsweep_#in~n| upsweep_~n) (= upsweep_~space~0 1))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {9644#(and (< upsweep_~space~0 upsweep_~n) (= |upsweep_#in~n| upsweep_~n) (= upsweep_~space~0 1))} is VALID [2022-04-28 04:13:54,859 INFO L290 TraceCheckUtils]: 44: Hoare triple {9644#(and (< upsweep_~space~0 upsweep_~n) (= |upsweep_#in~n| upsweep_~n) (= upsweep_~space~0 1))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {9644#(and (< upsweep_~space~0 upsweep_~n) (= |upsweep_#in~n| upsweep_~n) (= upsweep_~space~0 1))} is VALID [2022-04-28 04:13:54,859 INFO L290 TraceCheckUtils]: 45: Hoare triple {9644#(and (< upsweep_~space~0 upsweep_~n) (= |upsweep_#in~n| upsweep_~n) (= upsweep_~space~0 1))} assume !(~left~0 < ~n); {9644#(and (< upsweep_~space~0 upsweep_~n) (= |upsweep_#in~n| upsweep_~n) (= upsweep_~space~0 1))} is VALID [2022-04-28 04:13:54,860 INFO L290 TraceCheckUtils]: 46: Hoare triple {9644#(and (< upsweep_~space~0 upsweep_~n) (= |upsweep_#in~n| upsweep_~n) (= upsweep_~space~0 1))} ~space~0 := 2 * ~space~0; {9654#(and (< 1 upsweep_~n) (= 2 upsweep_~space~0) (= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:13:54,860 INFO L290 TraceCheckUtils]: 47: Hoare triple {9654#(and (< 1 upsweep_~n) (= 2 upsweep_~space~0) (= |upsweep_#in~n| upsweep_~n))} assume !(~space~0 < ~n); {9658#(and (< 1 |upsweep_#in~n|) (not (< upsweep_~space~0 |upsweep_#in~n|)) (= 2 upsweep_~space~0))} is VALID [2022-04-28 04:13:54,860 INFO L290 TraceCheckUtils]: 48: Hoare triple {9658#(and (< 1 |upsweep_#in~n|) (not (< upsweep_~space~0 |upsweep_#in~n|)) (= 2 upsweep_~space~0))} #res := ~space~0; {9662#(and (not (< 2 |upsweep_#in~n|)) (< 1 |upsweep_#in~n|) (= |upsweep_#res| 2))} is VALID [2022-04-28 04:13:54,861 INFO L290 TraceCheckUtils]: 49: Hoare triple {9662#(and (not (< 2 |upsweep_#in~n|)) (< 1 |upsweep_#in~n|) (= |upsweep_#res| 2))} assume true; {9662#(and (not (< 2 |upsweep_#in~n|)) (< 1 |upsweep_#in~n|) (= |upsweep_#res| 2))} is VALID [2022-04-28 04:13:54,862 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {9662#(and (not (< 2 |upsweep_#in~n|)) (< 1 |upsweep_#in~n|) (= |upsweep_#res| 2))} {9579#(= (mod main_~n~0 4294967296) 1)} #152#return; {9453#false} is VALID [2022-04-28 04:13:54,862 INFO L290 TraceCheckUtils]: 51: Hoare triple {9453#false} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {9453#false} is VALID [2022-04-28 04:13:54,862 INFO L272 TraceCheckUtils]: 52: Hoare triple {9453#false} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {9453#false} is VALID [2022-04-28 04:13:54,862 INFO L290 TraceCheckUtils]: 53: Hoare triple {9453#false} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {9453#false} is VALID [2022-04-28 04:13:54,862 INFO L290 TraceCheckUtils]: 54: Hoare triple {9453#false} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {9453#false} is VALID [2022-04-28 04:13:54,862 INFO L290 TraceCheckUtils]: 55: Hoare triple {9453#false} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {9453#false} is VALID [2022-04-28 04:13:54,862 INFO L290 TraceCheckUtils]: 56: Hoare triple {9453#false} assume !(~right~1 < ~n); {9453#false} is VALID [2022-04-28 04:13:54,862 INFO L290 TraceCheckUtils]: 57: Hoare triple {9453#false} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {9453#false} is VALID [2022-04-28 04:13:54,862 INFO L290 TraceCheckUtils]: 58: Hoare triple {9453#false} assume !(~space > 0); {9453#false} is VALID [2022-04-28 04:13:54,862 INFO L290 TraceCheckUtils]: 59: Hoare triple {9453#false} assume true; {9453#false} is VALID [2022-04-28 04:13:54,862 INFO L284 TraceCheckUtils]: 60: Hoare quadruple {9453#false} {9453#false} #154#return; {9453#false} is VALID [2022-04-28 04:13:54,863 INFO L272 TraceCheckUtils]: 61: Hoare triple {9453#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {9453#false} is VALID [2022-04-28 04:13:54,863 INFO L290 TraceCheckUtils]: 62: Hoare triple {9453#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {9453#false} is VALID [2022-04-28 04:13:54,863 INFO L290 TraceCheckUtils]: 63: Hoare triple {9453#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {9453#false} is VALID [2022-04-28 04:13:54,863 INFO L272 TraceCheckUtils]: 64: Hoare triple {9453#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {9453#false} is VALID [2022-04-28 04:13:54,863 INFO L290 TraceCheckUtils]: 65: Hoare triple {9453#false} ~cond := #in~cond; {9453#false} is VALID [2022-04-28 04:13:54,863 INFO L290 TraceCheckUtils]: 66: Hoare triple {9453#false} assume 0 == ~cond; {9453#false} is VALID [2022-04-28 04:13:54,863 INFO L290 TraceCheckUtils]: 67: Hoare triple {9453#false} assume !false; {9453#false} is VALID [2022-04-28 04:13:54,863 INFO L134 CoverageAnalysis]: Checked inductivity of 20 backedges. 3 proven. 1 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2022-04-28 04:13:54,863 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:13:56,410 INFO L290 TraceCheckUtils]: 67: Hoare triple {9453#false} assume !false; {9453#false} is VALID [2022-04-28 04:13:56,410 INFO L290 TraceCheckUtils]: 66: Hoare triple {9453#false} assume 0 == ~cond; {9453#false} is VALID [2022-04-28 04:13:56,411 INFO L290 TraceCheckUtils]: 65: Hoare triple {9453#false} ~cond := #in~cond; {9453#false} is VALID [2022-04-28 04:13:56,411 INFO L272 TraceCheckUtils]: 64: Hoare triple {9453#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {9453#false} is VALID [2022-04-28 04:13:56,411 INFO L290 TraceCheckUtils]: 63: Hoare triple {9732#(not (< check_~i~0 check_~n))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {9453#false} is VALID [2022-04-28 04:13:56,411 INFO L290 TraceCheckUtils]: 62: Hoare triple {9736#(<= |check_#in~n| 0)} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {9732#(not (< check_~i~0 check_~n))} is VALID [2022-04-28 04:13:56,412 INFO L272 TraceCheckUtils]: 61: Hoare triple {9740#(<= main_~n~0 0)} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {9736#(<= |check_#in~n| 0)} is VALID [2022-04-28 04:13:56,413 INFO L284 TraceCheckUtils]: 60: Hoare quadruple {9748#(< 0 (div |downsweep_#in~space| 2))} {9744#(or (<= main_~n~0 0) (<= (div main_~space~1 2) 0))} #154#return; {9740#(<= main_~n~0 0)} is VALID [2022-04-28 04:13:56,413 INFO L290 TraceCheckUtils]: 59: Hoare triple {9748#(< 0 (div |downsweep_#in~space| 2))} assume true; {9748#(< 0 (div |downsweep_#in~space| 2))} is VALID [2022-04-28 04:13:56,413 INFO L290 TraceCheckUtils]: 58: Hoare triple {9748#(< 0 (div |downsweep_#in~space| 2))} assume !(~space > 0); {9748#(< 0 (div |downsweep_#in~space| 2))} is VALID [2022-04-28 04:13:56,414 INFO L290 TraceCheckUtils]: 57: Hoare triple {9748#(< 0 (div |downsweep_#in~space| 2))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {9748#(< 0 (div |downsweep_#in~space| 2))} is VALID [2022-04-28 04:13:56,414 INFO L290 TraceCheckUtils]: 56: Hoare triple {9748#(< 0 (div |downsweep_#in~space| 2))} assume !(~right~1 < ~n); {9748#(< 0 (div |downsweep_#in~space| 2))} is VALID [2022-04-28 04:13:56,414 INFO L290 TraceCheckUtils]: 55: Hoare triple {9748#(< 0 (div |downsweep_#in~space| 2))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {9748#(< 0 (div |downsweep_#in~space| 2))} is VALID [2022-04-28 04:13:56,414 INFO L290 TraceCheckUtils]: 54: Hoare triple {9767#(or (< 0 (div |downsweep_#in~space| 2)) (not (< 0 downsweep_~space)))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {9748#(< 0 (div |downsweep_#in~space| 2))} is VALID [2022-04-28 04:13:56,415 INFO L290 TraceCheckUtils]: 53: Hoare triple {9452#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {9767#(or (< 0 (div |downsweep_#in~space| 2)) (not (< 0 downsweep_~space)))} is VALID [2022-04-28 04:13:56,416 INFO L272 TraceCheckUtils]: 52: Hoare triple {9744#(or (<= main_~n~0 0) (<= (div main_~space~1 2) 0))} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {9452#true} is VALID [2022-04-28 04:13:56,416 INFO L290 TraceCheckUtils]: 51: Hoare triple {9774#(or (<= (div |main_#t~ret19| 2) 0) (<= main_~n~0 0))} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {9744#(or (<= main_~n~0 0) (<= (div main_~space~1 2) 0))} is VALID [2022-04-28 04:13:56,417 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {9782#(or (<= |upsweep_#in~n| 0) (and (not (< 2 |upsweep_#in~n|)) (not (<= |upsweep_#in~n| 1))) (<= (div |upsweep_#res| 2) 0))} {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} #152#return; {9774#(or (<= (div |main_#t~ret19| 2) 0) (<= main_~n~0 0))} is VALID [2022-04-28 04:13:56,417 INFO L290 TraceCheckUtils]: 49: Hoare triple {9782#(or (<= |upsweep_#in~n| 0) (and (not (< 2 |upsweep_#in~n|)) (not (<= |upsweep_#in~n| 1))) (<= (div |upsweep_#res| 2) 0))} assume true; {9782#(or (<= |upsweep_#in~n| 0) (and (not (< 2 |upsweep_#in~n|)) (not (<= |upsweep_#in~n| 1))) (<= (div |upsweep_#res| 2) 0))} is VALID [2022-04-28 04:13:56,418 INFO L290 TraceCheckUtils]: 48: Hoare triple {9789#(or (<= |upsweep_#in~n| 0) (and (not (< 2 |upsweep_#in~n|)) (not (<= |upsweep_#in~n| 1))) (<= (div upsweep_~space~0 2) 0))} #res := ~space~0; {9782#(or (<= |upsweep_#in~n| 0) (and (not (< 2 |upsweep_#in~n|)) (not (<= |upsweep_#in~n| 1))) (<= (div |upsweep_#res| 2) 0))} is VALID [2022-04-28 04:13:56,418 INFO L290 TraceCheckUtils]: 47: Hoare triple {9793#(or (<= |upsweep_#in~n| 0) (and (not (< 2 |upsweep_#in~n|)) (not (<= |upsweep_#in~n| 1))) (< upsweep_~space~0 upsweep_~n) (<= (div upsweep_~space~0 2) 0))} assume !(~space~0 < ~n); {9789#(or (<= |upsweep_#in~n| 0) (and (not (< 2 |upsweep_#in~n|)) (not (<= |upsweep_#in~n| 1))) (<= (div upsweep_~space~0 2) 0))} is VALID [2022-04-28 04:13:56,419 INFO L290 TraceCheckUtils]: 46: Hoare triple {9797#(or (<= |upsweep_#in~n| 0) (and (not (< 2 |upsweep_#in~n|)) (not (<= |upsweep_#in~n| 1))) (<= upsweep_~space~0 0) (< (* 2 upsweep_~space~0) upsweep_~n))} ~space~0 := 2 * ~space~0; {9793#(or (<= |upsweep_#in~n| 0) (and (not (< 2 |upsweep_#in~n|)) (not (<= |upsweep_#in~n| 1))) (< upsweep_~space~0 upsweep_~n) (<= (div upsweep_~space~0 2) 0))} is VALID [2022-04-28 04:13:56,420 INFO L290 TraceCheckUtils]: 45: Hoare triple {9797#(or (<= |upsweep_#in~n| 0) (and (not (< 2 |upsweep_#in~n|)) (not (<= |upsweep_#in~n| 1))) (<= upsweep_~space~0 0) (< (* 2 upsweep_~space~0) upsweep_~n))} assume !(~left~0 < ~n); {9797#(or (<= |upsweep_#in~n| 0) (and (not (< 2 |upsweep_#in~n|)) (not (<= |upsweep_#in~n| 1))) (<= upsweep_~space~0 0) (< (* 2 upsweep_~space~0) upsweep_~n))} is VALID [2022-04-28 04:13:56,420 INFO L290 TraceCheckUtils]: 44: Hoare triple {9797#(or (<= |upsweep_#in~n| 0) (and (not (< 2 |upsweep_#in~n|)) (not (<= |upsweep_#in~n| 1))) (<= upsweep_~space~0 0) (< (* 2 upsweep_~space~0) upsweep_~n))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {9797#(or (<= |upsweep_#in~n| 0) (and (not (< 2 |upsweep_#in~n|)) (not (<= |upsweep_#in~n| 1))) (<= upsweep_~space~0 0) (< (* 2 upsweep_~space~0) upsweep_~n))} is VALID [2022-04-28 04:13:56,421 INFO L290 TraceCheckUtils]: 43: Hoare triple {9807#(or (<= |upsweep_#in~n| 0) (and (not (< 2 |upsweep_#in~n|)) (not (<= |upsweep_#in~n| 1))) (< (* 2 upsweep_~space~0) upsweep_~n) (<= upsweep_~n upsweep_~space~0))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {9797#(or (<= |upsweep_#in~n| 0) (and (not (< 2 |upsweep_#in~n|)) (not (<= |upsweep_#in~n| 1))) (<= upsweep_~space~0 0) (< (* 2 upsweep_~space~0) upsweep_~n))} is VALID [2022-04-28 04:13:56,421 INFO L290 TraceCheckUtils]: 42: Hoare triple {9452#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {9807#(or (<= |upsweep_#in~n| 0) (and (not (< 2 |upsweep_#in~n|)) (not (<= |upsweep_#in~n| 1))) (< (* 2 upsweep_~space~0) upsweep_~n) (<= upsweep_~n upsweep_~space~0))} is VALID [2022-04-28 04:13:56,422 INFO L272 TraceCheckUtils]: 41: Hoare triple {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {9452#true} is VALID [2022-04-28 04:13:56,422 INFO L290 TraceCheckUtils]: 40: Hoare triple {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} assume !(~i~1 < ~n~0); {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:13:56,422 INFO L290 TraceCheckUtils]: 39: Hoare triple {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:13:56,422 INFO L290 TraceCheckUtils]: 38: Hoare triple {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:13:56,423 INFO L290 TraceCheckUtils]: 37: Hoare triple {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:13:56,423 INFO L290 TraceCheckUtils]: 36: Hoare triple {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:13:56,423 INFO L290 TraceCheckUtils]: 35: Hoare triple {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:13:56,423 INFO L290 TraceCheckUtils]: 34: Hoare triple {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:13:56,424 INFO L290 TraceCheckUtils]: 33: Hoare triple {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:13:56,424 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {9452#true} {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} #150#return; {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:13:56,424 INFO L290 TraceCheckUtils]: 31: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:56,424 INFO L290 TraceCheckUtils]: 30: Hoare triple {9452#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {9452#true} is VALID [2022-04-28 04:13:56,424 INFO L272 TraceCheckUtils]: 29: Hoare triple {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {9452#true} is VALID [2022-04-28 04:13:56,425 INFO L290 TraceCheckUtils]: 28: Hoare triple {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:13:56,425 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {9452#true} {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} #148#return; {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:13:56,425 INFO L290 TraceCheckUtils]: 26: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:56,425 INFO L290 TraceCheckUtils]: 25: Hoare triple {9452#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {9452#true} is VALID [2022-04-28 04:13:56,426 INFO L272 TraceCheckUtils]: 24: Hoare triple {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {9452#true} is VALID [2022-04-28 04:13:56,426 INFO L290 TraceCheckUtils]: 23: Hoare triple {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:13:56,426 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {9572#(not (= |assume_abort_if_not_#in~cond| 0))} {9868#(or (= |main_#t~ret14| 0) (< 2 main_~n~0) (<= main_~n~0 1))} #146#return; {9778#(or (< 2 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:13:56,427 INFO L290 TraceCheckUtils]: 21: Hoare triple {9572#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {9572#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-28 04:13:56,427 INFO L290 TraceCheckUtils]: 20: Hoare triple {9878#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} assume !(0 == ~cond); {9572#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-28 04:13:56,427 INFO L290 TraceCheckUtils]: 19: Hoare triple {9452#true} ~cond := #in~cond; {9878#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} is VALID [2022-04-28 04:13:56,427 INFO L272 TraceCheckUtils]: 18: Hoare triple {9868#(or (= |main_#t~ret14| 0) (< 2 main_~n~0) (<= main_~n~0 1))} call assume_abort_if_not(#t~ret14); {9452#true} is VALID [2022-04-28 04:13:56,428 INFO L290 TraceCheckUtils]: 17: Hoare triple {9868#(or (= |main_#t~ret14| 0) (< 2 main_~n~0) (<= main_~n~0 1))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {9868#(or (= |main_#t~ret14| 0) (< 2 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:13:56,428 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {9891#(or (< 2 |is_pow2_#in~x|) (<= |is_pow2_#in~x| 1) (= |is_pow2_#res| 0))} {9452#true} #144#return; {9868#(or (= |main_#t~ret14| 0) (< 2 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:13:56,429 INFO L290 TraceCheckUtils]: 15: Hoare triple {9891#(or (< 2 |is_pow2_#in~x|) (<= |is_pow2_#in~x| 1) (= |is_pow2_#res| 0))} assume true; {9891#(or (< 2 |is_pow2_#in~x|) (<= |is_pow2_#in~x| 1) (= |is_pow2_#res| 0))} is VALID [2022-04-28 04:13:56,429 INFO L290 TraceCheckUtils]: 14: Hoare triple {9898#(or (< 2 |is_pow2_#in~x|) (<= |is_pow2_#in~x| 1) (not (= (mod is_pow2_~x 4294967296) 1)))} #res := (if 1 == ~x % 4294967296 then 1 else 0); {9891#(or (< 2 |is_pow2_#in~x|) (<= |is_pow2_#in~x| 1) (= |is_pow2_#res| 0))} is VALID [2022-04-28 04:13:56,431 INFO L290 TraceCheckUtils]: 13: Hoare triple {9898#(or (< 2 |is_pow2_#in~x|) (<= |is_pow2_#in~x| 1) (not (= (mod is_pow2_~x 4294967296) 1)))} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {9898#(or (< 2 |is_pow2_#in~x|) (<= |is_pow2_#in~x| 1) (not (= (mod is_pow2_~x 4294967296) 1)))} is VALID [2022-04-28 04:13:56,431 INFO L290 TraceCheckUtils]: 12: Hoare triple {9452#true} ~x := #in~x; {9898#(or (< 2 |is_pow2_#in~x|) (<= |is_pow2_#in~x| 1) (not (= (mod is_pow2_~x 4294967296) 1)))} is VALID [2022-04-28 04:13:56,431 INFO L272 TraceCheckUtils]: 11: Hoare triple {9452#true} call #t~ret14 := is_pow2(~n~0); {9452#true} is VALID [2022-04-28 04:13:56,431 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9452#true} {9452#true} #142#return; {9452#true} is VALID [2022-04-28 04:13:56,432 INFO L290 TraceCheckUtils]: 9: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:56,432 INFO L290 TraceCheckUtils]: 8: Hoare triple {9452#true} assume !(0 == ~cond); {9452#true} is VALID [2022-04-28 04:13:56,432 INFO L290 TraceCheckUtils]: 7: Hoare triple {9452#true} ~cond := #in~cond; {9452#true} is VALID [2022-04-28 04:13:56,432 INFO L272 TraceCheckUtils]: 6: Hoare triple {9452#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {9452#true} is VALID [2022-04-28 04:13:56,432 INFO L290 TraceCheckUtils]: 5: Hoare triple {9452#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {9452#true} is VALID [2022-04-28 04:13:56,432 INFO L272 TraceCheckUtils]: 4: Hoare triple {9452#true} call #t~ret20 := main(); {9452#true} is VALID [2022-04-28 04:13:56,432 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9452#true} {9452#true} #160#return; {9452#true} is VALID [2022-04-28 04:13:56,432 INFO L290 TraceCheckUtils]: 2: Hoare triple {9452#true} assume true; {9452#true} is VALID [2022-04-28 04:13:56,432 INFO L290 TraceCheckUtils]: 1: Hoare triple {9452#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {9452#true} is VALID [2022-04-28 04:13:56,432 INFO L272 TraceCheckUtils]: 0: Hoare triple {9452#true} call ULTIMATE.init(); {9452#true} is VALID [2022-04-28 04:13:56,432 INFO L134 CoverageAnalysis]: Checked inductivity of 20 backedges. 4 proven. 1 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-04-28 04:13:56,433 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [438108602] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:13:56,433 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-28 04:13:56,433 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 14, 20] total 42 [2022-04-28 04:13:56,433 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:13:56,433 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [915838857] [2022-04-28 04:13:56,433 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [915838857] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:13:56,433 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:13:56,433 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-28 04:13:56,433 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2095400101] [2022-04-28 04:13:56,433 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:13:56,434 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 13 states have (on average 3.3846153846153846) internal successors, (44), 11 states have internal predecessors, (44), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) Word has length 68 [2022-04-28 04:13:56,434 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:13:56,434 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 13 states, 13 states have (on average 3.3846153846153846) internal successors, (44), 11 states have internal predecessors, (44), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:13:56,473 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:13:56,473 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-04-28 04:13:56,474 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:13:56,474 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-04-28 04:13:56,474 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=133, Invalid=1589, Unknown=0, NotChecked=0, Total=1722 [2022-04-28 04:13:56,474 INFO L87 Difference]: Start difference. First operand 97 states and 118 transitions. Second operand has 13 states, 13 states have (on average 3.3846153846153846) internal successors, (44), 11 states have internal predecessors, (44), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:14:00,798 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:14:05,066 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:14:07,229 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.16s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:14:11,517 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:14:13,271 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:14:13,271 INFO L93 Difference]: Finished difference Result 166 states and 205 transitions. [2022-04-28 04:14:13,271 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 18 states. [2022-04-28 04:14:13,271 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 13 states have (on average 3.3846153846153846) internal successors, (44), 11 states have internal predecessors, (44), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) Word has length 68 [2022-04-28 04:14:13,271 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:14:13,272 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 13 states have (on average 3.3846153846153846) internal successors, (44), 11 states have internal predecessors, (44), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:14:13,273 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 125 transitions. [2022-04-28 04:14:13,273 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 13 states have (on average 3.3846153846153846) internal successors, (44), 11 states have internal predecessors, (44), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:14:13,274 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 125 transitions. [2022-04-28 04:14:13,274 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 18 states and 125 transitions. [2022-04-28 04:14:13,382 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 125 edges. 125 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:14:13,383 INFO L225 Difference]: With dead ends: 166 [2022-04-28 04:14:13,383 INFO L226 Difference]: Without dead ends: 116 [2022-04-28 04:14:13,384 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 176 GetRequests, 122 SyntacticMatches, 0 SemanticMatches, 54 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 399 ImplicationChecksByTransitivity, 1.3s TimeCoverageRelationStatistics Valid=258, Invalid=2822, Unknown=0, NotChecked=0, Total=3080 [2022-04-28 04:14:13,385 INFO L413 NwaCegarLoop]: 48 mSDtfsCounter, 97 mSDsluCounter, 14 mSDsCounter, 0 mSdLazyCounter, 589 mSolverCounterSat, 75 mSolverCounterUnsat, 4 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 8.6s Time, 0 mProtectedPredicate, 0 mProtectedAction, 98 SdHoareTripleChecker+Valid, 62 SdHoareTripleChecker+Invalid, 668 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 75 IncrementalHoareTripleChecker+Valid, 589 IncrementalHoareTripleChecker+Invalid, 4 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 9.0s IncrementalHoareTripleChecker+Time [2022-04-28 04:14:13,385 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [98 Valid, 62 Invalid, 668 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [75 Valid, 589 Invalid, 4 Unknown, 0 Unchecked, 9.0s Time] [2022-04-28 04:14:13,385 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 116 states. [2022-04-28 04:14:13,679 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 116 to 106. [2022-04-28 04:14:13,679 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:14:13,680 INFO L82 GeneralOperation]: Start isEquivalent. First operand 116 states. Second operand has 106 states, 78 states have (on average 1.2435897435897436) internal successors, (97), 83 states have internal predecessors, (97), 15 states have call successors, (15), 11 states have call predecessors, (15), 12 states have return successors, (18), 11 states have call predecessors, (18), 12 states have call successors, (18) [2022-04-28 04:14:13,680 INFO L74 IsIncluded]: Start isIncluded. First operand 116 states. Second operand has 106 states, 78 states have (on average 1.2435897435897436) internal successors, (97), 83 states have internal predecessors, (97), 15 states have call successors, (15), 11 states have call predecessors, (15), 12 states have return successors, (18), 11 states have call predecessors, (18), 12 states have call successors, (18) [2022-04-28 04:14:13,680 INFO L87 Difference]: Start difference. First operand 116 states. Second operand has 106 states, 78 states have (on average 1.2435897435897436) internal successors, (97), 83 states have internal predecessors, (97), 15 states have call successors, (15), 11 states have call predecessors, (15), 12 states have return successors, (18), 11 states have call predecessors, (18), 12 states have call successors, (18) [2022-04-28 04:14:13,682 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:14:13,682 INFO L93 Difference]: Finished difference Result 116 states and 143 transitions. [2022-04-28 04:14:13,682 INFO L276 IsEmpty]: Start isEmpty. Operand 116 states and 143 transitions. [2022-04-28 04:14:13,682 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:14:13,683 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:14:13,683 INFO L74 IsIncluded]: Start isIncluded. First operand has 106 states, 78 states have (on average 1.2435897435897436) internal successors, (97), 83 states have internal predecessors, (97), 15 states have call successors, (15), 11 states have call predecessors, (15), 12 states have return successors, (18), 11 states have call predecessors, (18), 12 states have call successors, (18) Second operand 116 states. [2022-04-28 04:14:13,683 INFO L87 Difference]: Start difference. First operand has 106 states, 78 states have (on average 1.2435897435897436) internal successors, (97), 83 states have internal predecessors, (97), 15 states have call successors, (15), 11 states have call predecessors, (15), 12 states have return successors, (18), 11 states have call predecessors, (18), 12 states have call successors, (18) Second operand 116 states. [2022-04-28 04:14:13,685 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:14:13,685 INFO L93 Difference]: Finished difference Result 116 states and 143 transitions. [2022-04-28 04:14:13,685 INFO L276 IsEmpty]: Start isEmpty. Operand 116 states and 143 transitions. [2022-04-28 04:14:13,685 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:14:13,686 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:14:13,686 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:14:13,686 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:14:13,686 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 106 states, 78 states have (on average 1.2435897435897436) internal successors, (97), 83 states have internal predecessors, (97), 15 states have call successors, (15), 11 states have call predecessors, (15), 12 states have return successors, (18), 11 states have call predecessors, (18), 12 states have call successors, (18) [2022-04-28 04:14:13,687 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 106 states to 106 states and 130 transitions. [2022-04-28 04:14:13,688 INFO L78 Accepts]: Start accepts. Automaton has 106 states and 130 transitions. Word has length 68 [2022-04-28 04:14:13,688 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:14:13,688 INFO L495 AbstractCegarLoop]: Abstraction has 106 states and 130 transitions. [2022-04-28 04:14:13,688 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 13 states, 13 states have (on average 3.3846153846153846) internal successors, (44), 11 states have internal predecessors, (44), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:14:13,688 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 106 states and 130 transitions. [2022-04-28 04:14:13,971 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 130 edges. 130 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:14:13,971 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 130 transitions. [2022-04-28 04:14:13,971 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 71 [2022-04-28 04:14:13,972 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:14:13,972 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1] [2022-04-28 04:14:13,988 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (11)] Forceful destruction successful, exit code 0 [2022-04-28 04:14:14,172 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 11 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable11 [2022-04-28 04:14:14,172 INFO L420 AbstractCegarLoop]: === Iteration 13 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:14:14,172 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:14:14,172 INFO L85 PathProgramCache]: Analyzing trace with hash 617921138, now seen corresponding path program 1 times [2022-04-28 04:14:14,173 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:14:14,173 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [2129565412] [2022-04-28 04:14:14,173 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:14:14,173 INFO L85 PathProgramCache]: Analyzing trace with hash 617921138, now seen corresponding path program 2 times [2022-04-28 04:14:14,173 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:14:14,173 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [507424411] [2022-04-28 04:14:14,173 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:14:14,173 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:14:14,188 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:14,242 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:14:14,243 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:14,245 INFO L290 TraceCheckUtils]: 0: Hoare triple {10791#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {10745#true} is VALID [2022-04-28 04:14:14,245 INFO L290 TraceCheckUtils]: 1: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:14,245 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {10745#true} {10745#true} #160#return; {10745#true} is VALID [2022-04-28 04:14:14,245 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:14:14,246 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:14,249 INFO L290 TraceCheckUtils]: 0: Hoare triple {10745#true} ~cond := #in~cond; {10745#true} is VALID [2022-04-28 04:14:14,249 INFO L290 TraceCheckUtils]: 1: Hoare triple {10745#true} assume !(0 == ~cond); {10745#true} is VALID [2022-04-28 04:14:14,249 INFO L290 TraceCheckUtils]: 2: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:14,249 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10745#true} {10745#true} #142#return; {10745#true} is VALID [2022-04-28 04:14:14,249 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:14:14,250 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:14,252 INFO L290 TraceCheckUtils]: 0: Hoare triple {10745#true} ~x := #in~x; {10745#true} is VALID [2022-04-28 04:14:14,252 INFO L290 TraceCheckUtils]: 1: Hoare triple {10745#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {10745#true} is VALID [2022-04-28 04:14:14,252 INFO L290 TraceCheckUtils]: 2: Hoare triple {10745#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {10745#true} is VALID [2022-04-28 04:14:14,252 INFO L290 TraceCheckUtils]: 3: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:14,252 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {10745#true} {10745#true} #144#return; {10745#true} is VALID [2022-04-28 04:14:14,252 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:14:14,252 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:14,254 INFO L290 TraceCheckUtils]: 0: Hoare triple {10745#true} ~cond := #in~cond; {10745#true} is VALID [2022-04-28 04:14:14,254 INFO L290 TraceCheckUtils]: 1: Hoare triple {10745#true} assume !(0 == ~cond); {10745#true} is VALID [2022-04-28 04:14:14,254 INFO L290 TraceCheckUtils]: 2: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:14,254 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10745#true} {10745#true} #146#return; {10745#true} is VALID [2022-04-28 04:14:14,262 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:14:14,263 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:14,265 INFO L290 TraceCheckUtils]: 0: Hoare triple {10792#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {10745#true} is VALID [2022-04-28 04:14:14,265 INFO L290 TraceCheckUtils]: 1: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:14,265 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {10745#true} {10745#true} #148#return; {10745#true} is VALID [2022-04-28 04:14:14,265 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:14:14,265 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:14,267 INFO L290 TraceCheckUtils]: 0: Hoare triple {10792#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {10745#true} is VALID [2022-04-28 04:14:14,267 INFO L290 TraceCheckUtils]: 1: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:14,267 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {10745#true} {10745#true} #150#return; {10745#true} is VALID [2022-04-28 04:14:14,267 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 39 [2022-04-28 04:14:14,270 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:14,305 INFO L290 TraceCheckUtils]: 0: Hoare triple {10792#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {10793#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:14:14,305 INFO L290 TraceCheckUtils]: 1: Hoare triple {10793#(<= 1 upsweep_~space~0)} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {10793#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:14:14,306 INFO L290 TraceCheckUtils]: 2: Hoare triple {10793#(<= 1 upsweep_~space~0)} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {10793#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:14:14,306 INFO L290 TraceCheckUtils]: 3: Hoare triple {10793#(<= 1 upsweep_~space~0)} assume !(~left~0 < ~n); {10793#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:14:14,306 INFO L290 TraceCheckUtils]: 4: Hoare triple {10793#(<= 1 upsweep_~space~0)} ~space~0 := 2 * ~space~0; {10794#(<= 2 upsweep_~space~0)} is VALID [2022-04-28 04:14:14,307 INFO L290 TraceCheckUtils]: 5: Hoare triple {10794#(<= 2 upsweep_~space~0)} assume !(~space~0 < ~n); {10794#(<= 2 upsweep_~space~0)} is VALID [2022-04-28 04:14:14,307 INFO L290 TraceCheckUtils]: 6: Hoare triple {10794#(<= 2 upsweep_~space~0)} #res := ~space~0; {10795#(<= 2 |upsweep_#res|)} is VALID [2022-04-28 04:14:14,307 INFO L290 TraceCheckUtils]: 7: Hoare triple {10795#(<= 2 |upsweep_#res|)} assume true; {10795#(<= 2 |upsweep_#res|)} is VALID [2022-04-28 04:14:14,308 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {10795#(<= 2 |upsweep_#res|)} {10771#(<= 2 main_~n~0)} #152#return; {10781#(<= 2 |main_#t~ret19|)} is VALID [2022-04-28 04:14:14,308 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 50 [2022-04-28 04:14:14,313 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:14,387 INFO L290 TraceCheckUtils]: 0: Hoare triple {10792#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {10796#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} is VALID [2022-04-28 04:14:14,387 INFO L290 TraceCheckUtils]: 1: Hoare triple {10796#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} assume !(~space > 0); {10797#(<= |downsweep_#in~space| 1)} is VALID [2022-04-28 04:14:14,388 INFO L290 TraceCheckUtils]: 2: Hoare triple {10797#(<= |downsweep_#in~space| 1)} assume true; {10797#(<= |downsweep_#in~space| 1)} is VALID [2022-04-28 04:14:14,388 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10797#(<= |downsweep_#in~space| 1)} {10782#(<= 2 main_~space~1)} #154#return; {10746#false} is VALID [2022-04-28 04:14:14,389 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 58 [2022-04-28 04:14:14,389 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:14,391 INFO L290 TraceCheckUtils]: 0: Hoare triple {10745#true} ~cond := #in~cond; {10745#true} is VALID [2022-04-28 04:14:14,391 INFO L290 TraceCheckUtils]: 1: Hoare triple {10745#true} assume !(0 == ~cond); {10745#true} is VALID [2022-04-28 04:14:14,391 INFO L290 TraceCheckUtils]: 2: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:14,391 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10745#true} {10746#false} #158#return; {10746#false} is VALID [2022-04-28 04:14:14,392 INFO L272 TraceCheckUtils]: 0: Hoare triple {10745#true} call ULTIMATE.init(); {10791#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:14:14,392 INFO L290 TraceCheckUtils]: 1: Hoare triple {10791#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {10745#true} is VALID [2022-04-28 04:14:14,392 INFO L290 TraceCheckUtils]: 2: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:14,392 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10745#true} {10745#true} #160#return; {10745#true} is VALID [2022-04-28 04:14:14,392 INFO L272 TraceCheckUtils]: 4: Hoare triple {10745#true} call #t~ret20 := main(); {10745#true} is VALID [2022-04-28 04:14:14,392 INFO L290 TraceCheckUtils]: 5: Hoare triple {10745#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {10745#true} is VALID [2022-04-28 04:14:14,392 INFO L272 TraceCheckUtils]: 6: Hoare triple {10745#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {10745#true} is VALID [2022-04-28 04:14:14,392 INFO L290 TraceCheckUtils]: 7: Hoare triple {10745#true} ~cond := #in~cond; {10745#true} is VALID [2022-04-28 04:14:14,392 INFO L290 TraceCheckUtils]: 8: Hoare triple {10745#true} assume !(0 == ~cond); {10745#true} is VALID [2022-04-28 04:14:14,392 INFO L290 TraceCheckUtils]: 9: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:14,392 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {10745#true} {10745#true} #142#return; {10745#true} is VALID [2022-04-28 04:14:14,392 INFO L272 TraceCheckUtils]: 11: Hoare triple {10745#true} call #t~ret14 := is_pow2(~n~0); {10745#true} is VALID [2022-04-28 04:14:14,392 INFO L290 TraceCheckUtils]: 12: Hoare triple {10745#true} ~x := #in~x; {10745#true} is VALID [2022-04-28 04:14:14,393 INFO L290 TraceCheckUtils]: 13: Hoare triple {10745#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {10745#true} is VALID [2022-04-28 04:14:14,393 INFO L290 TraceCheckUtils]: 14: Hoare triple {10745#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {10745#true} is VALID [2022-04-28 04:14:14,393 INFO L290 TraceCheckUtils]: 15: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:14,393 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {10745#true} {10745#true} #144#return; {10745#true} is VALID [2022-04-28 04:14:14,393 INFO L290 TraceCheckUtils]: 17: Hoare triple {10745#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {10745#true} is VALID [2022-04-28 04:14:14,393 INFO L272 TraceCheckUtils]: 18: Hoare triple {10745#true} call assume_abort_if_not(#t~ret14); {10745#true} is VALID [2022-04-28 04:14:14,393 INFO L290 TraceCheckUtils]: 19: Hoare triple {10745#true} ~cond := #in~cond; {10745#true} is VALID [2022-04-28 04:14:14,393 INFO L290 TraceCheckUtils]: 20: Hoare triple {10745#true} assume !(0 == ~cond); {10745#true} is VALID [2022-04-28 04:14:14,393 INFO L290 TraceCheckUtils]: 21: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:14,393 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {10745#true} {10745#true} #146#return; {10745#true} is VALID [2022-04-28 04:14:14,393 INFO L290 TraceCheckUtils]: 23: Hoare triple {10745#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {10745#true} is VALID [2022-04-28 04:14:14,401 INFO L272 TraceCheckUtils]: 24: Hoare triple {10745#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {10792#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:14:14,402 INFO L290 TraceCheckUtils]: 25: Hoare triple {10792#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {10745#true} is VALID [2022-04-28 04:14:14,402 INFO L290 TraceCheckUtils]: 26: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:14,402 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {10745#true} {10745#true} #148#return; {10745#true} is VALID [2022-04-28 04:14:14,402 INFO L290 TraceCheckUtils]: 28: Hoare triple {10745#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {10745#true} is VALID [2022-04-28 04:14:14,402 INFO L272 TraceCheckUtils]: 29: Hoare triple {10745#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {10792#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:14:14,402 INFO L290 TraceCheckUtils]: 30: Hoare triple {10792#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {10745#true} is VALID [2022-04-28 04:14:14,402 INFO L290 TraceCheckUtils]: 31: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:14,403 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {10745#true} {10745#true} #150#return; {10745#true} is VALID [2022-04-28 04:14:14,403 INFO L290 TraceCheckUtils]: 33: Hoare triple {10745#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {10769#(= main_~i~1 0)} is VALID [2022-04-28 04:14:14,403 INFO L290 TraceCheckUtils]: 34: Hoare triple {10769#(= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {10769#(= main_~i~1 0)} is VALID [2022-04-28 04:14:14,403 INFO L290 TraceCheckUtils]: 35: Hoare triple {10769#(= main_~i~1 0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {10770#(<= 1 main_~i~1)} is VALID [2022-04-28 04:14:14,404 INFO L290 TraceCheckUtils]: 36: Hoare triple {10770#(<= 1 main_~i~1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {10771#(<= 2 main_~n~0)} is VALID [2022-04-28 04:14:14,404 INFO L290 TraceCheckUtils]: 37: Hoare triple {10771#(<= 2 main_~n~0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {10771#(<= 2 main_~n~0)} is VALID [2022-04-28 04:14:14,404 INFO L290 TraceCheckUtils]: 38: Hoare triple {10771#(<= 2 main_~n~0)} assume !(~i~1 < ~n~0); {10771#(<= 2 main_~n~0)} is VALID [2022-04-28 04:14:14,405 INFO L272 TraceCheckUtils]: 39: Hoare triple {10771#(<= 2 main_~n~0)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {10792#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:14:14,405 INFO L290 TraceCheckUtils]: 40: Hoare triple {10792#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {10793#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:14:14,405 INFO L290 TraceCheckUtils]: 41: Hoare triple {10793#(<= 1 upsweep_~space~0)} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {10793#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:14:14,406 INFO L290 TraceCheckUtils]: 42: Hoare triple {10793#(<= 1 upsweep_~space~0)} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {10793#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:14:14,406 INFO L290 TraceCheckUtils]: 43: Hoare triple {10793#(<= 1 upsweep_~space~0)} assume !(~left~0 < ~n); {10793#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:14:14,406 INFO L290 TraceCheckUtils]: 44: Hoare triple {10793#(<= 1 upsweep_~space~0)} ~space~0 := 2 * ~space~0; {10794#(<= 2 upsweep_~space~0)} is VALID [2022-04-28 04:14:14,406 INFO L290 TraceCheckUtils]: 45: Hoare triple {10794#(<= 2 upsweep_~space~0)} assume !(~space~0 < ~n); {10794#(<= 2 upsweep_~space~0)} is VALID [2022-04-28 04:14:14,407 INFO L290 TraceCheckUtils]: 46: Hoare triple {10794#(<= 2 upsweep_~space~0)} #res := ~space~0; {10795#(<= 2 |upsweep_#res|)} is VALID [2022-04-28 04:14:14,407 INFO L290 TraceCheckUtils]: 47: Hoare triple {10795#(<= 2 |upsweep_#res|)} assume true; {10795#(<= 2 |upsweep_#res|)} is VALID [2022-04-28 04:14:14,407 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {10795#(<= 2 |upsweep_#res|)} {10771#(<= 2 main_~n~0)} #152#return; {10781#(<= 2 |main_#t~ret19|)} is VALID [2022-04-28 04:14:14,408 INFO L290 TraceCheckUtils]: 49: Hoare triple {10781#(<= 2 |main_#t~ret19|)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {10782#(<= 2 main_~space~1)} is VALID [2022-04-28 04:14:14,408 INFO L272 TraceCheckUtils]: 50: Hoare triple {10782#(<= 2 main_~space~1)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {10792#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:14:14,410 INFO L290 TraceCheckUtils]: 51: Hoare triple {10792#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {10796#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} is VALID [2022-04-28 04:14:14,410 INFO L290 TraceCheckUtils]: 52: Hoare triple {10796#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} assume !(~space > 0); {10797#(<= |downsweep_#in~space| 1)} is VALID [2022-04-28 04:14:14,411 INFO L290 TraceCheckUtils]: 53: Hoare triple {10797#(<= |downsweep_#in~space| 1)} assume true; {10797#(<= |downsweep_#in~space| 1)} is VALID [2022-04-28 04:14:14,411 INFO L284 TraceCheckUtils]: 54: Hoare quadruple {10797#(<= |downsweep_#in~space| 1)} {10782#(<= 2 main_~space~1)} #154#return; {10746#false} is VALID [2022-04-28 04:14:14,411 INFO L272 TraceCheckUtils]: 55: Hoare triple {10746#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {10746#false} is VALID [2022-04-28 04:14:14,411 INFO L290 TraceCheckUtils]: 56: Hoare triple {10746#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {10746#false} is VALID [2022-04-28 04:14:14,411 INFO L290 TraceCheckUtils]: 57: Hoare triple {10746#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {10746#false} is VALID [2022-04-28 04:14:14,411 INFO L272 TraceCheckUtils]: 58: Hoare triple {10746#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {10745#true} is VALID [2022-04-28 04:14:14,411 INFO L290 TraceCheckUtils]: 59: Hoare triple {10745#true} ~cond := #in~cond; {10745#true} is VALID [2022-04-28 04:14:14,412 INFO L290 TraceCheckUtils]: 60: Hoare triple {10745#true} assume !(0 == ~cond); {10745#true} is VALID [2022-04-28 04:14:14,412 INFO L290 TraceCheckUtils]: 61: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:14,412 INFO L284 TraceCheckUtils]: 62: Hoare quadruple {10745#true} {10746#false} #158#return; {10746#false} is VALID [2022-04-28 04:14:14,412 INFO L290 TraceCheckUtils]: 63: Hoare triple {10746#false} havoc #t~mem11;call #t~mem12 := read~int(~a0.base, ~a0.offset + 4 * ~i~0, 4);~sum~0 := ~sum~0 + #t~mem12;havoc #t~mem12; {10746#false} is VALID [2022-04-28 04:14:14,412 INFO L290 TraceCheckUtils]: 64: Hoare triple {10746#false} #t~post10 := ~i~0;~i~0 := 1 + #t~post10;havoc #t~post10; {10746#false} is VALID [2022-04-28 04:14:14,412 INFO L290 TraceCheckUtils]: 65: Hoare triple {10746#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {10746#false} is VALID [2022-04-28 04:14:14,412 INFO L272 TraceCheckUtils]: 66: Hoare triple {10746#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {10746#false} is VALID [2022-04-28 04:14:14,412 INFO L290 TraceCheckUtils]: 67: Hoare triple {10746#false} ~cond := #in~cond; {10746#false} is VALID [2022-04-28 04:14:14,412 INFO L290 TraceCheckUtils]: 68: Hoare triple {10746#false} assume 0 == ~cond; {10746#false} is VALID [2022-04-28 04:14:14,412 INFO L290 TraceCheckUtils]: 69: Hoare triple {10746#false} assume !false; {10746#false} is VALID [2022-04-28 04:14:14,412 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 3 proven. 4 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-04-28 04:14:14,413 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:14:14,413 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [507424411] [2022-04-28 04:14:14,413 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [507424411] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:14:14,413 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1138153966] [2022-04-28 04:14:14,413 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:14:14,414 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:14:14,414 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:14:14,415 INFO L229 MonitoredProcess]: Starting monitored process 12 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:14:14,415 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (12)] Waiting until timeout for monitored process [2022-04-28 04:14:14,491 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:14:14,491 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:14:14,492 INFO L263 TraceCheckSpWp]: Trace formula consists of 280 conjuncts, 14 conjunts are in the unsatisfiable core [2022-04-28 04:14:14,507 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:14,508 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:14:15,025 INFO L272 TraceCheckUtils]: 0: Hoare triple {10745#true} call ULTIMATE.init(); {10745#true} is VALID [2022-04-28 04:14:15,025 INFO L290 TraceCheckUtils]: 1: Hoare triple {10745#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {10745#true} is VALID [2022-04-28 04:14:15,025 INFO L290 TraceCheckUtils]: 2: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:15,025 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10745#true} {10745#true} #160#return; {10745#true} is VALID [2022-04-28 04:14:15,025 INFO L272 TraceCheckUtils]: 4: Hoare triple {10745#true} call #t~ret20 := main(); {10745#true} is VALID [2022-04-28 04:14:15,025 INFO L290 TraceCheckUtils]: 5: Hoare triple {10745#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {10745#true} is VALID [2022-04-28 04:14:15,025 INFO L272 TraceCheckUtils]: 6: Hoare triple {10745#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {10745#true} is VALID [2022-04-28 04:14:15,025 INFO L290 TraceCheckUtils]: 7: Hoare triple {10745#true} ~cond := #in~cond; {10745#true} is VALID [2022-04-28 04:14:15,025 INFO L290 TraceCheckUtils]: 8: Hoare triple {10745#true} assume !(0 == ~cond); {10745#true} is VALID [2022-04-28 04:14:15,025 INFO L290 TraceCheckUtils]: 9: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:15,026 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {10745#true} {10745#true} #142#return; {10745#true} is VALID [2022-04-28 04:14:15,026 INFO L272 TraceCheckUtils]: 11: Hoare triple {10745#true} call #t~ret14 := is_pow2(~n~0); {10745#true} is VALID [2022-04-28 04:14:15,026 INFO L290 TraceCheckUtils]: 12: Hoare triple {10745#true} ~x := #in~x; {10745#true} is VALID [2022-04-28 04:14:15,026 INFO L290 TraceCheckUtils]: 13: Hoare triple {10745#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {10745#true} is VALID [2022-04-28 04:14:15,026 INFO L290 TraceCheckUtils]: 14: Hoare triple {10745#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {10745#true} is VALID [2022-04-28 04:14:15,026 INFO L290 TraceCheckUtils]: 15: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:15,026 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {10745#true} {10745#true} #144#return; {10745#true} is VALID [2022-04-28 04:14:15,026 INFO L290 TraceCheckUtils]: 17: Hoare triple {10745#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {10745#true} is VALID [2022-04-28 04:14:15,026 INFO L272 TraceCheckUtils]: 18: Hoare triple {10745#true} call assume_abort_if_not(#t~ret14); {10745#true} is VALID [2022-04-28 04:14:15,026 INFO L290 TraceCheckUtils]: 19: Hoare triple {10745#true} ~cond := #in~cond; {10745#true} is VALID [2022-04-28 04:14:15,026 INFO L290 TraceCheckUtils]: 20: Hoare triple {10745#true} assume !(0 == ~cond); {10745#true} is VALID [2022-04-28 04:14:15,026 INFO L290 TraceCheckUtils]: 21: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:15,026 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {10745#true} {10745#true} #146#return; {10745#true} is VALID [2022-04-28 04:14:15,026 INFO L290 TraceCheckUtils]: 23: Hoare triple {10745#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {10745#true} is VALID [2022-04-28 04:14:15,027 INFO L272 TraceCheckUtils]: 24: Hoare triple {10745#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {10745#true} is VALID [2022-04-28 04:14:15,027 INFO L290 TraceCheckUtils]: 25: Hoare triple {10745#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {10745#true} is VALID [2022-04-28 04:14:15,027 INFO L290 TraceCheckUtils]: 26: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:15,027 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {10745#true} {10745#true} #148#return; {10745#true} is VALID [2022-04-28 04:14:15,027 INFO L290 TraceCheckUtils]: 28: Hoare triple {10745#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {10745#true} is VALID [2022-04-28 04:14:15,027 INFO L272 TraceCheckUtils]: 29: Hoare triple {10745#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {10745#true} is VALID [2022-04-28 04:14:15,027 INFO L290 TraceCheckUtils]: 30: Hoare triple {10745#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {10745#true} is VALID [2022-04-28 04:14:15,027 INFO L290 TraceCheckUtils]: 31: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:15,027 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {10745#true} {10745#true} #150#return; {10745#true} is VALID [2022-04-28 04:14:15,027 INFO L290 TraceCheckUtils]: 33: Hoare triple {10745#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {10745#true} is VALID [2022-04-28 04:14:15,027 INFO L290 TraceCheckUtils]: 34: Hoare triple {10745#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {10745#true} is VALID [2022-04-28 04:14:15,027 INFO L290 TraceCheckUtils]: 35: Hoare triple {10745#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {10745#true} is VALID [2022-04-28 04:14:15,027 INFO L290 TraceCheckUtils]: 36: Hoare triple {10745#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {10745#true} is VALID [2022-04-28 04:14:15,027 INFO L290 TraceCheckUtils]: 37: Hoare triple {10745#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {10745#true} is VALID [2022-04-28 04:14:15,028 INFO L290 TraceCheckUtils]: 38: Hoare triple {10745#true} assume !(~i~1 < ~n~0); {10745#true} is VALID [2022-04-28 04:14:15,028 INFO L272 TraceCheckUtils]: 39: Hoare triple {10745#true} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {10745#true} is VALID [2022-04-28 04:14:15,028 INFO L290 TraceCheckUtils]: 40: Hoare triple {10745#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {10921#(<= |upsweep_#in~n| upsweep_~n)} is VALID [2022-04-28 04:14:15,028 INFO L290 TraceCheckUtils]: 41: Hoare triple {10921#(<= |upsweep_#in~n| upsweep_~n)} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {10921#(<= |upsweep_#in~n| upsweep_~n)} is VALID [2022-04-28 04:14:15,029 INFO L290 TraceCheckUtils]: 42: Hoare triple {10921#(<= |upsweep_#in~n| upsweep_~n)} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {10921#(<= |upsweep_#in~n| upsweep_~n)} is VALID [2022-04-28 04:14:15,029 INFO L290 TraceCheckUtils]: 43: Hoare triple {10921#(<= |upsweep_#in~n| upsweep_~n)} assume !(~left~0 < ~n); {10921#(<= |upsweep_#in~n| upsweep_~n)} is VALID [2022-04-28 04:14:15,029 INFO L290 TraceCheckUtils]: 44: Hoare triple {10921#(<= |upsweep_#in~n| upsweep_~n)} ~space~0 := 2 * ~space~0; {10921#(<= |upsweep_#in~n| upsweep_~n)} is VALID [2022-04-28 04:14:15,030 INFO L290 TraceCheckUtils]: 45: Hoare triple {10921#(<= |upsweep_#in~n| upsweep_~n)} assume !(~space~0 < ~n); {10937#(<= |upsweep_#in~n| upsweep_~space~0)} is VALID [2022-04-28 04:14:15,030 INFO L290 TraceCheckUtils]: 46: Hoare triple {10937#(<= |upsweep_#in~n| upsweep_~space~0)} #res := ~space~0; {10941#(<= |upsweep_#in~n| |upsweep_#res|)} is VALID [2022-04-28 04:14:15,030 INFO L290 TraceCheckUtils]: 47: Hoare triple {10941#(<= |upsweep_#in~n| |upsweep_#res|)} assume true; {10941#(<= |upsweep_#in~n| |upsweep_#res|)} is VALID [2022-04-28 04:14:15,031 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {10941#(<= |upsweep_#in~n| |upsweep_#res|)} {10745#true} #152#return; {10948#(<= main_~n~0 |main_#t~ret19|)} is VALID [2022-04-28 04:14:15,032 INFO L290 TraceCheckUtils]: 49: Hoare triple {10948#(<= main_~n~0 |main_#t~ret19|)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {10952#(<= main_~n~0 main_~space~1)} is VALID [2022-04-28 04:14:15,032 INFO L272 TraceCheckUtils]: 50: Hoare triple {10952#(<= main_~n~0 main_~space~1)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {10745#true} is VALID [2022-04-28 04:14:15,033 INFO L290 TraceCheckUtils]: 51: Hoare triple {10745#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {10959#(or (and (or (= (mod |downsweep_#in~space| 2) 0) (not (< |downsweep_#in~space| 0))) (<= (div |downsweep_#in~space| 2) downsweep_~space)) (<= (+ (div |downsweep_#in~space| 2) 1) downsweep_~space))} is VALID [2022-04-28 04:14:15,033 INFO L290 TraceCheckUtils]: 52: Hoare triple {10959#(or (and (or (= (mod |downsweep_#in~space| 2) 0) (not (< |downsweep_#in~space| 0))) (<= (div |downsweep_#in~space| 2) downsweep_~space)) (<= (+ (div |downsweep_#in~space| 2) 1) downsweep_~space))} assume !(~space > 0); {10797#(<= |downsweep_#in~space| 1)} is VALID [2022-04-28 04:14:15,034 INFO L290 TraceCheckUtils]: 53: Hoare triple {10797#(<= |downsweep_#in~space| 1)} assume true; {10797#(<= |downsweep_#in~space| 1)} is VALID [2022-04-28 04:14:15,035 INFO L284 TraceCheckUtils]: 54: Hoare quadruple {10797#(<= |downsweep_#in~space| 1)} {10952#(<= main_~n~0 main_~space~1)} #154#return; {10969#(<= main_~n~0 1)} is VALID [2022-04-28 04:14:15,035 INFO L272 TraceCheckUtils]: 55: Hoare triple {10969#(<= main_~n~0 1)} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {10973#(<= |check_#in~n| 1)} is VALID [2022-04-28 04:14:15,036 INFO L290 TraceCheckUtils]: 56: Hoare triple {10973#(<= |check_#in~n| 1)} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {10977#(and (<= check_~n 1) (<= 0 check_~i~0))} is VALID [2022-04-28 04:14:15,036 INFO L290 TraceCheckUtils]: 57: Hoare triple {10977#(and (<= check_~n 1) (<= 0 check_~i~0))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {10977#(and (<= check_~n 1) (<= 0 check_~i~0))} is VALID [2022-04-28 04:14:15,036 INFO L272 TraceCheckUtils]: 58: Hoare triple {10977#(and (<= check_~n 1) (<= 0 check_~i~0))} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {10745#true} is VALID [2022-04-28 04:14:15,036 INFO L290 TraceCheckUtils]: 59: Hoare triple {10745#true} ~cond := #in~cond; {10745#true} is VALID [2022-04-28 04:14:15,036 INFO L290 TraceCheckUtils]: 60: Hoare triple {10745#true} assume !(0 == ~cond); {10745#true} is VALID [2022-04-28 04:14:15,037 INFO L290 TraceCheckUtils]: 61: Hoare triple {10745#true} assume true; {10745#true} is VALID [2022-04-28 04:14:15,037 INFO L284 TraceCheckUtils]: 62: Hoare quadruple {10745#true} {10977#(and (<= check_~n 1) (<= 0 check_~i~0))} #158#return; {10977#(and (<= check_~n 1) (<= 0 check_~i~0))} is VALID [2022-04-28 04:14:15,037 INFO L290 TraceCheckUtils]: 63: Hoare triple {10977#(and (<= check_~n 1) (<= 0 check_~i~0))} havoc #t~mem11;call #t~mem12 := read~int(~a0.base, ~a0.offset + 4 * ~i~0, 4);~sum~0 := ~sum~0 + #t~mem12;havoc #t~mem12; {10977#(and (<= check_~n 1) (<= 0 check_~i~0))} is VALID [2022-04-28 04:14:15,038 INFO L290 TraceCheckUtils]: 64: Hoare triple {10977#(and (<= check_~n 1) (<= 0 check_~i~0))} #t~post10 := ~i~0;~i~0 := 1 + #t~post10;havoc #t~post10; {11002#(and (<= check_~n 1) (<= 1 check_~i~0))} is VALID [2022-04-28 04:14:15,038 INFO L290 TraceCheckUtils]: 65: Hoare triple {11002#(and (<= check_~n 1) (<= 1 check_~i~0))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {10746#false} is VALID [2022-04-28 04:14:15,038 INFO L272 TraceCheckUtils]: 66: Hoare triple {10746#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {10746#false} is VALID [2022-04-28 04:14:15,039 INFO L290 TraceCheckUtils]: 67: Hoare triple {10746#false} ~cond := #in~cond; {10746#false} is VALID [2022-04-28 04:14:15,039 INFO L290 TraceCheckUtils]: 68: Hoare triple {10746#false} assume 0 == ~cond; {10746#false} is VALID [2022-04-28 04:14:15,039 INFO L290 TraceCheckUtils]: 69: Hoare triple {10746#false} assume !false; {10746#false} is VALID [2022-04-28 04:14:15,039 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 13 trivial. 0 not checked. [2022-04-28 04:14:15,039 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-28 04:14:15,039 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1138153966] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:14:15,039 INFO L184 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-04-28 04:14:15,039 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [14] total 24 [2022-04-28 04:14:15,039 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:14:15,039 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [2129565412] [2022-04-28 04:14:15,040 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [2129565412] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:14:15,040 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:14:15,040 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-28 04:14:15,040 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1673384474] [2022-04-28 04:14:15,040 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:14:15,040 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 11 states have (on average 3.8181818181818183) internal successors, (42), 10 states have internal predecessors, (42), 5 states have call successors, (12), 3 states have call predecessors, (12), 3 states have return successors, (9), 4 states have call predecessors, (9), 3 states have call successors, (9) Word has length 70 [2022-04-28 04:14:15,040 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:14:15,040 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 13 states, 11 states have (on average 3.8181818181818183) internal successors, (42), 10 states have internal predecessors, (42), 5 states have call successors, (12), 3 states have call predecessors, (12), 3 states have return successors, (9), 4 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-28 04:14:15,084 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:14:15,084 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-04-28 04:14:15,084 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:14:15,084 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-04-28 04:14:15,085 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=48, Invalid=504, Unknown=0, NotChecked=0, Total=552 [2022-04-28 04:14:15,085 INFO L87 Difference]: Start difference. First operand 106 states and 130 transitions. Second operand has 13 states, 11 states have (on average 3.8181818181818183) internal successors, (42), 10 states have internal predecessors, (42), 5 states have call successors, (12), 3 states have call predecessors, (12), 3 states have return successors, (9), 4 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-28 04:14:35,496 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:14:35,496 INFO L93 Difference]: Finished difference Result 129 states and 157 transitions. [2022-04-28 04:14:35,496 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-28 04:14:35,497 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 11 states have (on average 3.8181818181818183) internal successors, (42), 10 states have internal predecessors, (42), 5 states have call successors, (12), 3 states have call predecessors, (12), 3 states have return successors, (9), 4 states have call predecessors, (9), 3 states have call successors, (9) Word has length 70 [2022-04-28 04:14:35,497 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:14:35,497 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 11 states have (on average 3.8181818181818183) internal successors, (42), 10 states have internal predecessors, (42), 5 states have call successors, (12), 3 states have call predecessors, (12), 3 states have return successors, (9), 4 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-28 04:14:35,498 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 90 transitions. [2022-04-28 04:14:35,498 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 11 states have (on average 3.8181818181818183) internal successors, (42), 10 states have internal predecessors, (42), 5 states have call successors, (12), 3 states have call predecessors, (12), 3 states have return successors, (9), 4 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-28 04:14:35,499 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 90 transitions. [2022-04-28 04:14:35,499 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 90 transitions. [2022-04-28 04:14:35,576 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 90 edges. 90 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:14:35,577 INFO L225 Difference]: With dead ends: 129 [2022-04-28 04:14:35,578 INFO L226 Difference]: Without dead ends: 110 [2022-04-28 04:14:35,579 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 103 GetRequests, 74 SyntacticMatches, 1 SemanticMatches, 28 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 42 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=76, Invalid=794, Unknown=0, NotChecked=0, Total=870 [2022-04-28 04:14:35,580 INFO L413 NwaCegarLoop]: 50 mSDtfsCounter, 13 mSDsluCounter, 486 mSDsCounter, 0 mSdLazyCounter, 237 mSolverCounterSat, 3 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 15 SdHoareTripleChecker+Valid, 536 SdHoareTripleChecker+Invalid, 240 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 3 IncrementalHoareTripleChecker+Valid, 237 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-04-28 04:14:35,580 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [15 Valid, 536 Invalid, 240 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [3 Valid, 237 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-04-28 04:14:35,580 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 110 states. [2022-04-28 04:14:35,854 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 110 to 103. [2022-04-28 04:14:35,854 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:14:35,854 INFO L82 GeneralOperation]: Start isEquivalent. First operand 110 states. Second operand has 103 states, 76 states have (on average 1.236842105263158) internal successors, (94), 80 states have internal predecessors, (94), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) [2022-04-28 04:14:35,854 INFO L74 IsIncluded]: Start isIncluded. First operand 110 states. Second operand has 103 states, 76 states have (on average 1.236842105263158) internal successors, (94), 80 states have internal predecessors, (94), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) [2022-04-28 04:14:35,854 INFO L87 Difference]: Start difference. First operand 110 states. Second operand has 103 states, 76 states have (on average 1.236842105263158) internal successors, (94), 80 states have internal predecessors, (94), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) [2022-04-28 04:14:35,856 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:14:35,856 INFO L93 Difference]: Finished difference Result 110 states and 135 transitions. [2022-04-28 04:14:35,856 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 135 transitions. [2022-04-28 04:14:35,857 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:14:35,857 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:14:35,857 INFO L74 IsIncluded]: Start isIncluded. First operand has 103 states, 76 states have (on average 1.236842105263158) internal successors, (94), 80 states have internal predecessors, (94), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) Second operand 110 states. [2022-04-28 04:14:35,857 INFO L87 Difference]: Start difference. First operand has 103 states, 76 states have (on average 1.236842105263158) internal successors, (94), 80 states have internal predecessors, (94), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) Second operand 110 states. [2022-04-28 04:14:35,859 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:14:35,859 INFO L93 Difference]: Finished difference Result 110 states and 135 transitions. [2022-04-28 04:14:35,859 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 135 transitions. [2022-04-28 04:14:35,860 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:14:35,860 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:14:35,860 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:14:35,860 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:14:35,860 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 103 states, 76 states have (on average 1.236842105263158) internal successors, (94), 80 states have internal predecessors, (94), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) [2022-04-28 04:14:35,861 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 103 states to 103 states and 125 transitions. [2022-04-28 04:14:35,862 INFO L78 Accepts]: Start accepts. Automaton has 103 states and 125 transitions. Word has length 70 [2022-04-28 04:14:35,862 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:14:35,862 INFO L495 AbstractCegarLoop]: Abstraction has 103 states and 125 transitions. [2022-04-28 04:14:35,862 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 13 states, 11 states have (on average 3.8181818181818183) internal successors, (42), 10 states have internal predecessors, (42), 5 states have call successors, (12), 3 states have call predecessors, (12), 3 states have return successors, (9), 4 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-28 04:14:35,862 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 103 states and 125 transitions. [2022-04-28 04:14:36,108 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 125 edges. 125 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:14:36,109 INFO L276 IsEmpty]: Start isEmpty. Operand 103 states and 125 transitions. [2022-04-28 04:14:36,116 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 70 [2022-04-28 04:14:36,116 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:14:36,116 INFO L195 NwaCegarLoop]: trace histogram [3, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1] [2022-04-28 04:14:36,133 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (12)] Forceful destruction successful, exit code 0 [2022-04-28 04:14:36,328 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 12 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable12 [2022-04-28 04:14:36,329 INFO L420 AbstractCegarLoop]: === Iteration 14 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:14:36,329 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:14:36,329 INFO L85 PathProgramCache]: Analyzing trace with hash -677053431, now seen corresponding path program 7 times [2022-04-28 04:14:36,329 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:14:36,329 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1549449555] [2022-04-28 04:14:36,329 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:14:36,329 INFO L85 PathProgramCache]: Analyzing trace with hash -677053431, now seen corresponding path program 8 times [2022-04-28 04:14:36,330 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:14:36,330 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1858803537] [2022-04-28 04:14:36,330 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:14:36,330 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:14:36,346 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:36,378 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:14:36,379 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:36,381 INFO L290 TraceCheckUtils]: 0: Hoare triple {11759#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {11713#true} is VALID [2022-04-28 04:14:36,381 INFO L290 TraceCheckUtils]: 1: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:36,381 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {11713#true} {11713#true} #160#return; {11713#true} is VALID [2022-04-28 04:14:36,381 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:14:36,381 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:36,383 INFO L290 TraceCheckUtils]: 0: Hoare triple {11713#true} ~cond := #in~cond; {11713#true} is VALID [2022-04-28 04:14:36,383 INFO L290 TraceCheckUtils]: 1: Hoare triple {11713#true} assume !(0 == ~cond); {11713#true} is VALID [2022-04-28 04:14:36,383 INFO L290 TraceCheckUtils]: 2: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:36,384 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11713#true} {11713#true} #142#return; {11713#true} is VALID [2022-04-28 04:14:36,384 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:14:36,384 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:36,386 INFO L290 TraceCheckUtils]: 0: Hoare triple {11713#true} ~x := #in~x; {11713#true} is VALID [2022-04-28 04:14:36,386 INFO L290 TraceCheckUtils]: 1: Hoare triple {11713#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {11713#true} is VALID [2022-04-28 04:14:36,386 INFO L290 TraceCheckUtils]: 2: Hoare triple {11713#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {11713#true} is VALID [2022-04-28 04:14:36,386 INFO L290 TraceCheckUtils]: 3: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:36,386 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {11713#true} {11713#true} #144#return; {11713#true} is VALID [2022-04-28 04:14:36,386 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:14:36,387 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:36,388 INFO L290 TraceCheckUtils]: 0: Hoare triple {11713#true} ~cond := #in~cond; {11713#true} is VALID [2022-04-28 04:14:36,388 INFO L290 TraceCheckUtils]: 1: Hoare triple {11713#true} assume !(0 == ~cond); {11713#true} is VALID [2022-04-28 04:14:36,388 INFO L290 TraceCheckUtils]: 2: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:36,388 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11713#true} {11713#true} #146#return; {11713#true} is VALID [2022-04-28 04:14:36,393 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:14:36,394 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:36,396 INFO L290 TraceCheckUtils]: 0: Hoare triple {11760#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {11713#true} is VALID [2022-04-28 04:14:36,396 INFO L290 TraceCheckUtils]: 1: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:36,396 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {11713#true} {11713#true} #148#return; {11713#true} is VALID [2022-04-28 04:14:36,396 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:14:36,397 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:36,398 INFO L290 TraceCheckUtils]: 0: Hoare triple {11760#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {11713#true} is VALID [2022-04-28 04:14:36,398 INFO L290 TraceCheckUtils]: 1: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:36,398 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {11713#true} {11713#true} #150#return; {11713#true} is VALID [2022-04-28 04:14:36,398 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 41 [2022-04-28 04:14:36,401 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:36,465 INFO L290 TraceCheckUtils]: 0: Hoare triple {11760#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {11761#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:14:36,466 INFO L290 TraceCheckUtils]: 1: Hoare triple {11761#(<= 1 upsweep_~space~0)} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {11762#(<= 0 upsweep_~left~0)} is VALID [2022-04-28 04:14:36,467 INFO L290 TraceCheckUtils]: 2: Hoare triple {11762#(<= 0 upsweep_~left~0)} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {11763#(<= (* 2 upsweep_~space~0) upsweep_~left~0)} is VALID [2022-04-28 04:14:36,467 INFO L290 TraceCheckUtils]: 3: Hoare triple {11763#(<= (* 2 upsweep_~space~0) upsweep_~left~0)} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {11764#(<= (+ (* 2 upsweep_~space~0) 1) upsweep_~n)} is VALID [2022-04-28 04:14:36,468 INFO L290 TraceCheckUtils]: 4: Hoare triple {11764#(<= (+ (* 2 upsweep_~space~0) 1) upsweep_~n)} assume !(~left~0 < ~n); {11764#(<= (+ (* 2 upsweep_~space~0) 1) upsweep_~n)} is VALID [2022-04-28 04:14:36,468 INFO L290 TraceCheckUtils]: 5: Hoare triple {11764#(<= (+ (* 2 upsweep_~space~0) 1) upsweep_~n)} ~space~0 := 2 * ~space~0; {11765#(<= (+ upsweep_~space~0 1) upsweep_~n)} is VALID [2022-04-28 04:14:36,469 INFO L290 TraceCheckUtils]: 6: Hoare triple {11765#(<= (+ upsweep_~space~0 1) upsweep_~n)} assume !(~space~0 < ~n); {11714#false} is VALID [2022-04-28 04:14:36,469 INFO L290 TraceCheckUtils]: 7: Hoare triple {11714#false} #res := ~space~0; {11714#false} is VALID [2022-04-28 04:14:36,469 INFO L290 TraceCheckUtils]: 8: Hoare triple {11714#false} assume true; {11714#false} is VALID [2022-04-28 04:14:36,469 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {11714#false} {11740#(<= 3 main_~n~0)} #152#return; {11714#false} is VALID [2022-04-28 04:14:36,469 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 53 [2022-04-28 04:14:36,473 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:36,479 INFO L290 TraceCheckUtils]: 0: Hoare triple {11760#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {11713#true} is VALID [2022-04-28 04:14:36,479 INFO L290 TraceCheckUtils]: 1: Hoare triple {11713#true} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {11713#true} is VALID [2022-04-28 04:14:36,479 INFO L290 TraceCheckUtils]: 2: Hoare triple {11713#true} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {11713#true} is VALID [2022-04-28 04:14:36,479 INFO L290 TraceCheckUtils]: 3: Hoare triple {11713#true} assume !(~right~1 < ~n); {11713#true} is VALID [2022-04-28 04:14:36,479 INFO L290 TraceCheckUtils]: 4: Hoare triple {11713#true} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {11713#true} is VALID [2022-04-28 04:14:36,479 INFO L290 TraceCheckUtils]: 5: Hoare triple {11713#true} assume !(~space > 0); {11713#true} is VALID [2022-04-28 04:14:36,479 INFO L290 TraceCheckUtils]: 6: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:36,480 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {11713#true} {11714#false} #154#return; {11714#false} is VALID [2022-04-28 04:14:36,480 INFO L272 TraceCheckUtils]: 0: Hoare triple {11713#true} call ULTIMATE.init(); {11759#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:14:36,480 INFO L290 TraceCheckUtils]: 1: Hoare triple {11759#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {11713#true} is VALID [2022-04-28 04:14:36,480 INFO L290 TraceCheckUtils]: 2: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:36,480 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11713#true} {11713#true} #160#return; {11713#true} is VALID [2022-04-28 04:14:36,480 INFO L272 TraceCheckUtils]: 4: Hoare triple {11713#true} call #t~ret20 := main(); {11713#true} is VALID [2022-04-28 04:14:36,480 INFO L290 TraceCheckUtils]: 5: Hoare triple {11713#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {11713#true} is VALID [2022-04-28 04:14:36,480 INFO L272 TraceCheckUtils]: 6: Hoare triple {11713#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {11713#true} is VALID [2022-04-28 04:14:36,481 INFO L290 TraceCheckUtils]: 7: Hoare triple {11713#true} ~cond := #in~cond; {11713#true} is VALID [2022-04-28 04:14:36,481 INFO L290 TraceCheckUtils]: 8: Hoare triple {11713#true} assume !(0 == ~cond); {11713#true} is VALID [2022-04-28 04:14:36,481 INFO L290 TraceCheckUtils]: 9: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:36,481 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11713#true} {11713#true} #142#return; {11713#true} is VALID [2022-04-28 04:14:36,481 INFO L272 TraceCheckUtils]: 11: Hoare triple {11713#true} call #t~ret14 := is_pow2(~n~0); {11713#true} is VALID [2022-04-28 04:14:36,481 INFO L290 TraceCheckUtils]: 12: Hoare triple {11713#true} ~x := #in~x; {11713#true} is VALID [2022-04-28 04:14:36,481 INFO L290 TraceCheckUtils]: 13: Hoare triple {11713#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {11713#true} is VALID [2022-04-28 04:14:36,481 INFO L290 TraceCheckUtils]: 14: Hoare triple {11713#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {11713#true} is VALID [2022-04-28 04:14:36,481 INFO L290 TraceCheckUtils]: 15: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:36,481 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {11713#true} {11713#true} #144#return; {11713#true} is VALID [2022-04-28 04:14:36,481 INFO L290 TraceCheckUtils]: 17: Hoare triple {11713#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {11713#true} is VALID [2022-04-28 04:14:36,481 INFO L272 TraceCheckUtils]: 18: Hoare triple {11713#true} call assume_abort_if_not(#t~ret14); {11713#true} is VALID [2022-04-28 04:14:36,481 INFO L290 TraceCheckUtils]: 19: Hoare triple {11713#true} ~cond := #in~cond; {11713#true} is VALID [2022-04-28 04:14:36,481 INFO L290 TraceCheckUtils]: 20: Hoare triple {11713#true} assume !(0 == ~cond); {11713#true} is VALID [2022-04-28 04:14:36,481 INFO L290 TraceCheckUtils]: 21: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:36,482 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {11713#true} {11713#true} #146#return; {11713#true} is VALID [2022-04-28 04:14:36,482 INFO L290 TraceCheckUtils]: 23: Hoare triple {11713#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {11713#true} is VALID [2022-04-28 04:14:36,482 INFO L272 TraceCheckUtils]: 24: Hoare triple {11713#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {11760#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:14:36,483 INFO L290 TraceCheckUtils]: 25: Hoare triple {11760#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {11713#true} is VALID [2022-04-28 04:14:36,483 INFO L290 TraceCheckUtils]: 26: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:36,483 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {11713#true} {11713#true} #148#return; {11713#true} is VALID [2022-04-28 04:14:36,483 INFO L290 TraceCheckUtils]: 28: Hoare triple {11713#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {11713#true} is VALID [2022-04-28 04:14:36,483 INFO L272 TraceCheckUtils]: 29: Hoare triple {11713#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {11760#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:14:36,483 INFO L290 TraceCheckUtils]: 30: Hoare triple {11760#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {11713#true} is VALID [2022-04-28 04:14:36,484 INFO L290 TraceCheckUtils]: 31: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:36,484 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {11713#true} {11713#true} #150#return; {11713#true} is VALID [2022-04-28 04:14:36,485 INFO L290 TraceCheckUtils]: 33: Hoare triple {11713#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {11737#(= main_~i~1 0)} is VALID [2022-04-28 04:14:36,485 INFO L290 TraceCheckUtils]: 34: Hoare triple {11737#(= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {11737#(= main_~i~1 0)} is VALID [2022-04-28 04:14:36,485 INFO L290 TraceCheckUtils]: 35: Hoare triple {11737#(= main_~i~1 0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {11738#(<= 1 main_~i~1)} is VALID [2022-04-28 04:14:36,486 INFO L290 TraceCheckUtils]: 36: Hoare triple {11738#(<= 1 main_~i~1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {11738#(<= 1 main_~i~1)} is VALID [2022-04-28 04:14:36,486 INFO L290 TraceCheckUtils]: 37: Hoare triple {11738#(<= 1 main_~i~1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {11739#(<= 2 main_~i~1)} is VALID [2022-04-28 04:14:36,487 INFO L290 TraceCheckUtils]: 38: Hoare triple {11739#(<= 2 main_~i~1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {11740#(<= 3 main_~n~0)} is VALID [2022-04-28 04:14:36,487 INFO L290 TraceCheckUtils]: 39: Hoare triple {11740#(<= 3 main_~n~0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {11740#(<= 3 main_~n~0)} is VALID [2022-04-28 04:14:36,487 INFO L290 TraceCheckUtils]: 40: Hoare triple {11740#(<= 3 main_~n~0)} assume !(~i~1 < ~n~0); {11740#(<= 3 main_~n~0)} is VALID [2022-04-28 04:14:36,488 INFO L272 TraceCheckUtils]: 41: Hoare triple {11740#(<= 3 main_~n~0)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {11760#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:14:36,488 INFO L290 TraceCheckUtils]: 42: Hoare triple {11760#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {11761#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:14:36,489 INFO L290 TraceCheckUtils]: 43: Hoare triple {11761#(<= 1 upsweep_~space~0)} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {11762#(<= 0 upsweep_~left~0)} is VALID [2022-04-28 04:14:36,490 INFO L290 TraceCheckUtils]: 44: Hoare triple {11762#(<= 0 upsweep_~left~0)} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {11763#(<= (* 2 upsweep_~space~0) upsweep_~left~0)} is VALID [2022-04-28 04:14:36,490 INFO L290 TraceCheckUtils]: 45: Hoare triple {11763#(<= (* 2 upsweep_~space~0) upsweep_~left~0)} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {11764#(<= (+ (* 2 upsweep_~space~0) 1) upsweep_~n)} is VALID [2022-04-28 04:14:36,491 INFO L290 TraceCheckUtils]: 46: Hoare triple {11764#(<= (+ (* 2 upsweep_~space~0) 1) upsweep_~n)} assume !(~left~0 < ~n); {11764#(<= (+ (* 2 upsweep_~space~0) 1) upsweep_~n)} is VALID [2022-04-28 04:14:36,491 INFO L290 TraceCheckUtils]: 47: Hoare triple {11764#(<= (+ (* 2 upsweep_~space~0) 1) upsweep_~n)} ~space~0 := 2 * ~space~0; {11765#(<= (+ upsweep_~space~0 1) upsweep_~n)} is VALID [2022-04-28 04:14:36,491 INFO L290 TraceCheckUtils]: 48: Hoare triple {11765#(<= (+ upsweep_~space~0 1) upsweep_~n)} assume !(~space~0 < ~n); {11714#false} is VALID [2022-04-28 04:14:36,492 INFO L290 TraceCheckUtils]: 49: Hoare triple {11714#false} #res := ~space~0; {11714#false} is VALID [2022-04-28 04:14:36,492 INFO L290 TraceCheckUtils]: 50: Hoare triple {11714#false} assume true; {11714#false} is VALID [2022-04-28 04:14:36,492 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {11714#false} {11740#(<= 3 main_~n~0)} #152#return; {11714#false} is VALID [2022-04-28 04:14:36,492 INFO L290 TraceCheckUtils]: 52: Hoare triple {11714#false} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {11714#false} is VALID [2022-04-28 04:14:36,492 INFO L272 TraceCheckUtils]: 53: Hoare triple {11714#false} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {11760#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:14:36,492 INFO L290 TraceCheckUtils]: 54: Hoare triple {11760#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {11713#true} is VALID [2022-04-28 04:14:36,492 INFO L290 TraceCheckUtils]: 55: Hoare triple {11713#true} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {11713#true} is VALID [2022-04-28 04:14:36,492 INFO L290 TraceCheckUtils]: 56: Hoare triple {11713#true} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {11713#true} is VALID [2022-04-28 04:14:36,492 INFO L290 TraceCheckUtils]: 57: Hoare triple {11713#true} assume !(~right~1 < ~n); {11713#true} is VALID [2022-04-28 04:14:36,492 INFO L290 TraceCheckUtils]: 58: Hoare triple {11713#true} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {11713#true} is VALID [2022-04-28 04:14:36,492 INFO L290 TraceCheckUtils]: 59: Hoare triple {11713#true} assume !(~space > 0); {11713#true} is VALID [2022-04-28 04:14:36,492 INFO L290 TraceCheckUtils]: 60: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:36,492 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {11713#true} {11714#false} #154#return; {11714#false} is VALID [2022-04-28 04:14:36,492 INFO L272 TraceCheckUtils]: 62: Hoare triple {11714#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {11714#false} is VALID [2022-04-28 04:14:36,493 INFO L290 TraceCheckUtils]: 63: Hoare triple {11714#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {11714#false} is VALID [2022-04-28 04:14:36,493 INFO L290 TraceCheckUtils]: 64: Hoare triple {11714#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {11714#false} is VALID [2022-04-28 04:14:36,493 INFO L272 TraceCheckUtils]: 65: Hoare triple {11714#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {11714#false} is VALID [2022-04-28 04:14:36,493 INFO L290 TraceCheckUtils]: 66: Hoare triple {11714#false} ~cond := #in~cond; {11714#false} is VALID [2022-04-28 04:14:36,493 INFO L290 TraceCheckUtils]: 67: Hoare triple {11714#false} assume 0 == ~cond; {11714#false} is VALID [2022-04-28 04:14:36,493 INFO L290 TraceCheckUtils]: 68: Hoare triple {11714#false} assume !false; {11714#false} is VALID [2022-04-28 04:14:36,493 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 1 proven. 12 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2022-04-28 04:14:36,493 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:14:36,493 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1858803537] [2022-04-28 04:14:36,493 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1858803537] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:14:36,493 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1892226449] [2022-04-28 04:14:36,493 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:14:36,494 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:14:36,494 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:14:36,495 INFO L229 MonitoredProcess]: Starting monitored process 13 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:14:36,496 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (13)] Waiting until timeout for monitored process [2022-04-28 04:14:36,584 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:14:36,584 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:14:36,585 INFO L263 TraceCheckSpWp]: Trace formula consists of 299 conjuncts, 9 conjunts are in the unsatisfiable core [2022-04-28 04:14:36,597 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:14:36,598 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:14:37,225 INFO L272 TraceCheckUtils]: 0: Hoare triple {11713#true} call ULTIMATE.init(); {11713#true} is VALID [2022-04-28 04:14:37,225 INFO L290 TraceCheckUtils]: 1: Hoare triple {11713#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {11713#true} is VALID [2022-04-28 04:14:37,225 INFO L290 TraceCheckUtils]: 2: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:37,225 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11713#true} {11713#true} #160#return; {11713#true} is VALID [2022-04-28 04:14:37,225 INFO L272 TraceCheckUtils]: 4: Hoare triple {11713#true} call #t~ret20 := main(); {11713#true} is VALID [2022-04-28 04:14:37,225 INFO L290 TraceCheckUtils]: 5: Hoare triple {11713#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {11713#true} is VALID [2022-04-28 04:14:37,226 INFO L272 TraceCheckUtils]: 6: Hoare triple {11713#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {11713#true} is VALID [2022-04-28 04:14:37,226 INFO L290 TraceCheckUtils]: 7: Hoare triple {11713#true} ~cond := #in~cond; {11713#true} is VALID [2022-04-28 04:14:37,226 INFO L290 TraceCheckUtils]: 8: Hoare triple {11713#true} assume !(0 == ~cond); {11713#true} is VALID [2022-04-28 04:14:37,226 INFO L290 TraceCheckUtils]: 9: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:37,226 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11713#true} {11713#true} #142#return; {11713#true} is VALID [2022-04-28 04:14:37,226 INFO L272 TraceCheckUtils]: 11: Hoare triple {11713#true} call #t~ret14 := is_pow2(~n~0); {11713#true} is VALID [2022-04-28 04:14:37,226 INFO L290 TraceCheckUtils]: 12: Hoare triple {11713#true} ~x := #in~x; {11713#true} is VALID [2022-04-28 04:14:37,226 INFO L290 TraceCheckUtils]: 13: Hoare triple {11713#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {11713#true} is VALID [2022-04-28 04:14:37,226 INFO L290 TraceCheckUtils]: 14: Hoare triple {11713#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {11713#true} is VALID [2022-04-28 04:14:37,226 INFO L290 TraceCheckUtils]: 15: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:37,226 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {11713#true} {11713#true} #144#return; {11713#true} is VALID [2022-04-28 04:14:37,226 INFO L290 TraceCheckUtils]: 17: Hoare triple {11713#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {11713#true} is VALID [2022-04-28 04:14:37,226 INFO L272 TraceCheckUtils]: 18: Hoare triple {11713#true} call assume_abort_if_not(#t~ret14); {11713#true} is VALID [2022-04-28 04:14:37,226 INFO L290 TraceCheckUtils]: 19: Hoare triple {11713#true} ~cond := #in~cond; {11713#true} is VALID [2022-04-28 04:14:37,227 INFO L290 TraceCheckUtils]: 20: Hoare triple {11713#true} assume !(0 == ~cond); {11713#true} is VALID [2022-04-28 04:14:37,227 INFO L290 TraceCheckUtils]: 21: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:37,227 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {11713#true} {11713#true} #146#return; {11713#true} is VALID [2022-04-28 04:14:37,227 INFO L290 TraceCheckUtils]: 23: Hoare triple {11713#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {11713#true} is VALID [2022-04-28 04:14:37,227 INFO L272 TraceCheckUtils]: 24: Hoare triple {11713#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {11713#true} is VALID [2022-04-28 04:14:37,227 INFO L290 TraceCheckUtils]: 25: Hoare triple {11713#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {11713#true} is VALID [2022-04-28 04:14:37,227 INFO L290 TraceCheckUtils]: 26: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:37,227 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {11713#true} {11713#true} #148#return; {11713#true} is VALID [2022-04-28 04:14:37,227 INFO L290 TraceCheckUtils]: 28: Hoare triple {11713#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {11713#true} is VALID [2022-04-28 04:14:37,227 INFO L272 TraceCheckUtils]: 29: Hoare triple {11713#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {11713#true} is VALID [2022-04-28 04:14:37,227 INFO L290 TraceCheckUtils]: 30: Hoare triple {11713#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {11713#true} is VALID [2022-04-28 04:14:37,227 INFO L290 TraceCheckUtils]: 31: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:37,227 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {11713#true} {11713#true} #150#return; {11713#true} is VALID [2022-04-28 04:14:37,228 INFO L290 TraceCheckUtils]: 33: Hoare triple {11713#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {11868#(<= 0 main_~i~1)} is VALID [2022-04-28 04:14:37,228 INFO L290 TraceCheckUtils]: 34: Hoare triple {11868#(<= 0 main_~i~1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {11868#(<= 0 main_~i~1)} is VALID [2022-04-28 04:14:37,228 INFO L290 TraceCheckUtils]: 35: Hoare triple {11868#(<= 0 main_~i~1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {11738#(<= 1 main_~i~1)} is VALID [2022-04-28 04:14:37,229 INFO L290 TraceCheckUtils]: 36: Hoare triple {11738#(<= 1 main_~i~1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {11738#(<= 1 main_~i~1)} is VALID [2022-04-28 04:14:37,229 INFO L290 TraceCheckUtils]: 37: Hoare triple {11738#(<= 1 main_~i~1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {11739#(<= 2 main_~i~1)} is VALID [2022-04-28 04:14:37,230 INFO L290 TraceCheckUtils]: 38: Hoare triple {11739#(<= 2 main_~i~1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {11740#(<= 3 main_~n~0)} is VALID [2022-04-28 04:14:37,230 INFO L290 TraceCheckUtils]: 39: Hoare triple {11740#(<= 3 main_~n~0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {11740#(<= 3 main_~n~0)} is VALID [2022-04-28 04:14:37,230 INFO L290 TraceCheckUtils]: 40: Hoare triple {11740#(<= 3 main_~n~0)} assume !(~i~1 < ~n~0); {11740#(<= 3 main_~n~0)} is VALID [2022-04-28 04:14:37,230 INFO L272 TraceCheckUtils]: 41: Hoare triple {11740#(<= 3 main_~n~0)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {11713#true} is VALID [2022-04-28 04:14:37,231 INFO L290 TraceCheckUtils]: 42: Hoare triple {11713#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {11896#(and (<= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:14:37,231 INFO L290 TraceCheckUtils]: 43: Hoare triple {11896#(and (<= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {11896#(and (<= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:14:37,232 INFO L290 TraceCheckUtils]: 44: Hoare triple {11896#(and (<= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {11896#(and (<= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:14:37,232 INFO L290 TraceCheckUtils]: 45: Hoare triple {11896#(and (<= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {11896#(and (<= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:14:37,232 INFO L290 TraceCheckUtils]: 46: Hoare triple {11896#(and (<= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} assume !(~left~0 < ~n); {11896#(and (<= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:14:37,233 INFO L290 TraceCheckUtils]: 47: Hoare triple {11896#(and (<= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} ~space~0 := 2 * ~space~0; {11912#(and (<= (div (- upsweep_~space~0) (- 2)) 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:14:37,234 INFO L290 TraceCheckUtils]: 48: Hoare triple {11912#(and (<= (div (- upsweep_~space~0) (- 2)) 1) (<= |upsweep_#in~n| upsweep_~n))} assume !(~space~0 < ~n); {11916#(<= (div (- |upsweep_#in~n|) (- 2)) 1)} is VALID [2022-04-28 04:14:37,234 INFO L290 TraceCheckUtils]: 49: Hoare triple {11916#(<= (div (- |upsweep_#in~n|) (- 2)) 1)} #res := ~space~0; {11916#(<= (div (- |upsweep_#in~n|) (- 2)) 1)} is VALID [2022-04-28 04:14:37,234 INFO L290 TraceCheckUtils]: 50: Hoare triple {11916#(<= (div (- |upsweep_#in~n|) (- 2)) 1)} assume true; {11916#(<= (div (- |upsweep_#in~n|) (- 2)) 1)} is VALID [2022-04-28 04:14:37,235 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {11916#(<= (div (- |upsweep_#in~n|) (- 2)) 1)} {11740#(<= 3 main_~n~0)} #152#return; {11714#false} is VALID [2022-04-28 04:14:37,235 INFO L290 TraceCheckUtils]: 52: Hoare triple {11714#false} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {11714#false} is VALID [2022-04-28 04:14:37,235 INFO L272 TraceCheckUtils]: 53: Hoare triple {11714#false} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {11714#false} is VALID [2022-04-28 04:14:37,235 INFO L290 TraceCheckUtils]: 54: Hoare triple {11714#false} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {11714#false} is VALID [2022-04-28 04:14:37,235 INFO L290 TraceCheckUtils]: 55: Hoare triple {11714#false} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {11714#false} is VALID [2022-04-28 04:14:37,235 INFO L290 TraceCheckUtils]: 56: Hoare triple {11714#false} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {11714#false} is VALID [2022-04-28 04:14:37,235 INFO L290 TraceCheckUtils]: 57: Hoare triple {11714#false} assume !(~right~1 < ~n); {11714#false} is VALID [2022-04-28 04:14:37,236 INFO L290 TraceCheckUtils]: 58: Hoare triple {11714#false} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {11714#false} is VALID [2022-04-28 04:14:37,236 INFO L290 TraceCheckUtils]: 59: Hoare triple {11714#false} assume !(~space > 0); {11714#false} is VALID [2022-04-28 04:14:37,236 INFO L290 TraceCheckUtils]: 60: Hoare triple {11714#false} assume true; {11714#false} is VALID [2022-04-28 04:14:37,236 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {11714#false} {11714#false} #154#return; {11714#false} is VALID [2022-04-28 04:14:37,236 INFO L272 TraceCheckUtils]: 62: Hoare triple {11714#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {11714#false} is VALID [2022-04-28 04:14:37,236 INFO L290 TraceCheckUtils]: 63: Hoare triple {11714#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {11714#false} is VALID [2022-04-28 04:14:37,236 INFO L290 TraceCheckUtils]: 64: Hoare triple {11714#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {11714#false} is VALID [2022-04-28 04:14:37,236 INFO L272 TraceCheckUtils]: 65: Hoare triple {11714#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {11714#false} is VALID [2022-04-28 04:14:37,236 INFO L290 TraceCheckUtils]: 66: Hoare triple {11714#false} ~cond := #in~cond; {11714#false} is VALID [2022-04-28 04:14:37,236 INFO L290 TraceCheckUtils]: 67: Hoare triple {11714#false} assume 0 == ~cond; {11714#false} is VALID [2022-04-28 04:14:37,236 INFO L290 TraceCheckUtils]: 68: Hoare triple {11714#false} assume !false; {11714#false} is VALID [2022-04-28 04:14:37,236 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 4 proven. 6 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-04-28 04:14:37,236 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:14:37,774 INFO L290 TraceCheckUtils]: 68: Hoare triple {11714#false} assume !false; {11714#false} is VALID [2022-04-28 04:14:37,774 INFO L290 TraceCheckUtils]: 67: Hoare triple {11714#false} assume 0 == ~cond; {11714#false} is VALID [2022-04-28 04:14:37,775 INFO L290 TraceCheckUtils]: 66: Hoare triple {11714#false} ~cond := #in~cond; {11714#false} is VALID [2022-04-28 04:14:37,775 INFO L272 TraceCheckUtils]: 65: Hoare triple {11714#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {11714#false} is VALID [2022-04-28 04:14:37,775 INFO L290 TraceCheckUtils]: 64: Hoare triple {11714#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {11714#false} is VALID [2022-04-28 04:14:37,775 INFO L290 TraceCheckUtils]: 63: Hoare triple {11714#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {11714#false} is VALID [2022-04-28 04:14:37,775 INFO L272 TraceCheckUtils]: 62: Hoare triple {11714#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {11714#false} is VALID [2022-04-28 04:14:37,775 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {11713#true} {11714#false} #154#return; {11714#false} is VALID [2022-04-28 04:14:37,775 INFO L290 TraceCheckUtils]: 60: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:37,775 INFO L290 TraceCheckUtils]: 59: Hoare triple {11713#true} assume !(~space > 0); {11713#true} is VALID [2022-04-28 04:14:37,775 INFO L290 TraceCheckUtils]: 58: Hoare triple {11713#true} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {11713#true} is VALID [2022-04-28 04:14:37,775 INFO L290 TraceCheckUtils]: 57: Hoare triple {11713#true} assume !(~right~1 < ~n); {11713#true} is VALID [2022-04-28 04:14:37,775 INFO L290 TraceCheckUtils]: 56: Hoare triple {11713#true} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {11713#true} is VALID [2022-04-28 04:14:37,775 INFO L290 TraceCheckUtils]: 55: Hoare triple {11713#true} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {11713#true} is VALID [2022-04-28 04:14:37,775 INFO L290 TraceCheckUtils]: 54: Hoare triple {11713#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {11713#true} is VALID [2022-04-28 04:14:37,775 INFO L272 TraceCheckUtils]: 53: Hoare triple {11714#false} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {11713#true} is VALID [2022-04-28 04:14:37,776 INFO L290 TraceCheckUtils]: 52: Hoare triple {11714#false} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {11714#false} is VALID [2022-04-28 04:14:37,776 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {11916#(<= (div (- |upsweep_#in~n|) (- 2)) 1)} {11740#(<= 3 main_~n~0)} #152#return; {11714#false} is VALID [2022-04-28 04:14:37,777 INFO L290 TraceCheckUtils]: 50: Hoare triple {11916#(<= (div (- |upsweep_#in~n|) (- 2)) 1)} assume true; {11916#(<= (div (- |upsweep_#in~n|) (- 2)) 1)} is VALID [2022-04-28 04:14:37,777 INFO L290 TraceCheckUtils]: 49: Hoare triple {11916#(<= (div (- |upsweep_#in~n|) (- 2)) 1)} #res := ~space~0; {11916#(<= (div (- |upsweep_#in~n|) (- 2)) 1)} is VALID [2022-04-28 04:14:37,777 INFO L290 TraceCheckUtils]: 48: Hoare triple {12040#(or (<= (div (- |upsweep_#in~n|) (- 2)) 1) (< upsweep_~space~0 upsweep_~n))} assume !(~space~0 < ~n); {11916#(<= (div (- |upsweep_#in~n|) (- 2)) 1)} is VALID [2022-04-28 04:14:37,778 INFO L290 TraceCheckUtils]: 47: Hoare triple {12044#(or (<= (div (- |upsweep_#in~n|) (- 2)) 1) (< (* 2 upsweep_~space~0) upsweep_~n))} ~space~0 := 2 * ~space~0; {12040#(or (<= (div (- |upsweep_#in~n|) (- 2)) 1) (< upsweep_~space~0 upsweep_~n))} is VALID [2022-04-28 04:14:37,778 INFO L290 TraceCheckUtils]: 46: Hoare triple {12044#(or (<= (div (- |upsweep_#in~n|) (- 2)) 1) (< (* 2 upsweep_~space~0) upsweep_~n))} assume !(~left~0 < ~n); {12044#(or (<= (div (- |upsweep_#in~n|) (- 2)) 1) (< (* 2 upsweep_~space~0) upsweep_~n))} is VALID [2022-04-28 04:14:37,779 INFO L290 TraceCheckUtils]: 45: Hoare triple {12044#(or (<= (div (- |upsweep_#in~n|) (- 2)) 1) (< (* 2 upsweep_~space~0) upsweep_~n))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {12044#(or (<= (div (- |upsweep_#in~n|) (- 2)) 1) (< (* 2 upsweep_~space~0) upsweep_~n))} is VALID [2022-04-28 04:14:37,779 INFO L290 TraceCheckUtils]: 44: Hoare triple {12044#(or (<= (div (- |upsweep_#in~n|) (- 2)) 1) (< (* 2 upsweep_~space~0) upsweep_~n))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {12044#(or (<= (div (- |upsweep_#in~n|) (- 2)) 1) (< (* 2 upsweep_~space~0) upsweep_~n))} is VALID [2022-04-28 04:14:37,780 INFO L290 TraceCheckUtils]: 43: Hoare triple {12044#(or (<= (div (- |upsweep_#in~n|) (- 2)) 1) (< (* 2 upsweep_~space~0) upsweep_~n))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {12044#(or (<= (div (- |upsweep_#in~n|) (- 2)) 1) (< (* 2 upsweep_~space~0) upsweep_~n))} is VALID [2022-04-28 04:14:37,780 INFO L290 TraceCheckUtils]: 42: Hoare triple {11713#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {12044#(or (<= (div (- |upsweep_#in~n|) (- 2)) 1) (< (* 2 upsweep_~space~0) upsweep_~n))} is VALID [2022-04-28 04:14:37,780 INFO L272 TraceCheckUtils]: 41: Hoare triple {11740#(<= 3 main_~n~0)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {11713#true} is VALID [2022-04-28 04:14:37,781 INFO L290 TraceCheckUtils]: 40: Hoare triple {11740#(<= 3 main_~n~0)} assume !(~i~1 < ~n~0); {11740#(<= 3 main_~n~0)} is VALID [2022-04-28 04:14:37,781 INFO L290 TraceCheckUtils]: 39: Hoare triple {11740#(<= 3 main_~n~0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {11740#(<= 3 main_~n~0)} is VALID [2022-04-28 04:14:37,781 INFO L290 TraceCheckUtils]: 38: Hoare triple {11739#(<= 2 main_~i~1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {11740#(<= 3 main_~n~0)} is VALID [2022-04-28 04:14:37,782 INFO L290 TraceCheckUtils]: 37: Hoare triple {11738#(<= 1 main_~i~1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {11739#(<= 2 main_~i~1)} is VALID [2022-04-28 04:14:37,782 INFO L290 TraceCheckUtils]: 36: Hoare triple {11738#(<= 1 main_~i~1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {11738#(<= 1 main_~i~1)} is VALID [2022-04-28 04:14:37,783 INFO L290 TraceCheckUtils]: 35: Hoare triple {11868#(<= 0 main_~i~1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {11738#(<= 1 main_~i~1)} is VALID [2022-04-28 04:14:37,783 INFO L290 TraceCheckUtils]: 34: Hoare triple {11868#(<= 0 main_~i~1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {11868#(<= 0 main_~i~1)} is VALID [2022-04-28 04:14:37,783 INFO L290 TraceCheckUtils]: 33: Hoare triple {11713#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {11868#(<= 0 main_~i~1)} is VALID [2022-04-28 04:14:37,783 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {11713#true} {11713#true} #150#return; {11713#true} is VALID [2022-04-28 04:14:37,783 INFO L290 TraceCheckUtils]: 31: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:37,783 INFO L290 TraceCheckUtils]: 30: Hoare triple {11713#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {11713#true} is VALID [2022-04-28 04:14:37,783 INFO L272 TraceCheckUtils]: 29: Hoare triple {11713#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {11713#true} is VALID [2022-04-28 04:14:37,784 INFO L290 TraceCheckUtils]: 28: Hoare triple {11713#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {11713#true} is VALID [2022-04-28 04:14:37,784 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {11713#true} {11713#true} #148#return; {11713#true} is VALID [2022-04-28 04:14:37,784 INFO L290 TraceCheckUtils]: 26: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:37,784 INFO L290 TraceCheckUtils]: 25: Hoare triple {11713#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {11713#true} is VALID [2022-04-28 04:14:37,784 INFO L272 TraceCheckUtils]: 24: Hoare triple {11713#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {11713#true} is VALID [2022-04-28 04:14:37,784 INFO L290 TraceCheckUtils]: 23: Hoare triple {11713#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {11713#true} is VALID [2022-04-28 04:14:37,784 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {11713#true} {11713#true} #146#return; {11713#true} is VALID [2022-04-28 04:14:37,784 INFO L290 TraceCheckUtils]: 21: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:37,784 INFO L290 TraceCheckUtils]: 20: Hoare triple {11713#true} assume !(0 == ~cond); {11713#true} is VALID [2022-04-28 04:14:37,784 INFO L290 TraceCheckUtils]: 19: Hoare triple {11713#true} ~cond := #in~cond; {11713#true} is VALID [2022-04-28 04:14:37,784 INFO L272 TraceCheckUtils]: 18: Hoare triple {11713#true} call assume_abort_if_not(#t~ret14); {11713#true} is VALID [2022-04-28 04:14:37,784 INFO L290 TraceCheckUtils]: 17: Hoare triple {11713#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {11713#true} is VALID [2022-04-28 04:14:37,784 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {11713#true} {11713#true} #144#return; {11713#true} is VALID [2022-04-28 04:14:37,784 INFO L290 TraceCheckUtils]: 15: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:37,785 INFO L290 TraceCheckUtils]: 14: Hoare triple {11713#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {11713#true} is VALID [2022-04-28 04:14:37,785 INFO L290 TraceCheckUtils]: 13: Hoare triple {11713#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {11713#true} is VALID [2022-04-28 04:14:37,785 INFO L290 TraceCheckUtils]: 12: Hoare triple {11713#true} ~x := #in~x; {11713#true} is VALID [2022-04-28 04:14:37,785 INFO L272 TraceCheckUtils]: 11: Hoare triple {11713#true} call #t~ret14 := is_pow2(~n~0); {11713#true} is VALID [2022-04-28 04:14:37,785 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11713#true} {11713#true} #142#return; {11713#true} is VALID [2022-04-28 04:14:37,785 INFO L290 TraceCheckUtils]: 9: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:37,785 INFO L290 TraceCheckUtils]: 8: Hoare triple {11713#true} assume !(0 == ~cond); {11713#true} is VALID [2022-04-28 04:14:37,785 INFO L290 TraceCheckUtils]: 7: Hoare triple {11713#true} ~cond := #in~cond; {11713#true} is VALID [2022-04-28 04:14:37,785 INFO L272 TraceCheckUtils]: 6: Hoare triple {11713#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {11713#true} is VALID [2022-04-28 04:14:37,785 INFO L290 TraceCheckUtils]: 5: Hoare triple {11713#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {11713#true} is VALID [2022-04-28 04:14:37,785 INFO L272 TraceCheckUtils]: 4: Hoare triple {11713#true} call #t~ret20 := main(); {11713#true} is VALID [2022-04-28 04:14:37,785 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11713#true} {11713#true} #160#return; {11713#true} is VALID [2022-04-28 04:14:37,785 INFO L290 TraceCheckUtils]: 2: Hoare triple {11713#true} assume true; {11713#true} is VALID [2022-04-28 04:14:37,785 INFO L290 TraceCheckUtils]: 1: Hoare triple {11713#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {11713#true} is VALID [2022-04-28 04:14:37,785 INFO L272 TraceCheckUtils]: 0: Hoare triple {11713#true} call ULTIMATE.init(); {11713#true} is VALID [2022-04-28 04:14:37,786 INFO L134 CoverageAnalysis]: Checked inductivity of 22 backedges. 4 proven. 6 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-04-28 04:14:37,786 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1892226449] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:14:37,786 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-28 04:14:37,786 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 9, 9] total 19 [2022-04-28 04:14:37,786 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:14:37,786 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1549449555] [2022-04-28 04:14:37,786 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1549449555] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:14:37,786 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:14:37,786 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-28 04:14:37,786 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1997595597] [2022-04-28 04:14:37,786 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:14:37,787 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 13 states have (on average 3.4615384615384617) internal successors, (45), 11 states have internal predecessors, (45), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) Word has length 69 [2022-04-28 04:14:37,787 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:14:37,787 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 13 states, 13 states have (on average 3.4615384615384617) internal successors, (45), 11 states have internal predecessors, (45), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:14:37,826 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:14:37,826 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-04-28 04:14:37,826 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:14:37,826 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-04-28 04:14:37,827 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=47, Invalid=295, Unknown=0, NotChecked=0, Total=342 [2022-04-28 04:14:37,827 INFO L87 Difference]: Start difference. First operand 103 states and 125 transitions. Second operand has 13 states, 13 states have (on average 3.4615384615384617) internal successors, (45), 11 states have internal predecessors, (45), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:14:42,184 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:14:44,324 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.14s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:14:46,456 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.13s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:14:48,596 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.14s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:14:55,057 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:14:59,345 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:15:01,061 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:15:01,061 INFO L93 Difference]: Finished difference Result 165 states and 203 transitions. [2022-04-28 04:15:01,061 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-04-28 04:15:01,061 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 13 states have (on average 3.4615384615384617) internal successors, (45), 11 states have internal predecessors, (45), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) Word has length 69 [2022-04-28 04:15:01,061 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:15:01,062 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 13 states have (on average 3.4615384615384617) internal successors, (45), 11 states have internal predecessors, (45), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:15:01,062 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 111 transitions. [2022-04-28 04:15:01,063 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 13 states have (on average 3.4615384615384617) internal successors, (45), 11 states have internal predecessors, (45), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:15:01,064 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 111 transitions. [2022-04-28 04:15:01,065 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 15 states and 111 transitions. [2022-04-28 04:15:01,149 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 111 edges. 111 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:15:01,163 INFO L225 Difference]: With dead ends: 165 [2022-04-28 04:15:01,163 INFO L226 Difference]: Without dead ends: 110 [2022-04-28 04:15:01,164 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 176 GetRequests, 145 SyntacticMatches, 3 SemanticMatches, 28 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 86 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=131, Invalid=739, Unknown=0, NotChecked=0, Total=870 [2022-04-28 04:15:01,164 INFO L413 NwaCegarLoop]: 47 mSDtfsCounter, 77 mSDsluCounter, 18 mSDsCounter, 0 mSdLazyCounter, 724 mSolverCounterSat, 63 mSolverCounterUnsat, 6 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 12.7s Time, 0 mProtectedPredicate, 0 mProtectedAction, 78 SdHoareTripleChecker+Valid, 65 SdHoareTripleChecker+Invalid, 793 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 63 IncrementalHoareTripleChecker+Valid, 724 IncrementalHoareTripleChecker+Invalid, 6 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 13.3s IncrementalHoareTripleChecker+Time [2022-04-28 04:15:01,164 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [78 Valid, 65 Invalid, 793 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [63 Valid, 724 Invalid, 6 Unknown, 0 Unchecked, 13.3s Time] [2022-04-28 04:15:01,165 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 110 states. [2022-04-28 04:15:01,460 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 110 to 109. [2022-04-28 04:15:01,461 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:15:01,461 INFO L82 GeneralOperation]: Start isEquivalent. First operand 110 states. Second operand has 109 states, 82 states have (on average 1.2439024390243902) internal successors, (102), 86 states have internal predecessors, (102), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) [2022-04-28 04:15:01,461 INFO L74 IsIncluded]: Start isIncluded. First operand 110 states. Second operand has 109 states, 82 states have (on average 1.2439024390243902) internal successors, (102), 86 states have internal predecessors, (102), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) [2022-04-28 04:15:01,461 INFO L87 Difference]: Start difference. First operand 110 states. Second operand has 109 states, 82 states have (on average 1.2439024390243902) internal successors, (102), 86 states have internal predecessors, (102), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) [2022-04-28 04:15:01,463 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:15:01,463 INFO L93 Difference]: Finished difference Result 110 states and 134 transitions. [2022-04-28 04:15:01,463 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 134 transitions. [2022-04-28 04:15:01,463 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:15:01,463 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:15:01,464 INFO L74 IsIncluded]: Start isIncluded. First operand has 109 states, 82 states have (on average 1.2439024390243902) internal successors, (102), 86 states have internal predecessors, (102), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) Second operand 110 states. [2022-04-28 04:15:01,464 INFO L87 Difference]: Start difference. First operand has 109 states, 82 states have (on average 1.2439024390243902) internal successors, (102), 86 states have internal predecessors, (102), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) Second operand 110 states. [2022-04-28 04:15:01,465 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:15:01,465 INFO L93 Difference]: Finished difference Result 110 states and 134 transitions. [2022-04-28 04:15:01,465 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 134 transitions. [2022-04-28 04:15:01,466 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:15:01,466 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:15:01,466 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:15:01,466 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:15:01,466 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 109 states, 82 states have (on average 1.2439024390243902) internal successors, (102), 86 states have internal predecessors, (102), 15 states have call successors, (15), 11 states have call predecessors, (15), 11 states have return successors, (16), 11 states have call predecessors, (16), 12 states have call successors, (16) [2022-04-28 04:15:01,467 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 109 states to 109 states and 133 transitions. [2022-04-28 04:15:01,467 INFO L78 Accepts]: Start accepts. Automaton has 109 states and 133 transitions. Word has length 69 [2022-04-28 04:15:01,468 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:15:01,468 INFO L495 AbstractCegarLoop]: Abstraction has 109 states and 133 transitions. [2022-04-28 04:15:01,468 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 13 states, 13 states have (on average 3.4615384615384617) internal successors, (45), 11 states have internal predecessors, (45), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 2 states have call predecessors, (8), 3 states have call successors, (8) [2022-04-28 04:15:01,468 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 109 states and 133 transitions. [2022-04-28 04:15:01,761 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 133 edges. 133 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:15:01,761 INFO L276 IsEmpty]: Start isEmpty. Operand 109 states and 133 transitions. [2022-04-28 04:15:01,762 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 71 [2022-04-28 04:15:01,762 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:15:01,762 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1] [2022-04-28 04:15:01,780 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (13)] Forceful destruction successful, exit code 0 [2022-04-28 04:15:01,962 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 13 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable13 [2022-04-28 04:15:01,963 INFO L420 AbstractCegarLoop]: === Iteration 15 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:15:01,963 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:15:01,963 INFO L85 PathProgramCache]: Analyzing trace with hash -1405616165, now seen corresponding path program 9 times [2022-04-28 04:15:01,963 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:15:01,963 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [2062530282] [2022-04-28 04:15:01,963 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:15:01,963 INFO L85 PathProgramCache]: Analyzing trace with hash -1405616165, now seen corresponding path program 10 times [2022-04-28 04:15:01,963 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:15:01,963 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1323199036] [2022-04-28 04:15:01,964 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:15:01,964 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:15:01,998 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:02,051 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:15:02,052 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:02,053 INFO L290 TraceCheckUtils]: 0: Hoare triple {13025#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {12976#true} is VALID [2022-04-28 04:15:02,054 INFO L290 TraceCheckUtils]: 1: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,054 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {12976#true} {12976#true} #160#return; {12976#true} is VALID [2022-04-28 04:15:02,054 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:15:02,054 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:02,055 INFO L290 TraceCheckUtils]: 0: Hoare triple {12976#true} ~cond := #in~cond; {12976#true} is VALID [2022-04-28 04:15:02,055 INFO L290 TraceCheckUtils]: 1: Hoare triple {12976#true} assume !(0 == ~cond); {12976#true} is VALID [2022-04-28 04:15:02,055 INFO L290 TraceCheckUtils]: 2: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,055 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {12976#true} {12976#true} #142#return; {12976#true} is VALID [2022-04-28 04:15:02,056 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:15:02,056 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:02,058 INFO L290 TraceCheckUtils]: 0: Hoare triple {12976#true} ~x := #in~x; {12976#true} is VALID [2022-04-28 04:15:02,058 INFO L290 TraceCheckUtils]: 1: Hoare triple {12976#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {12976#true} is VALID [2022-04-28 04:15:02,058 INFO L290 TraceCheckUtils]: 2: Hoare triple {12976#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {12976#true} is VALID [2022-04-28 04:15:02,058 INFO L290 TraceCheckUtils]: 3: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,058 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {12976#true} {12976#true} #144#return; {12976#true} is VALID [2022-04-28 04:15:02,058 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:15:02,058 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:02,059 INFO L290 TraceCheckUtils]: 0: Hoare triple {12976#true} ~cond := #in~cond; {12976#true} is VALID [2022-04-28 04:15:02,060 INFO L290 TraceCheckUtils]: 1: Hoare triple {12976#true} assume !(0 == ~cond); {12976#true} is VALID [2022-04-28 04:15:02,060 INFO L290 TraceCheckUtils]: 2: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,060 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {12976#true} {12976#true} #146#return; {12976#true} is VALID [2022-04-28 04:15:02,065 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:15:02,066 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:02,067 INFO L290 TraceCheckUtils]: 0: Hoare triple {13026#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {12976#true} is VALID [2022-04-28 04:15:02,067 INFO L290 TraceCheckUtils]: 1: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,068 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {12976#true} {12976#true} #148#return; {12976#true} is VALID [2022-04-28 04:15:02,068 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:15:02,068 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:02,070 INFO L290 TraceCheckUtils]: 0: Hoare triple {13026#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {12976#true} is VALID [2022-04-28 04:15:02,070 INFO L290 TraceCheckUtils]: 1: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,070 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {12976#true} {12976#true} #150#return; {12976#true} is VALID [2022-04-28 04:15:02,070 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 39 [2022-04-28 04:15:02,072 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:02,074 INFO L290 TraceCheckUtils]: 0: Hoare triple {13026#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {12976#true} is VALID [2022-04-28 04:15:02,074 INFO L290 TraceCheckUtils]: 1: Hoare triple {12976#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {12976#true} is VALID [2022-04-28 04:15:02,074 INFO L290 TraceCheckUtils]: 2: Hoare triple {12976#true} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {12976#true} is VALID [2022-04-28 04:15:02,074 INFO L290 TraceCheckUtils]: 3: Hoare triple {12976#true} assume !(~left~0 < ~n); {12976#true} is VALID [2022-04-28 04:15:02,074 INFO L290 TraceCheckUtils]: 4: Hoare triple {12976#true} ~space~0 := 2 * ~space~0; {12976#true} is VALID [2022-04-28 04:15:02,074 INFO L290 TraceCheckUtils]: 5: Hoare triple {12976#true} assume !(~space~0 < ~n); {12976#true} is VALID [2022-04-28 04:15:02,074 INFO L290 TraceCheckUtils]: 6: Hoare triple {12976#true} #res := ~space~0; {12976#true} is VALID [2022-04-28 04:15:02,075 INFO L290 TraceCheckUtils]: 7: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,075 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {12976#true} {13003#(<= main_~n~0 2)} #152#return; {13003#(<= main_~n~0 2)} is VALID [2022-04-28 04:15:02,075 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 50 [2022-04-28 04:15:02,093 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:02,191 INFO L290 TraceCheckUtils]: 0: Hoare triple {13026#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {13027#(= downsweep_~n |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,192 INFO L290 TraceCheckUtils]: 1: Hoare triple {13027#(= downsweep_~n |downsweep_#in~n|)} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {13028#(and (<= (* 2 downsweep_~space) (+ downsweep_~right~1 1)) (= downsweep_~n |downsweep_#in~n|) (<= 1 downsweep_~space))} is VALID [2022-04-28 04:15:02,192 INFO L290 TraceCheckUtils]: 2: Hoare triple {13028#(and (<= (* 2 downsweep_~space) (+ downsweep_~right~1 1)) (= downsweep_~n |downsweep_#in~n|) (<= 1 downsweep_~space))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {13029#(and (= downsweep_~n |downsweep_#in~n|) (<= (* 2 downsweep_~space) downsweep_~n) (<= 1 downsweep_~space))} is VALID [2022-04-28 04:15:02,193 INFO L290 TraceCheckUtils]: 3: Hoare triple {13029#(and (= downsweep_~n |downsweep_#in~n|) (<= (* 2 downsweep_~space) downsweep_~n) (<= 1 downsweep_~space))} assume !(~right~1 < ~n); {13029#(and (= downsweep_~n |downsweep_#in~n|) (<= (* 2 downsweep_~space) downsweep_~n) (<= 1 downsweep_~space))} is VALID [2022-04-28 04:15:02,194 INFO L290 TraceCheckUtils]: 4: Hoare triple {13029#(and (= downsweep_~n |downsweep_#in~n|) (<= (* 2 downsweep_~space) downsweep_~n) (<= 1 downsweep_~space))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {13030#(and (= downsweep_~n |downsweep_#in~n|) (<= (* downsweep_~space 4) downsweep_~n))} is VALID [2022-04-28 04:15:02,194 INFO L290 TraceCheckUtils]: 5: Hoare triple {13030#(and (= downsweep_~n |downsweep_#in~n|) (<= (* downsweep_~space 4) downsweep_~n))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {13031#(and (= downsweep_~n |downsweep_#in~n|) (<= 4 downsweep_~n))} is VALID [2022-04-28 04:15:02,195 INFO L290 TraceCheckUtils]: 6: Hoare triple {13031#(and (= downsweep_~n |downsweep_#in~n|) (<= 4 downsweep_~n))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {13031#(and (= downsweep_~n |downsweep_#in~n|) (<= 4 downsweep_~n))} is VALID [2022-04-28 04:15:02,195 INFO L290 TraceCheckUtils]: 7: Hoare triple {13031#(and (= downsweep_~n |downsweep_#in~n|) (<= 4 downsweep_~n))} assume !(~right~1 < ~n); {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,196 INFO L290 TraceCheckUtils]: 8: Hoare triple {13032#(<= 4 |downsweep_#in~n|)} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,196 INFO L290 TraceCheckUtils]: 9: Hoare triple {13032#(<= 4 |downsweep_#in~n|)} assume !(~space > 0); {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,196 INFO L290 TraceCheckUtils]: 10: Hoare triple {13032#(<= 4 |downsweep_#in~n|)} assume true; {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,197 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {13032#(<= 4 |downsweep_#in~n|)} {13003#(<= main_~n~0 2)} #154#return; {12977#false} is VALID [2022-04-28 04:15:02,198 INFO L272 TraceCheckUtils]: 0: Hoare triple {12976#true} call ULTIMATE.init(); {13025#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:15:02,198 INFO L290 TraceCheckUtils]: 1: Hoare triple {13025#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {12976#true} is VALID [2022-04-28 04:15:02,198 INFO L290 TraceCheckUtils]: 2: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,198 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {12976#true} {12976#true} #160#return; {12976#true} is VALID [2022-04-28 04:15:02,198 INFO L272 TraceCheckUtils]: 4: Hoare triple {12976#true} call #t~ret20 := main(); {12976#true} is VALID [2022-04-28 04:15:02,198 INFO L290 TraceCheckUtils]: 5: Hoare triple {12976#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {12976#true} is VALID [2022-04-28 04:15:02,198 INFO L272 TraceCheckUtils]: 6: Hoare triple {12976#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {12976#true} is VALID [2022-04-28 04:15:02,198 INFO L290 TraceCheckUtils]: 7: Hoare triple {12976#true} ~cond := #in~cond; {12976#true} is VALID [2022-04-28 04:15:02,198 INFO L290 TraceCheckUtils]: 8: Hoare triple {12976#true} assume !(0 == ~cond); {12976#true} is VALID [2022-04-28 04:15:02,198 INFO L290 TraceCheckUtils]: 9: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,198 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {12976#true} {12976#true} #142#return; {12976#true} is VALID [2022-04-28 04:15:02,198 INFO L272 TraceCheckUtils]: 11: Hoare triple {12976#true} call #t~ret14 := is_pow2(~n~0); {12976#true} is VALID [2022-04-28 04:15:02,198 INFO L290 TraceCheckUtils]: 12: Hoare triple {12976#true} ~x := #in~x; {12976#true} is VALID [2022-04-28 04:15:02,199 INFO L290 TraceCheckUtils]: 13: Hoare triple {12976#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {12976#true} is VALID [2022-04-28 04:15:02,199 INFO L290 TraceCheckUtils]: 14: Hoare triple {12976#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {12976#true} is VALID [2022-04-28 04:15:02,199 INFO L290 TraceCheckUtils]: 15: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,199 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {12976#true} {12976#true} #144#return; {12976#true} is VALID [2022-04-28 04:15:02,199 INFO L290 TraceCheckUtils]: 17: Hoare triple {12976#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {12976#true} is VALID [2022-04-28 04:15:02,199 INFO L272 TraceCheckUtils]: 18: Hoare triple {12976#true} call assume_abort_if_not(#t~ret14); {12976#true} is VALID [2022-04-28 04:15:02,199 INFO L290 TraceCheckUtils]: 19: Hoare triple {12976#true} ~cond := #in~cond; {12976#true} is VALID [2022-04-28 04:15:02,199 INFO L290 TraceCheckUtils]: 20: Hoare triple {12976#true} assume !(0 == ~cond); {12976#true} is VALID [2022-04-28 04:15:02,199 INFO L290 TraceCheckUtils]: 21: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,199 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {12976#true} {12976#true} #146#return; {12976#true} is VALID [2022-04-28 04:15:02,199 INFO L290 TraceCheckUtils]: 23: Hoare triple {12976#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {12976#true} is VALID [2022-04-28 04:15:02,203 INFO L272 TraceCheckUtils]: 24: Hoare triple {12976#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {13026#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:15:02,203 INFO L290 TraceCheckUtils]: 25: Hoare triple {13026#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {12976#true} is VALID [2022-04-28 04:15:02,203 INFO L290 TraceCheckUtils]: 26: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,203 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {12976#true} {12976#true} #148#return; {12976#true} is VALID [2022-04-28 04:15:02,203 INFO L290 TraceCheckUtils]: 28: Hoare triple {12976#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {12976#true} is VALID [2022-04-28 04:15:02,204 INFO L272 TraceCheckUtils]: 29: Hoare triple {12976#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {13026#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:15:02,204 INFO L290 TraceCheckUtils]: 30: Hoare triple {13026#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {12976#true} is VALID [2022-04-28 04:15:02,204 INFO L290 TraceCheckUtils]: 31: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,204 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {12976#true} {12976#true} #150#return; {12976#true} is VALID [2022-04-28 04:15:02,209 INFO L290 TraceCheckUtils]: 33: Hoare triple {12976#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {13000#(= main_~i~1 0)} is VALID [2022-04-28 04:15:02,209 INFO L290 TraceCheckUtils]: 34: Hoare triple {13000#(= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {13000#(= main_~i~1 0)} is VALID [2022-04-28 04:15:02,210 INFO L290 TraceCheckUtils]: 35: Hoare triple {13000#(= main_~i~1 0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {13001#(<= main_~i~1 1)} is VALID [2022-04-28 04:15:02,210 INFO L290 TraceCheckUtils]: 36: Hoare triple {13001#(<= main_~i~1 1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {13001#(<= main_~i~1 1)} is VALID [2022-04-28 04:15:02,210 INFO L290 TraceCheckUtils]: 37: Hoare triple {13001#(<= main_~i~1 1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {13002#(<= main_~i~1 2)} is VALID [2022-04-28 04:15:02,211 INFO L290 TraceCheckUtils]: 38: Hoare triple {13002#(<= main_~i~1 2)} assume !(~i~1 < ~n~0); {13003#(<= main_~n~0 2)} is VALID [2022-04-28 04:15:02,212 INFO L272 TraceCheckUtils]: 39: Hoare triple {13003#(<= main_~n~0 2)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {13026#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:15:02,212 INFO L290 TraceCheckUtils]: 40: Hoare triple {13026#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {12976#true} is VALID [2022-04-28 04:15:02,212 INFO L290 TraceCheckUtils]: 41: Hoare triple {12976#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {12976#true} is VALID [2022-04-28 04:15:02,212 INFO L290 TraceCheckUtils]: 42: Hoare triple {12976#true} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {12976#true} is VALID [2022-04-28 04:15:02,212 INFO L290 TraceCheckUtils]: 43: Hoare triple {12976#true} assume !(~left~0 < ~n); {12976#true} is VALID [2022-04-28 04:15:02,212 INFO L290 TraceCheckUtils]: 44: Hoare triple {12976#true} ~space~0 := 2 * ~space~0; {12976#true} is VALID [2022-04-28 04:15:02,212 INFO L290 TraceCheckUtils]: 45: Hoare triple {12976#true} assume !(~space~0 < ~n); {12976#true} is VALID [2022-04-28 04:15:02,212 INFO L290 TraceCheckUtils]: 46: Hoare triple {12976#true} #res := ~space~0; {12976#true} is VALID [2022-04-28 04:15:02,212 INFO L290 TraceCheckUtils]: 47: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,213 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {12976#true} {13003#(<= main_~n~0 2)} #152#return; {13003#(<= main_~n~0 2)} is VALID [2022-04-28 04:15:02,213 INFO L290 TraceCheckUtils]: 49: Hoare triple {13003#(<= main_~n~0 2)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {13003#(<= main_~n~0 2)} is VALID [2022-04-28 04:15:02,214 INFO L272 TraceCheckUtils]: 50: Hoare triple {13003#(<= main_~n~0 2)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {13026#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:15:02,214 INFO L290 TraceCheckUtils]: 51: Hoare triple {13026#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {13027#(= downsweep_~n |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,215 INFO L290 TraceCheckUtils]: 52: Hoare triple {13027#(= downsweep_~n |downsweep_#in~n|)} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {13028#(and (<= (* 2 downsweep_~space) (+ downsweep_~right~1 1)) (= downsweep_~n |downsweep_#in~n|) (<= 1 downsweep_~space))} is VALID [2022-04-28 04:15:02,216 INFO L290 TraceCheckUtils]: 53: Hoare triple {13028#(and (<= (* 2 downsweep_~space) (+ downsweep_~right~1 1)) (= downsweep_~n |downsweep_#in~n|) (<= 1 downsweep_~space))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {13029#(and (= downsweep_~n |downsweep_#in~n|) (<= (* 2 downsweep_~space) downsweep_~n) (<= 1 downsweep_~space))} is VALID [2022-04-28 04:15:02,216 INFO L290 TraceCheckUtils]: 54: Hoare triple {13029#(and (= downsweep_~n |downsweep_#in~n|) (<= (* 2 downsweep_~space) downsweep_~n) (<= 1 downsweep_~space))} assume !(~right~1 < ~n); {13029#(and (= downsweep_~n |downsweep_#in~n|) (<= (* 2 downsweep_~space) downsweep_~n) (<= 1 downsweep_~space))} is VALID [2022-04-28 04:15:02,217 INFO L290 TraceCheckUtils]: 55: Hoare triple {13029#(and (= downsweep_~n |downsweep_#in~n|) (<= (* 2 downsweep_~space) downsweep_~n) (<= 1 downsweep_~space))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {13030#(and (= downsweep_~n |downsweep_#in~n|) (<= (* downsweep_~space 4) downsweep_~n))} is VALID [2022-04-28 04:15:02,218 INFO L290 TraceCheckUtils]: 56: Hoare triple {13030#(and (= downsweep_~n |downsweep_#in~n|) (<= (* downsweep_~space 4) downsweep_~n))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {13031#(and (= downsweep_~n |downsweep_#in~n|) (<= 4 downsweep_~n))} is VALID [2022-04-28 04:15:02,218 INFO L290 TraceCheckUtils]: 57: Hoare triple {13031#(and (= downsweep_~n |downsweep_#in~n|) (<= 4 downsweep_~n))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {13031#(and (= downsweep_~n |downsweep_#in~n|) (<= 4 downsweep_~n))} is VALID [2022-04-28 04:15:02,219 INFO L290 TraceCheckUtils]: 58: Hoare triple {13031#(and (= downsweep_~n |downsweep_#in~n|) (<= 4 downsweep_~n))} assume !(~right~1 < ~n); {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,223 INFO L290 TraceCheckUtils]: 59: Hoare triple {13032#(<= 4 |downsweep_#in~n|)} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,224 INFO L290 TraceCheckUtils]: 60: Hoare triple {13032#(<= 4 |downsweep_#in~n|)} assume !(~space > 0); {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,224 INFO L290 TraceCheckUtils]: 61: Hoare triple {13032#(<= 4 |downsweep_#in~n|)} assume true; {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,225 INFO L284 TraceCheckUtils]: 62: Hoare quadruple {13032#(<= 4 |downsweep_#in~n|)} {13003#(<= main_~n~0 2)} #154#return; {12977#false} is VALID [2022-04-28 04:15:02,225 INFO L272 TraceCheckUtils]: 63: Hoare triple {12977#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {12977#false} is VALID [2022-04-28 04:15:02,225 INFO L290 TraceCheckUtils]: 64: Hoare triple {12977#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {12977#false} is VALID [2022-04-28 04:15:02,225 INFO L290 TraceCheckUtils]: 65: Hoare triple {12977#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {12977#false} is VALID [2022-04-28 04:15:02,225 INFO L272 TraceCheckUtils]: 66: Hoare triple {12977#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {12977#false} is VALID [2022-04-28 04:15:02,225 INFO L290 TraceCheckUtils]: 67: Hoare triple {12977#false} ~cond := #in~cond; {12977#false} is VALID [2022-04-28 04:15:02,225 INFO L290 TraceCheckUtils]: 68: Hoare triple {12977#false} assume 0 == ~cond; {12977#false} is VALID [2022-04-28 04:15:02,225 INFO L290 TraceCheckUtils]: 69: Hoare triple {12977#false} assume !false; {12977#false} is VALID [2022-04-28 04:15:02,226 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 1 proven. 12 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-04-28 04:15:02,226 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:15:02,226 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1323199036] [2022-04-28 04:15:02,226 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1323199036] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:15:02,226 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [521130622] [2022-04-28 04:15:02,226 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-28 04:15:02,226 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:15:02,226 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:15:02,227 INFO L229 MonitoredProcess]: Starting monitored process 14 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:15:02,228 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (14)] Waiting until timeout for monitored process [2022-04-28 04:15:02,309 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-28 04:15:02,310 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:15:02,310 INFO L263 TraceCheckSpWp]: Trace formula consists of 262 conjuncts, 11 conjunts are in the unsatisfiable core [2022-04-28 04:15:02,325 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:02,326 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:15:02,724 INFO L272 TraceCheckUtils]: 0: Hoare triple {12976#true} call ULTIMATE.init(); {12976#true} is VALID [2022-04-28 04:15:02,725 INFO L290 TraceCheckUtils]: 1: Hoare triple {12976#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {12976#true} is VALID [2022-04-28 04:15:02,725 INFO L290 TraceCheckUtils]: 2: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,725 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {12976#true} {12976#true} #160#return; {12976#true} is VALID [2022-04-28 04:15:02,725 INFO L272 TraceCheckUtils]: 4: Hoare triple {12976#true} call #t~ret20 := main(); {12976#true} is VALID [2022-04-28 04:15:02,725 INFO L290 TraceCheckUtils]: 5: Hoare triple {12976#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {12976#true} is VALID [2022-04-28 04:15:02,725 INFO L272 TraceCheckUtils]: 6: Hoare triple {12976#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {12976#true} is VALID [2022-04-28 04:15:02,725 INFO L290 TraceCheckUtils]: 7: Hoare triple {12976#true} ~cond := #in~cond; {12976#true} is VALID [2022-04-28 04:15:02,725 INFO L290 TraceCheckUtils]: 8: Hoare triple {12976#true} assume !(0 == ~cond); {12976#true} is VALID [2022-04-28 04:15:02,725 INFO L290 TraceCheckUtils]: 9: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,725 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {12976#true} {12976#true} #142#return; {12976#true} is VALID [2022-04-28 04:15:02,725 INFO L272 TraceCheckUtils]: 11: Hoare triple {12976#true} call #t~ret14 := is_pow2(~n~0); {12976#true} is VALID [2022-04-28 04:15:02,725 INFO L290 TraceCheckUtils]: 12: Hoare triple {12976#true} ~x := #in~x; {12976#true} is VALID [2022-04-28 04:15:02,725 INFO L290 TraceCheckUtils]: 13: Hoare triple {12976#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {12976#true} is VALID [2022-04-28 04:15:02,726 INFO L290 TraceCheckUtils]: 14: Hoare triple {12976#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {12976#true} is VALID [2022-04-28 04:15:02,726 INFO L290 TraceCheckUtils]: 15: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,726 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {12976#true} {12976#true} #144#return; {12976#true} is VALID [2022-04-28 04:15:02,726 INFO L290 TraceCheckUtils]: 17: Hoare triple {12976#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {12976#true} is VALID [2022-04-28 04:15:02,726 INFO L272 TraceCheckUtils]: 18: Hoare triple {12976#true} call assume_abort_if_not(#t~ret14); {12976#true} is VALID [2022-04-28 04:15:02,726 INFO L290 TraceCheckUtils]: 19: Hoare triple {12976#true} ~cond := #in~cond; {12976#true} is VALID [2022-04-28 04:15:02,726 INFO L290 TraceCheckUtils]: 20: Hoare triple {12976#true} assume !(0 == ~cond); {12976#true} is VALID [2022-04-28 04:15:02,726 INFO L290 TraceCheckUtils]: 21: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,726 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {12976#true} {12976#true} #146#return; {12976#true} is VALID [2022-04-28 04:15:02,726 INFO L290 TraceCheckUtils]: 23: Hoare triple {12976#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {12976#true} is VALID [2022-04-28 04:15:02,726 INFO L272 TraceCheckUtils]: 24: Hoare triple {12976#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {12976#true} is VALID [2022-04-28 04:15:02,726 INFO L290 TraceCheckUtils]: 25: Hoare triple {12976#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {12976#true} is VALID [2022-04-28 04:15:02,726 INFO L290 TraceCheckUtils]: 26: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,726 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {12976#true} {12976#true} #148#return; {12976#true} is VALID [2022-04-28 04:15:02,727 INFO L290 TraceCheckUtils]: 28: Hoare triple {12976#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {12976#true} is VALID [2022-04-28 04:15:02,727 INFO L272 TraceCheckUtils]: 29: Hoare triple {12976#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {12976#true} is VALID [2022-04-28 04:15:02,727 INFO L290 TraceCheckUtils]: 30: Hoare triple {12976#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {12976#true} is VALID [2022-04-28 04:15:02,727 INFO L290 TraceCheckUtils]: 31: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,727 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {12976#true} {12976#true} #150#return; {12976#true} is VALID [2022-04-28 04:15:02,728 INFO L290 TraceCheckUtils]: 33: Hoare triple {12976#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {13135#(<= main_~i~1 0)} is VALID [2022-04-28 04:15:02,728 INFO L290 TraceCheckUtils]: 34: Hoare triple {13135#(<= main_~i~1 0)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {13135#(<= main_~i~1 0)} is VALID [2022-04-28 04:15:02,729 INFO L290 TraceCheckUtils]: 35: Hoare triple {13135#(<= main_~i~1 0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {13001#(<= main_~i~1 1)} is VALID [2022-04-28 04:15:02,729 INFO L290 TraceCheckUtils]: 36: Hoare triple {13001#(<= main_~i~1 1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {13001#(<= main_~i~1 1)} is VALID [2022-04-28 04:15:02,729 INFO L290 TraceCheckUtils]: 37: Hoare triple {13001#(<= main_~i~1 1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {13002#(<= main_~i~1 2)} is VALID [2022-04-28 04:15:02,730 INFO L290 TraceCheckUtils]: 38: Hoare triple {13002#(<= main_~i~1 2)} assume !(~i~1 < ~n~0); {13003#(<= main_~n~0 2)} is VALID [2022-04-28 04:15:02,730 INFO L272 TraceCheckUtils]: 39: Hoare triple {13003#(<= main_~n~0 2)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {12976#true} is VALID [2022-04-28 04:15:02,730 INFO L290 TraceCheckUtils]: 40: Hoare triple {12976#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {12976#true} is VALID [2022-04-28 04:15:02,730 INFO L290 TraceCheckUtils]: 41: Hoare triple {12976#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {12976#true} is VALID [2022-04-28 04:15:02,730 INFO L290 TraceCheckUtils]: 42: Hoare triple {12976#true} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {12976#true} is VALID [2022-04-28 04:15:02,730 INFO L290 TraceCheckUtils]: 43: Hoare triple {12976#true} assume !(~left~0 < ~n); {12976#true} is VALID [2022-04-28 04:15:02,730 INFO L290 TraceCheckUtils]: 44: Hoare triple {12976#true} ~space~0 := 2 * ~space~0; {12976#true} is VALID [2022-04-28 04:15:02,730 INFO L290 TraceCheckUtils]: 45: Hoare triple {12976#true} assume !(~space~0 < ~n); {12976#true} is VALID [2022-04-28 04:15:02,730 INFO L290 TraceCheckUtils]: 46: Hoare triple {12976#true} #res := ~space~0; {12976#true} is VALID [2022-04-28 04:15:02,730 INFO L290 TraceCheckUtils]: 47: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:02,731 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {12976#true} {13003#(<= main_~n~0 2)} #152#return; {13003#(<= main_~n~0 2)} is VALID [2022-04-28 04:15:02,731 INFO L290 TraceCheckUtils]: 49: Hoare triple {13003#(<= main_~n~0 2)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {13003#(<= main_~n~0 2)} is VALID [2022-04-28 04:15:02,731 INFO L272 TraceCheckUtils]: 50: Hoare triple {13003#(<= main_~n~0 2)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {12976#true} is VALID [2022-04-28 04:15:02,732 INFO L290 TraceCheckUtils]: 51: Hoare triple {12976#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {13190#(<= downsweep_~n |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,732 INFO L290 TraceCheckUtils]: 52: Hoare triple {13190#(<= downsweep_~n |downsweep_#in~n|)} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {13194#(and (<= downsweep_~n |downsweep_#in~n|) (<= (* 2 downsweep_~space) (+ downsweep_~right~1 1)) (< 0 downsweep_~space))} is VALID [2022-04-28 04:15:02,733 INFO L290 TraceCheckUtils]: 53: Hoare triple {13194#(and (<= downsweep_~n |downsweep_#in~n|) (<= (* 2 downsweep_~space) (+ downsweep_~right~1 1)) (< 0 downsweep_~space))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {13198#(and (< (* 2 downsweep_~space) (+ |downsweep_#in~n| 1)) (< 0 downsweep_~space))} is VALID [2022-04-28 04:15:02,733 INFO L290 TraceCheckUtils]: 54: Hoare triple {13198#(and (< (* 2 downsweep_~space) (+ |downsweep_#in~n| 1)) (< 0 downsweep_~space))} assume !(~right~1 < ~n); {13198#(and (< (* 2 downsweep_~space) (+ |downsweep_#in~n| 1)) (< 0 downsweep_~space))} is VALID [2022-04-28 04:15:02,734 INFO L290 TraceCheckUtils]: 55: Hoare triple {13198#(and (< (* 2 downsweep_~space) (+ |downsweep_#in~n| 1)) (< 0 downsweep_~space))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {13205#(and (< downsweep_~space (+ (div (div |downsweep_#in~n| 2) 2) 1)) (< 0 (div |downsweep_#in~n| 2)))} is VALID [2022-04-28 04:15:02,735 INFO L290 TraceCheckUtils]: 56: Hoare triple {13205#(and (< downsweep_~space (+ (div (div |downsweep_#in~n| 2) 2) 1)) (< 0 (div |downsweep_#in~n| 2)))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,735 INFO L290 TraceCheckUtils]: 57: Hoare triple {13032#(<= 4 |downsweep_#in~n|)} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,736 INFO L290 TraceCheckUtils]: 58: Hoare triple {13032#(<= 4 |downsweep_#in~n|)} assume !(~right~1 < ~n); {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,736 INFO L290 TraceCheckUtils]: 59: Hoare triple {13032#(<= 4 |downsweep_#in~n|)} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,736 INFO L290 TraceCheckUtils]: 60: Hoare triple {13032#(<= 4 |downsweep_#in~n|)} assume !(~space > 0); {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,736 INFO L290 TraceCheckUtils]: 61: Hoare triple {13032#(<= 4 |downsweep_#in~n|)} assume true; {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:02,737 INFO L284 TraceCheckUtils]: 62: Hoare quadruple {13032#(<= 4 |downsweep_#in~n|)} {13003#(<= main_~n~0 2)} #154#return; {12977#false} is VALID [2022-04-28 04:15:02,737 INFO L272 TraceCheckUtils]: 63: Hoare triple {12977#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {12977#false} is VALID [2022-04-28 04:15:02,737 INFO L290 TraceCheckUtils]: 64: Hoare triple {12977#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {12977#false} is VALID [2022-04-28 04:15:02,737 INFO L290 TraceCheckUtils]: 65: Hoare triple {12977#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {12977#false} is VALID [2022-04-28 04:15:02,737 INFO L272 TraceCheckUtils]: 66: Hoare triple {12977#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {12977#false} is VALID [2022-04-28 04:15:02,737 INFO L290 TraceCheckUtils]: 67: Hoare triple {12977#false} ~cond := #in~cond; {12977#false} is VALID [2022-04-28 04:15:02,738 INFO L290 TraceCheckUtils]: 68: Hoare triple {12977#false} assume 0 == ~cond; {12977#false} is VALID [2022-04-28 04:15:02,738 INFO L290 TraceCheckUtils]: 69: Hoare triple {12977#false} assume !false; {12977#false} is VALID [2022-04-28 04:15:02,738 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 0 proven. 13 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-04-28 04:15:02,738 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:15:07,198 INFO L290 TraceCheckUtils]: 69: Hoare triple {12977#false} assume !false; {12977#false} is VALID [2022-04-28 04:15:07,198 INFO L290 TraceCheckUtils]: 68: Hoare triple {12977#false} assume 0 == ~cond; {12977#false} is VALID [2022-04-28 04:15:07,198 INFO L290 TraceCheckUtils]: 67: Hoare triple {12977#false} ~cond := #in~cond; {12977#false} is VALID [2022-04-28 04:15:07,198 INFO L272 TraceCheckUtils]: 66: Hoare triple {12977#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {12977#false} is VALID [2022-04-28 04:15:07,198 INFO L290 TraceCheckUtils]: 65: Hoare triple {12977#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {12977#false} is VALID [2022-04-28 04:15:07,198 INFO L290 TraceCheckUtils]: 64: Hoare triple {12977#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {12977#false} is VALID [2022-04-28 04:15:07,198 INFO L272 TraceCheckUtils]: 63: Hoare triple {12977#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {12977#false} is VALID [2022-04-28 04:15:07,199 INFO L284 TraceCheckUtils]: 62: Hoare quadruple {13032#(<= 4 |downsweep_#in~n|)} {13269#(<= (div (* (- 1) (div (+ (- 1) (* (- 1) main_~n~0)) (- 2))) (- 2)) 1)} #154#return; {12977#false} is VALID [2022-04-28 04:15:07,200 INFO L290 TraceCheckUtils]: 61: Hoare triple {13032#(<= 4 |downsweep_#in~n|)} assume true; {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:07,200 INFO L290 TraceCheckUtils]: 60: Hoare triple {13032#(<= 4 |downsweep_#in~n|)} assume !(~space > 0); {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:07,200 INFO L290 TraceCheckUtils]: 59: Hoare triple {13032#(<= 4 |downsweep_#in~n|)} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:07,200 INFO L290 TraceCheckUtils]: 58: Hoare triple {13032#(<= 4 |downsweep_#in~n|)} assume !(~right~1 < ~n); {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:07,201 INFO L290 TraceCheckUtils]: 57: Hoare triple {13032#(<= 4 |downsweep_#in~n|)} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:07,201 INFO L290 TraceCheckUtils]: 56: Hoare triple {13291#(or (<= 4 |downsweep_#in~n|) (not (< 0 downsweep_~space)))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {13032#(<= 4 |downsweep_#in~n|)} is VALID [2022-04-28 04:15:07,202 INFO L290 TraceCheckUtils]: 55: Hoare triple {13295#(or (<= (div downsweep_~space 2) 0) (<= 4 |downsweep_#in~n|))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {13291#(or (<= 4 |downsweep_#in~n|) (not (< 0 downsweep_~space)))} is VALID [2022-04-28 04:15:07,202 INFO L290 TraceCheckUtils]: 54: Hoare triple {13295#(or (<= (div downsweep_~space 2) 0) (<= 4 |downsweep_#in~n|))} assume !(~right~1 < ~n); {13295#(or (<= (div downsweep_~space 2) 0) (<= 4 |downsweep_#in~n|))} is VALID [2022-04-28 04:15:07,203 INFO L290 TraceCheckUtils]: 53: Hoare triple {13302#(or (<= (div downsweep_~space 2) 0) (not (< downsweep_~right~1 downsweep_~n)) (<= 4 |downsweep_#in~n|))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {13295#(or (<= (div downsweep_~space 2) 0) (<= 4 |downsweep_#in~n|))} is VALID [2022-04-28 04:15:07,204 INFO L290 TraceCheckUtils]: 52: Hoare triple {13306#(or (<= (div (* (- 1) (div (+ (- 1) (* (- 1) downsweep_~n)) (- 2))) (- 2)) 1) (<= 4 |downsweep_#in~n|))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {13302#(or (<= (div downsweep_~space 2) 0) (not (< downsweep_~right~1 downsweep_~n)) (<= 4 |downsweep_#in~n|))} is VALID [2022-04-28 04:15:07,204 INFO L290 TraceCheckUtils]: 51: Hoare triple {12976#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {13306#(or (<= (div (* (- 1) (div (+ (- 1) (* (- 1) downsweep_~n)) (- 2))) (- 2)) 1) (<= 4 |downsweep_#in~n|))} is VALID [2022-04-28 04:15:07,204 INFO L272 TraceCheckUtils]: 50: Hoare triple {13269#(<= (div (* (- 1) (div (+ (- 1) (* (- 1) main_~n~0)) (- 2))) (- 2)) 1)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {12976#true} is VALID [2022-04-28 04:15:07,205 INFO L290 TraceCheckUtils]: 49: Hoare triple {13269#(<= (div (* (- 1) (div (+ (- 1) (* (- 1) main_~n~0)) (- 2))) (- 2)) 1)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {13269#(<= (div (* (- 1) (div (+ (- 1) (* (- 1) main_~n~0)) (- 2))) (- 2)) 1)} is VALID [2022-04-28 04:15:07,205 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {12976#true} {13269#(<= (div (* (- 1) (div (+ (- 1) (* (- 1) main_~n~0)) (- 2))) (- 2)) 1)} #152#return; {13269#(<= (div (* (- 1) (div (+ (- 1) (* (- 1) main_~n~0)) (- 2))) (- 2)) 1)} is VALID [2022-04-28 04:15:07,205 INFO L290 TraceCheckUtils]: 47: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:07,205 INFO L290 TraceCheckUtils]: 46: Hoare triple {12976#true} #res := ~space~0; {12976#true} is VALID [2022-04-28 04:15:07,205 INFO L290 TraceCheckUtils]: 45: Hoare triple {12976#true} assume !(~space~0 < ~n); {12976#true} is VALID [2022-04-28 04:15:07,206 INFO L290 TraceCheckUtils]: 44: Hoare triple {12976#true} ~space~0 := 2 * ~space~0; {12976#true} is VALID [2022-04-28 04:15:07,206 INFO L290 TraceCheckUtils]: 43: Hoare triple {12976#true} assume !(~left~0 < ~n); {12976#true} is VALID [2022-04-28 04:15:07,206 INFO L290 TraceCheckUtils]: 42: Hoare triple {12976#true} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {12976#true} is VALID [2022-04-28 04:15:07,206 INFO L290 TraceCheckUtils]: 41: Hoare triple {12976#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {12976#true} is VALID [2022-04-28 04:15:07,206 INFO L290 TraceCheckUtils]: 40: Hoare triple {12976#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {12976#true} is VALID [2022-04-28 04:15:07,206 INFO L272 TraceCheckUtils]: 39: Hoare triple {13269#(<= (div (* (- 1) (div (+ (- 1) (* (- 1) main_~n~0)) (- 2))) (- 2)) 1)} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {12976#true} is VALID [2022-04-28 04:15:07,207 INFO L290 TraceCheckUtils]: 38: Hoare triple {13346#(<= (div (+ (- 1) (div (+ (* (- 1) main_~i~1) (- 3)) 2)) (- 2)) 2)} assume !(~i~1 < ~n~0); {13269#(<= (div (* (- 1) (div (+ (- 1) (* (- 1) main_~n~0)) (- 2))) (- 2)) 1)} is VALID [2022-04-28 04:15:07,207 INFO L290 TraceCheckUtils]: 37: Hoare triple {13002#(<= main_~i~1 2)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {13346#(<= (div (+ (- 1) (div (+ (* (- 1) main_~i~1) (- 3)) 2)) (- 2)) 2)} is VALID [2022-04-28 04:15:07,208 INFO L290 TraceCheckUtils]: 36: Hoare triple {13002#(<= main_~i~1 2)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {13002#(<= main_~i~1 2)} is VALID [2022-04-28 04:15:07,208 INFO L290 TraceCheckUtils]: 35: Hoare triple {13001#(<= main_~i~1 1)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {13002#(<= main_~i~1 2)} is VALID [2022-04-28 04:15:07,208 INFO L290 TraceCheckUtils]: 34: Hoare triple {13001#(<= main_~i~1 1)} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {13001#(<= main_~i~1 1)} is VALID [2022-04-28 04:15:07,209 INFO L290 TraceCheckUtils]: 33: Hoare triple {12976#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {13001#(<= main_~i~1 1)} is VALID [2022-04-28 04:15:07,209 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {12976#true} {12976#true} #150#return; {12976#true} is VALID [2022-04-28 04:15:07,209 INFO L290 TraceCheckUtils]: 31: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:07,209 INFO L290 TraceCheckUtils]: 30: Hoare triple {12976#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {12976#true} is VALID [2022-04-28 04:15:07,209 INFO L272 TraceCheckUtils]: 29: Hoare triple {12976#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {12976#true} is VALID [2022-04-28 04:15:07,209 INFO L290 TraceCheckUtils]: 28: Hoare triple {12976#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {12976#true} is VALID [2022-04-28 04:15:07,209 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {12976#true} {12976#true} #148#return; {12976#true} is VALID [2022-04-28 04:15:07,209 INFO L290 TraceCheckUtils]: 26: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:07,209 INFO L290 TraceCheckUtils]: 25: Hoare triple {12976#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {12976#true} is VALID [2022-04-28 04:15:07,209 INFO L272 TraceCheckUtils]: 24: Hoare triple {12976#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {12976#true} is VALID [2022-04-28 04:15:07,209 INFO L290 TraceCheckUtils]: 23: Hoare triple {12976#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {12976#true} is VALID [2022-04-28 04:15:07,209 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {12976#true} {12976#true} #146#return; {12976#true} is VALID [2022-04-28 04:15:07,209 INFO L290 TraceCheckUtils]: 21: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:07,210 INFO L290 TraceCheckUtils]: 20: Hoare triple {12976#true} assume !(0 == ~cond); {12976#true} is VALID [2022-04-28 04:15:07,210 INFO L290 TraceCheckUtils]: 19: Hoare triple {12976#true} ~cond := #in~cond; {12976#true} is VALID [2022-04-28 04:15:07,210 INFO L272 TraceCheckUtils]: 18: Hoare triple {12976#true} call assume_abort_if_not(#t~ret14); {12976#true} is VALID [2022-04-28 04:15:07,210 INFO L290 TraceCheckUtils]: 17: Hoare triple {12976#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {12976#true} is VALID [2022-04-28 04:15:07,210 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {12976#true} {12976#true} #144#return; {12976#true} is VALID [2022-04-28 04:15:07,210 INFO L290 TraceCheckUtils]: 15: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:07,210 INFO L290 TraceCheckUtils]: 14: Hoare triple {12976#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {12976#true} is VALID [2022-04-28 04:15:07,210 INFO L290 TraceCheckUtils]: 13: Hoare triple {12976#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {12976#true} is VALID [2022-04-28 04:15:07,210 INFO L290 TraceCheckUtils]: 12: Hoare triple {12976#true} ~x := #in~x; {12976#true} is VALID [2022-04-28 04:15:07,210 INFO L272 TraceCheckUtils]: 11: Hoare triple {12976#true} call #t~ret14 := is_pow2(~n~0); {12976#true} is VALID [2022-04-28 04:15:07,210 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {12976#true} {12976#true} #142#return; {12976#true} is VALID [2022-04-28 04:15:07,210 INFO L290 TraceCheckUtils]: 9: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:07,210 INFO L290 TraceCheckUtils]: 8: Hoare triple {12976#true} assume !(0 == ~cond); {12976#true} is VALID [2022-04-28 04:15:07,210 INFO L290 TraceCheckUtils]: 7: Hoare triple {12976#true} ~cond := #in~cond; {12976#true} is VALID [2022-04-28 04:15:07,210 INFO L272 TraceCheckUtils]: 6: Hoare triple {12976#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {12976#true} is VALID [2022-04-28 04:15:07,211 INFO L290 TraceCheckUtils]: 5: Hoare triple {12976#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {12976#true} is VALID [2022-04-28 04:15:07,211 INFO L272 TraceCheckUtils]: 4: Hoare triple {12976#true} call #t~ret20 := main(); {12976#true} is VALID [2022-04-28 04:15:07,211 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {12976#true} {12976#true} #160#return; {12976#true} is VALID [2022-04-28 04:15:07,211 INFO L290 TraceCheckUtils]: 2: Hoare triple {12976#true} assume true; {12976#true} is VALID [2022-04-28 04:15:07,211 INFO L290 TraceCheckUtils]: 1: Hoare triple {12976#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {12976#true} is VALID [2022-04-28 04:15:07,211 INFO L272 TraceCheckUtils]: 0: Hoare triple {12976#true} call ULTIMATE.init(); {12976#true} is VALID [2022-04-28 04:15:07,211 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 8 proven. 5 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-04-28 04:15:07,211 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [521130622] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:15:07,211 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-28 04:15:07,211 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 11, 11] total 25 [2022-04-28 04:15:07,212 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:15:07,212 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [2062530282] [2022-04-28 04:15:07,212 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [2062530282] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:15:07,212 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:15:07,212 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [14] imperfect sequences [] total 14 [2022-04-28 04:15:07,212 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1883279318] [2022-04-28 04:15:07,212 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:15:07,212 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 14 states have (on average 3.2857142857142856) internal successors, (46), 12 states have internal predecessors, (46), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) Word has length 70 [2022-04-28 04:15:07,212 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:15:07,213 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 14 states, 14 states have (on average 3.2857142857142856) internal successors, (46), 12 states have internal predecessors, (46), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:15:07,253 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:15:07,253 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-28 04:15:07,253 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:15:07,254 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-28 04:15:07,254 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=100, Invalid=500, Unknown=0, NotChecked=0, Total=600 [2022-04-28 04:15:07,254 INFO L87 Difference]: Start difference. First operand 109 states and 133 transitions. Second operand has 14 states, 14 states have (on average 3.2857142857142856) internal successors, (46), 12 states have internal predecessors, (46), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:15:11,522 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:15:13,662 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.14s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:15:19,379 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:15:19,379 INFO L93 Difference]: Finished difference Result 127 states and 153 transitions. [2022-04-28 04:15:19,379 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-04-28 04:15:19,379 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 14 states have (on average 3.2857142857142856) internal successors, (46), 12 states have internal predecessors, (46), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) Word has length 70 [2022-04-28 04:15:19,380 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:15:19,380 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 14 states have (on average 3.2857142857142856) internal successors, (46), 12 states have internal predecessors, (46), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:15:19,381 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 104 transitions. [2022-04-28 04:15:19,381 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 14 states have (on average 3.2857142857142856) internal successors, (46), 12 states have internal predecessors, (46), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:15:19,382 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 104 transitions. [2022-04-28 04:15:19,382 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 15 states and 104 transitions. [2022-04-28 04:15:19,468 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 104 edges. 104 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:15:19,470 INFO L225 Difference]: With dead ends: 127 [2022-04-28 04:15:19,470 INFO L226 Difference]: Without dead ends: 115 [2022-04-28 04:15:19,470 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 178 GetRequests, 141 SyntacticMatches, 3 SemanticMatches, 34 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 263 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=212, Invalid=1048, Unknown=0, NotChecked=0, Total=1260 [2022-04-28 04:15:19,471 INFO L413 NwaCegarLoop]: 45 mSDtfsCounter, 85 mSDsluCounter, 8 mSDsCounter, 0 mSdLazyCounter, 382 mSolverCounterSat, 56 mSolverCounterUnsat, 2 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 4.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 88 SdHoareTripleChecker+Valid, 53 SdHoareTripleChecker+Invalid, 440 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 56 IncrementalHoareTripleChecker+Valid, 382 IncrementalHoareTripleChecker+Invalid, 2 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 4.6s IncrementalHoareTripleChecker+Time [2022-04-28 04:15:19,471 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [88 Valid, 53 Invalid, 440 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [56 Valid, 382 Invalid, 2 Unknown, 0 Unchecked, 4.6s Time] [2022-04-28 04:15:19,471 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 115 states. [2022-04-28 04:15:19,722 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 115 to 101. [2022-04-28 04:15:19,722 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:15:19,722 INFO L82 GeneralOperation]: Start isEquivalent. First operand 115 states. Second operand has 101 states, 75 states have (on average 1.2266666666666666) internal successors, (92), 78 states have internal predecessors, (92), 15 states have call successors, (15), 11 states have call predecessors, (15), 10 states have return successors, (14), 11 states have call predecessors, (14), 12 states have call successors, (14) [2022-04-28 04:15:19,722 INFO L74 IsIncluded]: Start isIncluded. First operand 115 states. Second operand has 101 states, 75 states have (on average 1.2266666666666666) internal successors, (92), 78 states have internal predecessors, (92), 15 states have call successors, (15), 11 states have call predecessors, (15), 10 states have return successors, (14), 11 states have call predecessors, (14), 12 states have call successors, (14) [2022-04-28 04:15:19,723 INFO L87 Difference]: Start difference. First operand 115 states. Second operand has 101 states, 75 states have (on average 1.2266666666666666) internal successors, (92), 78 states have internal predecessors, (92), 15 states have call successors, (15), 11 states have call predecessors, (15), 10 states have return successors, (14), 11 states have call predecessors, (14), 12 states have call successors, (14) [2022-04-28 04:15:19,724 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:15:19,724 INFO L93 Difference]: Finished difference Result 115 states and 140 transitions. [2022-04-28 04:15:19,724 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 140 transitions. [2022-04-28 04:15:19,725 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:15:19,725 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:15:19,725 INFO L74 IsIncluded]: Start isIncluded. First operand has 101 states, 75 states have (on average 1.2266666666666666) internal successors, (92), 78 states have internal predecessors, (92), 15 states have call successors, (15), 11 states have call predecessors, (15), 10 states have return successors, (14), 11 states have call predecessors, (14), 12 states have call successors, (14) Second operand 115 states. [2022-04-28 04:15:19,725 INFO L87 Difference]: Start difference. First operand has 101 states, 75 states have (on average 1.2266666666666666) internal successors, (92), 78 states have internal predecessors, (92), 15 states have call successors, (15), 11 states have call predecessors, (15), 10 states have return successors, (14), 11 states have call predecessors, (14), 12 states have call successors, (14) Second operand 115 states. [2022-04-28 04:15:19,726 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:15:19,727 INFO L93 Difference]: Finished difference Result 115 states and 140 transitions. [2022-04-28 04:15:19,727 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 140 transitions. [2022-04-28 04:15:19,727 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:15:19,727 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:15:19,727 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:15:19,727 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:15:19,727 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 101 states, 75 states have (on average 1.2266666666666666) internal successors, (92), 78 states have internal predecessors, (92), 15 states have call successors, (15), 11 states have call predecessors, (15), 10 states have return successors, (14), 11 states have call predecessors, (14), 12 states have call successors, (14) [2022-04-28 04:15:19,729 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 101 states to 101 states and 121 transitions. [2022-04-28 04:15:19,729 INFO L78 Accepts]: Start accepts. Automaton has 101 states and 121 transitions. Word has length 70 [2022-04-28 04:15:19,729 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:15:19,729 INFO L495 AbstractCegarLoop]: Abstraction has 101 states and 121 transitions. [2022-04-28 04:15:19,729 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 14 states, 14 states have (on average 3.2857142857142856) internal successors, (46), 12 states have internal predecessors, (46), 3 states have call successors, (11), 4 states have call predecessors, (11), 2 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:15:19,729 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 101 states and 121 transitions. [2022-04-28 04:15:20,012 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 121 edges. 121 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:15:20,013 INFO L276 IsEmpty]: Start isEmpty. Operand 101 states and 121 transitions. [2022-04-28 04:15:20,013 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 75 [2022-04-28 04:15:20,013 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:15:20,013 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-28 04:15:20,037 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (14)] Forceful destruction successful, exit code 0 [2022-04-28 04:15:20,213 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 14 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable14 [2022-04-28 04:15:20,214 INFO L420 AbstractCegarLoop]: === Iteration 16 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:15:20,214 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:15:20,214 INFO L85 PathProgramCache]: Analyzing trace with hash -495926943, now seen corresponding path program 1 times [2022-04-28 04:15:20,214 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:15:20,214 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [736449627] [2022-04-28 04:15:20,214 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:15:20,215 INFO L85 PathProgramCache]: Analyzing trace with hash -495926943, now seen corresponding path program 2 times [2022-04-28 04:15:20,215 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:15:20,215 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2121809439] [2022-04-28 04:15:20,215 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:15:20,215 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:15:20,247 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:20,367 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:15:20,369 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:20,371 INFO L290 TraceCheckUtils]: 0: Hoare triple {14222#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {14172#true} is VALID [2022-04-28 04:15:20,371 INFO L290 TraceCheckUtils]: 1: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:15:20,371 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {14172#true} {14172#true} #160#return; {14172#true} is VALID [2022-04-28 04:15:20,371 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:15:20,372 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:20,373 INFO L290 TraceCheckUtils]: 0: Hoare triple {14172#true} ~cond := #in~cond; {14172#true} is VALID [2022-04-28 04:15:20,374 INFO L290 TraceCheckUtils]: 1: Hoare triple {14172#true} assume !(0 == ~cond); {14172#true} is VALID [2022-04-28 04:15:20,374 INFO L290 TraceCheckUtils]: 2: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:15:20,374 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {14172#true} {14172#true} #142#return; {14172#true} is VALID [2022-04-28 04:15:20,374 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:15:20,376 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:20,451 INFO L290 TraceCheckUtils]: 0: Hoare triple {14172#true} ~x := #in~x; {14223#(= |is_pow2_#in~x| is_pow2_~x)} is VALID [2022-04-28 04:15:20,452 INFO L290 TraceCheckUtils]: 1: Hoare triple {14223#(= |is_pow2_#in~x| is_pow2_~x)} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {14224#(and (= |is_pow2_#in~x| is_pow2_~x) (or (not (<= is_pow2_~x (* 2 (div is_pow2_~x 2)))) (not (<= (div is_pow2_~x 4294967296) 0)) (<= (div is_pow2_~x 2) 0)))} is VALID [2022-04-28 04:15:20,453 INFO L290 TraceCheckUtils]: 2: Hoare triple {14224#(and (= |is_pow2_#in~x| is_pow2_~x) (or (not (<= is_pow2_~x (* 2 (div is_pow2_~x 2)))) (not (<= (div is_pow2_~x 4294967296) 0)) (<= (div is_pow2_~x 2) 0)))} #res := (if 1 == ~x % 4294967296 then 1 else 0); {14225#(or (<= 3 |is_pow2_#in~x|) (<= |is_pow2_#in~x| 1))} is VALID [2022-04-28 04:15:20,454 INFO L290 TraceCheckUtils]: 3: Hoare triple {14225#(or (<= 3 |is_pow2_#in~x|) (<= |is_pow2_#in~x| 1))} assume true; {14225#(or (<= 3 |is_pow2_#in~x|) (<= |is_pow2_#in~x| 1))} is VALID [2022-04-28 04:15:20,454 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {14225#(or (<= 3 |is_pow2_#in~x|) (<= |is_pow2_#in~x| 1))} {14172#true} #144#return; {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:15:20,454 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:15:20,455 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:20,457 INFO L290 TraceCheckUtils]: 0: Hoare triple {14172#true} ~cond := #in~cond; {14172#true} is VALID [2022-04-28 04:15:20,457 INFO L290 TraceCheckUtils]: 1: Hoare triple {14172#true} assume !(0 == ~cond); {14172#true} is VALID [2022-04-28 04:15:20,457 INFO L290 TraceCheckUtils]: 2: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:15:20,457 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {14172#true} {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} #146#return; {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:15:20,467 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:15:20,469 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:20,473 INFO L290 TraceCheckUtils]: 0: Hoare triple {14226#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {14172#true} is VALID [2022-04-28 04:15:20,473 INFO L290 TraceCheckUtils]: 1: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:15:20,474 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {14172#true} {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} #148#return; {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:15:20,474 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:15:20,475 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:20,477 INFO L290 TraceCheckUtils]: 0: Hoare triple {14226#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {14172#true} is VALID [2022-04-28 04:15:20,477 INFO L290 TraceCheckUtils]: 1: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:15:20,478 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {14172#true} {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} #150#return; {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:15:20,478 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 39 [2022-04-28 04:15:20,480 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:20,483 INFO L290 TraceCheckUtils]: 0: Hoare triple {14226#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {14172#true} is VALID [2022-04-28 04:15:20,483 INFO L290 TraceCheckUtils]: 1: Hoare triple {14172#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {14172#true} is VALID [2022-04-28 04:15:20,483 INFO L290 TraceCheckUtils]: 2: Hoare triple {14172#true} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {14172#true} is VALID [2022-04-28 04:15:20,483 INFO L290 TraceCheckUtils]: 3: Hoare triple {14172#true} assume !(~left~0 < ~n); {14172#true} is VALID [2022-04-28 04:15:20,483 INFO L290 TraceCheckUtils]: 4: Hoare triple {14172#true} ~space~0 := 2 * ~space~0; {14172#true} is VALID [2022-04-28 04:15:20,484 INFO L290 TraceCheckUtils]: 5: Hoare triple {14172#true} assume !(~space~0 < ~n); {14172#true} is VALID [2022-04-28 04:15:20,484 INFO L290 TraceCheckUtils]: 6: Hoare triple {14172#true} #res := ~space~0; {14172#true} is VALID [2022-04-28 04:15:20,484 INFO L290 TraceCheckUtils]: 7: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:15:20,484 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {14172#true} {14173#false} #152#return; {14173#false} is VALID [2022-04-28 04:15:20,484 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 50 [2022-04-28 04:15:20,488 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:20,490 INFO L290 TraceCheckUtils]: 0: Hoare triple {14226#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {14172#true} is VALID [2022-04-28 04:15:20,491 INFO L290 TraceCheckUtils]: 1: Hoare triple {14172#true} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {14172#true} is VALID [2022-04-28 04:15:20,491 INFO L290 TraceCheckUtils]: 2: Hoare triple {14172#true} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {14172#true} is VALID [2022-04-28 04:15:20,491 INFO L290 TraceCheckUtils]: 3: Hoare triple {14172#true} assume !(~right~1 < ~n); {14172#true} is VALID [2022-04-28 04:15:20,491 INFO L290 TraceCheckUtils]: 4: Hoare triple {14172#true} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {14172#true} is VALID [2022-04-28 04:15:20,491 INFO L290 TraceCheckUtils]: 5: Hoare triple {14172#true} assume !(~space > 0); {14172#true} is VALID [2022-04-28 04:15:20,491 INFO L290 TraceCheckUtils]: 6: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:15:20,491 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {14172#true} {14173#false} #154#return; {14173#false} is VALID [2022-04-28 04:15:20,491 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 62 [2022-04-28 04:15:20,492 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:20,494 INFO L290 TraceCheckUtils]: 0: Hoare triple {14172#true} ~cond := #in~cond; {14172#true} is VALID [2022-04-28 04:15:20,494 INFO L290 TraceCheckUtils]: 1: Hoare triple {14172#true} assume !(0 == ~cond); {14172#true} is VALID [2022-04-28 04:15:20,494 INFO L290 TraceCheckUtils]: 2: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:15:20,494 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {14172#true} {14173#false} #158#return; {14173#false} is VALID [2022-04-28 04:15:20,494 INFO L272 TraceCheckUtils]: 0: Hoare triple {14172#true} call ULTIMATE.init(); {14222#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:15:20,494 INFO L290 TraceCheckUtils]: 1: Hoare triple {14222#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {14172#true} is VALID [2022-04-28 04:15:20,494 INFO L290 TraceCheckUtils]: 2: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:15:20,495 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {14172#true} {14172#true} #160#return; {14172#true} is VALID [2022-04-28 04:15:20,495 INFO L272 TraceCheckUtils]: 4: Hoare triple {14172#true} call #t~ret20 := main(); {14172#true} is VALID [2022-04-28 04:15:20,495 INFO L290 TraceCheckUtils]: 5: Hoare triple {14172#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {14172#true} is VALID [2022-04-28 04:15:20,495 INFO L272 TraceCheckUtils]: 6: Hoare triple {14172#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {14172#true} is VALID [2022-04-28 04:15:20,495 INFO L290 TraceCheckUtils]: 7: Hoare triple {14172#true} ~cond := #in~cond; {14172#true} is VALID [2022-04-28 04:15:20,495 INFO L290 TraceCheckUtils]: 8: Hoare triple {14172#true} assume !(0 == ~cond); {14172#true} is VALID [2022-04-28 04:15:20,495 INFO L290 TraceCheckUtils]: 9: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:15:20,495 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {14172#true} {14172#true} #142#return; {14172#true} is VALID [2022-04-28 04:15:20,495 INFO L272 TraceCheckUtils]: 11: Hoare triple {14172#true} call #t~ret14 := is_pow2(~n~0); {14172#true} is VALID [2022-04-28 04:15:20,495 INFO L290 TraceCheckUtils]: 12: Hoare triple {14172#true} ~x := #in~x; {14223#(= |is_pow2_#in~x| is_pow2_~x)} is VALID [2022-04-28 04:15:20,496 INFO L290 TraceCheckUtils]: 13: Hoare triple {14223#(= |is_pow2_#in~x| is_pow2_~x)} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {14224#(and (= |is_pow2_#in~x| is_pow2_~x) (or (not (<= is_pow2_~x (* 2 (div is_pow2_~x 2)))) (not (<= (div is_pow2_~x 4294967296) 0)) (<= (div is_pow2_~x 2) 0)))} is VALID [2022-04-28 04:15:20,497 INFO L290 TraceCheckUtils]: 14: Hoare triple {14224#(and (= |is_pow2_#in~x| is_pow2_~x) (or (not (<= is_pow2_~x (* 2 (div is_pow2_~x 2)))) (not (<= (div is_pow2_~x 4294967296) 0)) (<= (div is_pow2_~x 2) 0)))} #res := (if 1 == ~x % 4294967296 then 1 else 0); {14225#(or (<= 3 |is_pow2_#in~x|) (<= |is_pow2_#in~x| 1))} is VALID [2022-04-28 04:15:20,498 INFO L290 TraceCheckUtils]: 15: Hoare triple {14225#(or (<= 3 |is_pow2_#in~x|) (<= |is_pow2_#in~x| 1))} assume true; {14225#(or (<= 3 |is_pow2_#in~x|) (<= |is_pow2_#in~x| 1))} is VALID [2022-04-28 04:15:20,498 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {14225#(or (<= 3 |is_pow2_#in~x|) (<= |is_pow2_#in~x| 1))} {14172#true} #144#return; {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:15:20,499 INFO L290 TraceCheckUtils]: 17: Hoare triple {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:15:20,499 INFO L272 TraceCheckUtils]: 18: Hoare triple {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} call assume_abort_if_not(#t~ret14); {14172#true} is VALID [2022-04-28 04:15:20,499 INFO L290 TraceCheckUtils]: 19: Hoare triple {14172#true} ~cond := #in~cond; {14172#true} is VALID [2022-04-28 04:15:20,499 INFO L290 TraceCheckUtils]: 20: Hoare triple {14172#true} assume !(0 == ~cond); {14172#true} is VALID [2022-04-28 04:15:20,499 INFO L290 TraceCheckUtils]: 21: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:15:20,499 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {14172#true} {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} #146#return; {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:15:20,500 INFO L290 TraceCheckUtils]: 23: Hoare triple {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:15:20,500 INFO L272 TraceCheckUtils]: 24: Hoare triple {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {14226#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:15:20,500 INFO L290 TraceCheckUtils]: 25: Hoare triple {14226#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {14172#true} is VALID [2022-04-28 04:15:20,500 INFO L290 TraceCheckUtils]: 26: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:15:20,501 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {14172#true} {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} #148#return; {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:15:20,501 INFO L290 TraceCheckUtils]: 28: Hoare triple {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:15:20,502 INFO L272 TraceCheckUtils]: 29: Hoare triple {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {14226#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:15:20,502 INFO L290 TraceCheckUtils]: 30: Hoare triple {14226#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {14172#true} is VALID [2022-04-28 04:15:20,502 INFO L290 TraceCheckUtils]: 31: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:15:20,503 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {14172#true} {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} #150#return; {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} is VALID [2022-04-28 04:15:20,503 INFO L290 TraceCheckUtils]: 33: Hoare triple {14186#(or (<= 3 main_~n~0) (<= main_~n~0 1))} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {14197#(and (or (<= 3 main_~n~0) (<= main_~n~0 1)) (= main_~i~1 0))} is VALID [2022-04-28 04:15:20,503 INFO L290 TraceCheckUtils]: 34: Hoare triple {14197#(and (or (<= 3 main_~n~0) (<= main_~n~0 1)) (= main_~i~1 0))} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {14197#(and (or (<= 3 main_~n~0) (<= main_~n~0 1)) (= main_~i~1 0))} is VALID [2022-04-28 04:15:20,504 INFO L290 TraceCheckUtils]: 35: Hoare triple {14197#(and (or (<= 3 main_~n~0) (<= main_~n~0 1)) (= main_~i~1 0))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {14198#(or (<= main_~n~0 main_~i~1) (<= (+ main_~i~1 2) main_~n~0))} is VALID [2022-04-28 04:15:20,504 INFO L290 TraceCheckUtils]: 36: Hoare triple {14198#(or (<= main_~n~0 main_~i~1) (<= (+ main_~i~1 2) main_~n~0))} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {14199#(<= (+ main_~i~1 2) main_~n~0)} is VALID [2022-04-28 04:15:20,505 INFO L290 TraceCheckUtils]: 37: Hoare triple {14199#(<= (+ main_~i~1 2) main_~n~0)} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {14200#(<= (+ main_~i~1 1) main_~n~0)} is VALID [2022-04-28 04:15:20,505 INFO L290 TraceCheckUtils]: 38: Hoare triple {14200#(<= (+ main_~i~1 1) main_~n~0)} assume !(~i~1 < ~n~0); {14173#false} is VALID [2022-04-28 04:15:20,505 INFO L272 TraceCheckUtils]: 39: Hoare triple {14173#false} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {14226#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:15:20,505 INFO L290 TraceCheckUtils]: 40: Hoare triple {14226#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {14172#true} is VALID [2022-04-28 04:15:20,505 INFO L290 TraceCheckUtils]: 41: Hoare triple {14172#true} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {14172#true} is VALID [2022-04-28 04:15:20,505 INFO L290 TraceCheckUtils]: 42: Hoare triple {14172#true} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {14172#true} is VALID [2022-04-28 04:15:20,505 INFO L290 TraceCheckUtils]: 43: Hoare triple {14172#true} assume !(~left~0 < ~n); {14172#true} is VALID [2022-04-28 04:15:20,505 INFO L290 TraceCheckUtils]: 44: Hoare triple {14172#true} ~space~0 := 2 * ~space~0; {14172#true} is VALID [2022-04-28 04:15:20,505 INFO L290 TraceCheckUtils]: 45: Hoare triple {14172#true} assume !(~space~0 < ~n); {14172#true} is VALID [2022-04-28 04:15:20,506 INFO L290 TraceCheckUtils]: 46: Hoare triple {14172#true} #res := ~space~0; {14172#true} is VALID [2022-04-28 04:15:20,506 INFO L290 TraceCheckUtils]: 47: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:15:20,506 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {14172#true} {14173#false} #152#return; {14173#false} is VALID [2022-04-28 04:15:20,506 INFO L290 TraceCheckUtils]: 49: Hoare triple {14173#false} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {14173#false} is VALID [2022-04-28 04:15:20,506 INFO L272 TraceCheckUtils]: 50: Hoare triple {14173#false} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {14226#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:15:20,506 INFO L290 TraceCheckUtils]: 51: Hoare triple {14226#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {14172#true} is VALID [2022-04-28 04:15:20,506 INFO L290 TraceCheckUtils]: 52: Hoare triple {14172#true} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {14172#true} is VALID [2022-04-28 04:15:20,506 INFO L290 TraceCheckUtils]: 53: Hoare triple {14172#true} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {14172#true} is VALID [2022-04-28 04:15:20,506 INFO L290 TraceCheckUtils]: 54: Hoare triple {14172#true} assume !(~right~1 < ~n); {14172#true} is VALID [2022-04-28 04:15:20,506 INFO L290 TraceCheckUtils]: 55: Hoare triple {14172#true} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {14172#true} is VALID [2022-04-28 04:15:20,506 INFO L290 TraceCheckUtils]: 56: Hoare triple {14172#true} assume !(~space > 0); {14172#true} is VALID [2022-04-28 04:15:20,506 INFO L290 TraceCheckUtils]: 57: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:15:20,506 INFO L284 TraceCheckUtils]: 58: Hoare quadruple {14172#true} {14173#false} #154#return; {14173#false} is VALID [2022-04-28 04:15:20,506 INFO L272 TraceCheckUtils]: 59: Hoare triple {14173#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {14173#false} is VALID [2022-04-28 04:15:20,506 INFO L290 TraceCheckUtils]: 60: Hoare triple {14173#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {14173#false} is VALID [2022-04-28 04:15:20,507 INFO L290 TraceCheckUtils]: 61: Hoare triple {14173#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {14173#false} is VALID [2022-04-28 04:15:20,507 INFO L272 TraceCheckUtils]: 62: Hoare triple {14173#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {14172#true} is VALID [2022-04-28 04:15:20,507 INFO L290 TraceCheckUtils]: 63: Hoare triple {14172#true} ~cond := #in~cond; {14172#true} is VALID [2022-04-28 04:15:20,507 INFO L290 TraceCheckUtils]: 64: Hoare triple {14172#true} assume !(0 == ~cond); {14172#true} is VALID [2022-04-28 04:15:20,507 INFO L290 TraceCheckUtils]: 65: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:15:20,507 INFO L284 TraceCheckUtils]: 66: Hoare quadruple {14172#true} {14173#false} #158#return; {14173#false} is VALID [2022-04-28 04:15:20,507 INFO L290 TraceCheckUtils]: 67: Hoare triple {14173#false} havoc #t~mem11;call #t~mem12 := read~int(~a0.base, ~a0.offset + 4 * ~i~0, 4);~sum~0 := ~sum~0 + #t~mem12;havoc #t~mem12; {14173#false} is VALID [2022-04-28 04:15:20,507 INFO L290 TraceCheckUtils]: 68: Hoare triple {14173#false} #t~post10 := ~i~0;~i~0 := 1 + #t~post10;havoc #t~post10; {14173#false} is VALID [2022-04-28 04:15:20,507 INFO L290 TraceCheckUtils]: 69: Hoare triple {14173#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {14173#false} is VALID [2022-04-28 04:15:20,507 INFO L272 TraceCheckUtils]: 70: Hoare triple {14173#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {14173#false} is VALID [2022-04-28 04:15:20,507 INFO L290 TraceCheckUtils]: 71: Hoare triple {14173#false} ~cond := #in~cond; {14173#false} is VALID [2022-04-28 04:15:20,507 INFO L290 TraceCheckUtils]: 72: Hoare triple {14173#false} assume 0 == ~cond; {14173#false} is VALID [2022-04-28 04:15:20,507 INFO L290 TraceCheckUtils]: 73: Hoare triple {14173#false} assume !false; {14173#false} is VALID [2022-04-28 04:15:20,508 INFO L134 CoverageAnalysis]: Checked inductivity of 19 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 13 trivial. 0 not checked. [2022-04-28 04:15:20,508 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:15:20,508 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2121809439] [2022-04-28 04:15:20,508 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2121809439] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:15:20,508 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [942515392] [2022-04-28 04:15:20,508 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:15:20,508 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:15:20,508 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:15:20,509 INFO L229 MonitoredProcess]: Starting monitored process 15 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:15:20,510 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (15)] Waiting until timeout for monitored process [2022-04-28 04:15:20,606 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:15:20,606 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:15:20,609 INFO L263 TraceCheckSpWp]: Trace formula consists of 299 conjuncts, 114 conjunts are in the unsatisfiable core [2022-04-28 04:15:20,632 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:15:20,635 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:15:20,692 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 6 treesize of output 5 [2022-04-28 04:15:20,746 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 7 treesize of output 6 [2022-04-28 04:15:20,846 INFO L356 Elim1Store]: treesize reduction 4, result has 50.0 percent of original size [2022-04-28 04:15:20,846 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 11 treesize of output 11 [2022-04-28 04:15:20,913 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 14 treesize of output 16 [2022-04-28 04:15:20,983 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 32 [2022-04-28 04:15:21,031 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 32 [2022-04-28 04:15:26,590 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 26 [2022-04-28 04:15:31,589 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 80 treesize of output 74 [2022-04-28 04:15:39,218 WARN L855 $PredicateComparison]: unable to prove that (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_check_~a0.base_BEFORE_CALL_1 Int) (v_ArrVal_571 Int) (v_check_~a.base_BEFORE_CALL_1 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (let ((.cse2 ((as const (Array Int Int)) 0))) (and (= (let ((.cse1 (* downsweep_~left~1 4))) (store (let ((.cse0 (store (store .cse2 (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0))) (store .cse0 4 (+ (select .cse0 4) (select .cse0 .cse1)))) .cse1 v_ArrVal_571)) (select |c_#memory_int| v_check_~a.base_BEFORE_CALL_1)) (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (= .cse2 (select |c_#memory_int| v_check_~a0.base_BEFORE_CALL_1)) (<= 1 upsweep_~right~0) (not (= v_check_~a0.base_BEFORE_CALL_1 v_check_~a.base_BEFORE_CALL_1)) (<= downsweep_~left~1 0)))) is different from true [2022-04-28 04:15:59,065 INFO L356 Elim1Store]: treesize reduction 8, result has 75.8 percent of original size [2022-04-28 04:15:59,065 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 4 select indices, 4 select index equivalence classes, 2 disjoint index pairs (out of 6 index pairs), introduced 4 new quantified variables, introduced 4 case distinctions, treesize of input 163 treesize of output 175 [2022-04-28 04:16:00,627 INFO L272 TraceCheckUtils]: 0: Hoare triple {14172#true} call ULTIMATE.init(); {14172#true} is VALID [2022-04-28 04:16:00,627 INFO L290 TraceCheckUtils]: 1: Hoare triple {14172#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {14172#true} is VALID [2022-04-28 04:16:00,627 INFO L290 TraceCheckUtils]: 2: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:16:00,627 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {14172#true} {14172#true} #160#return; {14172#true} is VALID [2022-04-28 04:16:00,627 INFO L272 TraceCheckUtils]: 4: Hoare triple {14172#true} call #t~ret20 := main(); {14172#true} is VALID [2022-04-28 04:16:00,627 INFO L290 TraceCheckUtils]: 5: Hoare triple {14172#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {14172#true} is VALID [2022-04-28 04:16:00,627 INFO L272 TraceCheckUtils]: 6: Hoare triple {14172#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {14172#true} is VALID [2022-04-28 04:16:00,628 INFO L290 TraceCheckUtils]: 7: Hoare triple {14172#true} ~cond := #in~cond; {14172#true} is VALID [2022-04-28 04:16:00,628 INFO L290 TraceCheckUtils]: 8: Hoare triple {14172#true} assume !(0 == ~cond); {14172#true} is VALID [2022-04-28 04:16:00,628 INFO L290 TraceCheckUtils]: 9: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:16:00,628 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {14172#true} {14172#true} #142#return; {14172#true} is VALID [2022-04-28 04:16:00,628 INFO L272 TraceCheckUtils]: 11: Hoare triple {14172#true} call #t~ret14 := is_pow2(~n~0); {14172#true} is VALID [2022-04-28 04:16:00,628 INFO L290 TraceCheckUtils]: 12: Hoare triple {14172#true} ~x := #in~x; {14172#true} is VALID [2022-04-28 04:16:00,628 INFO L290 TraceCheckUtils]: 13: Hoare triple {14172#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {14172#true} is VALID [2022-04-28 04:16:00,628 INFO L290 TraceCheckUtils]: 14: Hoare triple {14172#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {14172#true} is VALID [2022-04-28 04:16:00,628 INFO L290 TraceCheckUtils]: 15: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:16:00,628 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {14172#true} {14172#true} #144#return; {14172#true} is VALID [2022-04-28 04:16:00,628 INFO L290 TraceCheckUtils]: 17: Hoare triple {14172#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {14172#true} is VALID [2022-04-28 04:16:00,628 INFO L272 TraceCheckUtils]: 18: Hoare triple {14172#true} call assume_abort_if_not(#t~ret14); {14172#true} is VALID [2022-04-28 04:16:00,628 INFO L290 TraceCheckUtils]: 19: Hoare triple {14172#true} ~cond := #in~cond; {14172#true} is VALID [2022-04-28 04:16:00,628 INFO L290 TraceCheckUtils]: 20: Hoare triple {14172#true} assume !(0 == ~cond); {14172#true} is VALID [2022-04-28 04:16:00,628 INFO L290 TraceCheckUtils]: 21: Hoare triple {14172#true} assume true; {14172#true} is VALID [2022-04-28 04:16:00,629 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {14172#true} {14172#true} #146#return; {14172#true} is VALID [2022-04-28 04:16:00,629 INFO L290 TraceCheckUtils]: 23: Hoare triple {14172#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {14299#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0))} is VALID [2022-04-28 04:16:00,630 INFO L272 TraceCheckUtils]: 24: Hoare triple {14299#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0))} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {14303#(exists ((|v_main_#t~malloc15.base_BEFORE_CALL_1| Int)) (= 1 (select |#valid| |v_main_#t~malloc15.base_BEFORE_CALL_1|)))} is VALID [2022-04-28 04:16:00,631 INFO L290 TraceCheckUtils]: 25: Hoare triple {14303#(exists ((|v_main_#t~malloc15.base_BEFORE_CALL_1| Int)) (= 1 (select |#valid| |v_main_#t~malloc15.base_BEFORE_CALL_1|)))} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {14307#(and (exists ((|v_main_#t~malloc15.base_BEFORE_CALL_1| Int)) (= 1 (select |#valid| |v_main_#t~malloc15.base_BEFORE_CALL_1|))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-04-28 04:16:00,631 INFO L290 TraceCheckUtils]: 26: Hoare triple {14307#(and (exists ((|v_main_#t~malloc15.base_BEFORE_CALL_1| Int)) (= 1 (select |#valid| |v_main_#t~malloc15.base_BEFORE_CALL_1|))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} assume true; {14307#(and (exists ((|v_main_#t~malloc15.base_BEFORE_CALL_1| Int)) (= 1 (select |#valid| |v_main_#t~malloc15.base_BEFORE_CALL_1|))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-04-28 04:16:00,632 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {14307#(and (exists ((|v_main_#t~malloc15.base_BEFORE_CALL_1| Int)) (= 1 (select |#valid| |v_main_#t~malloc15.base_BEFORE_CALL_1|))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} {14299#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0))} #148#return; {14314#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc15.base|)))} is VALID [2022-04-28 04:16:00,632 INFO L290 TraceCheckUtils]: 28: Hoare triple {14314#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc15.base|)))} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {14318#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} is VALID [2022-04-28 04:16:00,633 INFO L272 TraceCheckUtils]: 29: Hoare triple {14318#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {14226#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:16:00,633 INFO L290 TraceCheckUtils]: 30: Hoare triple {14226#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {14325#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| ((as const (Array Int Int)) 0)))} is VALID [2022-04-28 04:16:00,634 INFO L290 TraceCheckUtils]: 31: Hoare triple {14325#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| ((as const (Array Int Int)) 0)))} assume true; {14325#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| ((as const (Array Int Int)) 0)))} is VALID [2022-04-28 04:16:00,635 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {14325#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| ((as const (Array Int Int)) 0)))} {14318#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} #150#return; {14332#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc16.base|)) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} is VALID [2022-04-28 04:16:00,635 INFO L290 TraceCheckUtils]: 33: Hoare triple {14332#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc16.base|)) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {14336#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)))} is VALID [2022-04-28 04:16:00,636 INFO L290 TraceCheckUtils]: 34: Hoare triple {14336#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)))} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {14336#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)))} is VALID [2022-04-28 04:16:00,636 INFO L290 TraceCheckUtils]: 35: Hoare triple {14336#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {14336#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)))} is VALID [2022-04-28 04:16:00,637 INFO L290 TraceCheckUtils]: 36: Hoare triple {14336#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)))} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {14336#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)))} is VALID [2022-04-28 04:16:00,637 INFO L290 TraceCheckUtils]: 37: Hoare triple {14336#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {14336#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)))} is VALID [2022-04-28 04:16:00,638 INFO L290 TraceCheckUtils]: 38: Hoare triple {14336#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)))} assume !(~i~1 < ~n~0); {14336#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)))} is VALID [2022-04-28 04:16:00,638 INFO L272 TraceCheckUtils]: 39: Hoare triple {14336#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)))} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {14226#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:16:00,639 INFO L290 TraceCheckUtils]: 40: Hoare triple {14226#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {14358#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base) (<= |upsweep_#in~a.offset| upsweep_~a.offset) (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:16:00,639 INFO L290 TraceCheckUtils]: 41: Hoare triple {14358#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base) (<= |upsweep_#in~a.offset| upsweep_~a.offset) (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {14362#(and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 (+ upsweep_~left~0 1)) (= |upsweep_#in~a.base| upsweep_~a.base) (<= |upsweep_#in~a.offset| upsweep_~a.offset) (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:16:00,640 INFO L290 TraceCheckUtils]: 42: Hoare triple {14362#(and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 (+ upsweep_~left~0 1)) (= |upsweep_#in~a.base| upsweep_~a.base) (<= |upsweep_#in~a.offset| upsweep_~a.offset) (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {14366#(and (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= (* 2 upsweep_~space~0) (+ upsweep_~right~0 1)) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565))) (<= |upsweep_#in~a.offset| upsweep_~a.offset))) (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:16:01,390 WARN L290 TraceCheckUtils]: 43: Hoare triple {14366#(and (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= (* 2 upsweep_~space~0) (+ upsweep_~right~0 1)) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565))) (<= |upsweep_#in~a.offset| upsweep_~a.offset))) (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} assume !(~left~0 < ~n); {14366#(and (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= (* 2 upsweep_~space~0) (+ upsweep_~right~0 1)) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565))) (<= |upsweep_#in~a.offset| upsweep_~a.offset))) (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is UNKNOWN [2022-04-28 04:16:02,071 WARN L290 TraceCheckUtils]: 44: Hoare triple {14366#(and (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= (* 2 upsweep_~space~0) (+ upsweep_~right~0 1)) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565))) (<= |upsweep_#in~a.offset| upsweep_~a.offset))) (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} ~space~0 := 2 * ~space~0; {14373#(and (= 2 upsweep_~space~0) (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= 1 upsweep_~right~0) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565))) (<= |upsweep_#in~a.offset| upsweep_~a.offset))) (<= |upsweep_#in~n| upsweep_~n))} is UNKNOWN [2022-04-28 04:16:02,072 INFO L290 TraceCheckUtils]: 45: Hoare triple {14373#(and (= 2 upsweep_~space~0) (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= 1 upsweep_~right~0) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565))) (<= |upsweep_#in~a.offset| upsweep_~a.offset))) (<= |upsweep_#in~n| upsweep_~n))} assume !(~space~0 < ~n); {14377#(and (<= |upsweep_#in~n| upsweep_~space~0) (= 2 upsweep_~space~0) (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= 1 upsweep_~right~0) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565))) (<= |upsweep_#in~a.offset| upsweep_~a.offset))))} is VALID [2022-04-28 04:16:02,073 INFO L290 TraceCheckUtils]: 46: Hoare triple {14377#(and (<= |upsweep_#in~n| upsweep_~space~0) (= 2 upsweep_~space~0) (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= 1 upsweep_~right~0) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565))) (<= |upsweep_#in~a.offset| upsweep_~a.offset))))} #res := ~space~0; {14381#(and (<= |upsweep_#in~n| 2) (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= 1 upsweep_~right~0) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565))) (<= |upsweep_#in~a.offset| upsweep_~a.offset))) (= |upsweep_#res| 2))} is VALID [2022-04-28 04:16:02,074 INFO L290 TraceCheckUtils]: 47: Hoare triple {14381#(and (<= |upsweep_#in~n| 2) (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= 1 upsweep_~right~0) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565))) (<= |upsweep_#in~a.offset| upsweep_~a.offset))) (= |upsweep_#res| 2))} assume true; {14381#(and (<= |upsweep_#in~n| 2) (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= 1 upsweep_~right~0) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565))) (<= |upsweep_#in~a.offset| upsweep_~a.offset))) (= |upsweep_#res| 2))} is VALID [2022-04-28 04:16:02,075 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {14381#(and (<= |upsweep_#in~n| 2) (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= 1 upsweep_~right~0) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565))) (<= |upsweep_#in~a.offset| upsweep_~a.offset))) (= |upsweep_#res| 2))} {14336#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)))} #152#return; {14388#(and (<= main_~n~0 2) (= main_~a~0.offset 0) (= |main_#t~ret19| 2) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)) (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= 1 upsweep_~right~0) (= (select |#memory_int| main_~a~0.base) (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565)) (<= main_~a~0.offset upsweep_~a.offset))))} is VALID [2022-04-28 04:16:02,076 INFO L290 TraceCheckUtils]: 49: Hoare triple {14388#(and (<= main_~n~0 2) (= main_~a~0.offset 0) (= |main_#t~ret19| 2) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)) (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= 1 upsweep_~right~0) (= (select |#memory_int| main_~a~0.base) (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565)) (<= main_~a~0.offset upsweep_~a.offset))))} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {14392#(and (<= main_~n~0 2) (= main_~a~0.offset 0) (= 2 main_~space~1) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)) (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= 1 upsweep_~right~0) (= (select |#memory_int| main_~a~0.base) (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565)) (<= main_~a~0.offset upsweep_~a.offset))))} is VALID [2022-04-28 04:16:02,077 INFO L272 TraceCheckUtils]: 50: Hoare triple {14392#(and (<= main_~n~0 2) (= main_~a~0.offset 0) (= 2 main_~space~1) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)) (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= 1 upsweep_~right~0) (= (select |#memory_int| main_~a~0.base) (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565)) (<= main_~a~0.offset upsweep_~a.offset))))} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {14226#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:16:02,078 INFO L290 TraceCheckUtils]: 51: Hoare triple {14226#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {14399#(and (= downsweep_~a.base |downsweep_#in~a.base|) (= |#memory_int| (store |old(#memory_int)| downsweep_~a.base (store (select |old(#memory_int)| downsweep_~a.base) (+ (* |downsweep_#in~n| 4) downsweep_~a.offset (- 4)) 0))) (= downsweep_~a.offset |downsweep_#in~a.offset|) (or (and (or (= (mod |downsweep_#in~space| 2) 0) (not (< |downsweep_#in~space| 0))) (= downsweep_~space (div |downsweep_#in~space| 2))) (and (not (= (mod |downsweep_#in~space| 2) 0)) (< |downsweep_#in~space| 0) (= downsweep_~space (+ (div |downsweep_#in~space| 2) 1)))))} is VALID [2022-04-28 04:16:02,079 INFO L290 TraceCheckUtils]: 52: Hoare triple {14399#(and (= downsweep_~a.base |downsweep_#in~a.base|) (= |#memory_int| (store |old(#memory_int)| downsweep_~a.base (store (select |old(#memory_int)| downsweep_~a.base) (+ (* |downsweep_#in~n| 4) downsweep_~a.offset (- 4)) 0))) (= downsweep_~a.offset |downsweep_#in~a.offset|) (or (and (or (= (mod |downsweep_#in~space| 2) 0) (not (< |downsweep_#in~space| 0))) (= downsweep_~space (div |downsweep_#in~space| 2))) (and (not (= (mod |downsweep_#in~space| 2) 0)) (< |downsweep_#in~space| 0) (= downsweep_~space (+ (div |downsweep_#in~space| 2) 1)))))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {14403#(and (= downsweep_~a.base |downsweep_#in~a.base|) (= |#memory_int| (store |old(#memory_int)| downsweep_~a.base (store (select |old(#memory_int)| downsweep_~a.base) (+ (* |downsweep_#in~n| 4) downsweep_~a.offset (- 4)) 0))) (= downsweep_~a.offset |downsweep_#in~a.offset|) (= downsweep_~space (div |downsweep_#in~space| 2)) (= downsweep_~right~1 (+ (- 1) (* 2 downsweep_~space))) (< 0 downsweep_~space))} is VALID [2022-04-28 04:16:02,087 INFO L290 TraceCheckUtils]: 53: Hoare triple {14403#(and (= downsweep_~a.base |downsweep_#in~a.base|) (= |#memory_int| (store |old(#memory_int)| downsweep_~a.base (store (select |old(#memory_int)| downsweep_~a.base) (+ (* |downsweep_#in~n| 4) downsweep_~a.offset (- 4)) 0))) (= downsweep_~a.offset |downsweep_#in~a.offset|) (= downsweep_~space (div |downsweep_#in~space| 2)) (= downsweep_~right~1 (+ (- 1) (* 2 downsweep_~space))) (< 0 downsweep_~space))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {14407#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((v_ArrVal_571 Int) (downsweep_~left~1 Int)) (and (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4))))) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4)) v_ArrVal_571))) (<= (+ downsweep_~left~1 1) (div |downsweep_#in~space| 2)))))} is VALID [2022-04-28 04:16:03,317 WARN L290 TraceCheckUtils]: 54: Hoare triple {14407#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((v_ArrVal_571 Int) (downsweep_~left~1 Int)) (and (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4))))) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4)) v_ArrVal_571))) (<= (+ downsweep_~left~1 1) (div |downsweep_#in~space| 2)))))} assume !(~right~1 < ~n); {14407#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((v_ArrVal_571 Int) (downsweep_~left~1 Int)) (and (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4))))) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4)) v_ArrVal_571))) (<= (+ downsweep_~left~1 1) (div |downsweep_#in~space| 2)))))} is UNKNOWN [2022-04-28 04:16:04,572 WARN L290 TraceCheckUtils]: 55: Hoare triple {14407#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((v_ArrVal_571 Int) (downsweep_~left~1 Int)) (and (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4))))) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4)) v_ArrVal_571))) (<= (+ downsweep_~left~1 1) (div |downsweep_#in~space| 2)))))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {14407#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((v_ArrVal_571 Int) (downsweep_~left~1 Int)) (and (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4))))) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4)) v_ArrVal_571))) (<= (+ downsweep_~left~1 1) (div |downsweep_#in~space| 2)))))} is UNKNOWN [2022-04-28 04:16:05,768 WARN L290 TraceCheckUtils]: 56: Hoare triple {14407#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((v_ArrVal_571 Int) (downsweep_~left~1 Int)) (and (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4))))) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4)) v_ArrVal_571))) (<= (+ downsweep_~left~1 1) (div |downsweep_#in~space| 2)))))} assume !(~space > 0); {14407#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((v_ArrVal_571 Int) (downsweep_~left~1 Int)) (and (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4))))) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4)) v_ArrVal_571))) (<= (+ downsweep_~left~1 1) (div |downsweep_#in~space| 2)))))} is UNKNOWN [2022-04-28 04:16:07,776 WARN L290 TraceCheckUtils]: 57: Hoare triple {14407#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((v_ArrVal_571 Int) (downsweep_~left~1 Int)) (and (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4))))) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4)) v_ArrVal_571))) (<= (+ downsweep_~left~1 1) (div |downsweep_#in~space| 2)))))} assume true; {14407#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((v_ArrVal_571 Int) (downsweep_~left~1 Int)) (and (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4))))) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4)) v_ArrVal_571))) (<= (+ downsweep_~left~1 1) (div |downsweep_#in~space| 2)))))} is UNKNOWN [2022-04-28 04:16:09,284 WARN L284 TraceCheckUtils]: 58: Hoare quadruple {14407#(and (< 0 (div |downsweep_#in~space| 2)) (exists ((v_ArrVal_571 Int) (downsweep_~left~1 Int)) (and (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4))))) (+ |downsweep_#in~a.offset| (* downsweep_~left~1 4)) v_ArrVal_571))) (<= (+ downsweep_~left~1 1) (div |downsweep_#in~space| 2)))))} {14392#(and (<= main_~n~0 2) (= main_~a~0.offset 0) (= 2 main_~space~1) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)) (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (upsweep_~right~0 Int)) (and (<= 1 upsweep_~right~0) (= (select |#memory_int| main_~a~0.base) (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565)) (<= main_~a~0.offset upsweep_~a.offset))))} #154#return; {14423#(and (<= main_~n~0 2) (= main_~a~0.offset 0) (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 1 upsweep_~right~0) (<= downsweep_~left~1 0) (= (select |#memory_int| main_~a~0.base) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ main_~a~0.offset (* main_~n~0 4) (- 4)) 0) (+ main_~a~0.offset 4) (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ main_~a~0.offset (* main_~n~0 4) (- 4)) 0) (+ main_~a~0.offset 4)) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ main_~a~0.offset (* main_~n~0 4) (- 4)) 0) (+ main_~a~0.offset (* downsweep_~left~1 4))))) (+ main_~a~0.offset (* downsweep_~left~1 4)) v_ArrVal_571)) (<= main_~a~0.offset upsweep_~a.offset))) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)))} is UNKNOWN [2022-04-28 04:16:11,288 WARN L272 TraceCheckUtils]: 59: Hoare triple {14423#(and (<= main_~n~0 2) (= main_~a~0.offset 0) (exists ((v_ArrVal_565 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 1 upsweep_~right~0) (<= downsweep_~left~1 0) (= (select |#memory_int| main_~a~0.base) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ main_~a~0.offset (* main_~n~0 4) (- 4)) 0) (+ main_~a~0.offset 4) (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ main_~a~0.offset (* main_~n~0 4) (- 4)) 0) (+ main_~a~0.offset 4)) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ main_~a~0.offset (* main_~n~0 4) (- 4)) 0) (+ main_~a~0.offset (* downsweep_~left~1 4))))) (+ main_~a~0.offset (* downsweep_~left~1 4)) v_ArrVal_571)) (<= main_~a~0.offset upsweep_~a.offset))) (not (= main_~a~0.base main_~a0~0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| main_~a0~0.base)))} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {14427#(and (= |check_#in~a.offset| 0) (not (= |check_#in~a0.base| |check_#in~a.base|)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |check_#in~a0.base|)) (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 0 upsweep_~a.offset) (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| |check_#in~a.base|)) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= |check_#in~n| v_main_~n~0_BEFORE_CALL_59) (<= 1 upsweep_~right~0) (<= downsweep_~left~1 0))))} is UNKNOWN [2022-04-28 04:16:13,293 WARN L290 TraceCheckUtils]: 60: Hoare triple {14427#(and (= |check_#in~a.offset| 0) (not (= |check_#in~a0.base| |check_#in~a.base|)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |check_#in~a0.base|)) (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 0 upsweep_~a.offset) (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| |check_#in~a.base|)) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= |check_#in~n| v_main_~n~0_BEFORE_CALL_59) (<= 1 upsweep_~right~0) (<= downsweep_~left~1 0))))} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {14431#(and (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (<= downsweep_~left~1 0) (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| check_~a.base)) (<= check_~n v_main_~n~0_BEFORE_CALL_59))) (not (= check_~a.base check_~a0.base)) (= check_~i~0 0) (= check_~sum~0 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a0.base)) (= check_~a.offset 0))} is UNKNOWN [2022-04-28 04:16:13,299 INFO L290 TraceCheckUtils]: 61: Hoare triple {14431#(and (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (<= downsweep_~left~1 0) (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| check_~a.base)) (<= check_~n v_main_~n~0_BEFORE_CALL_59))) (not (= check_~a.base check_~a0.base)) (= check_~i~0 0) (= check_~sum~0 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a0.base)) (= check_~a.offset 0))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {14431#(and (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (<= downsweep_~left~1 0) (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| check_~a.base)) (<= check_~n v_main_~n~0_BEFORE_CALL_59))) (not (= check_~a.base check_~a0.base)) (= check_~i~0 0) (= check_~sum~0 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a0.base)) (= check_~a.offset 0))} is VALID [2022-04-28 04:16:15,349 WARN L272 TraceCheckUtils]: 62: Hoare triple {14431#(and (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (<= downsweep_~left~1 0) (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| check_~a.base)) (<= check_~n v_main_~n~0_BEFORE_CALL_59))) (not (= check_~a.base check_~a0.base)) (= check_~i~0 0) (= check_~sum~0 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a0.base)) (= check_~a.offset 0))} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {14438#(exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_check_~a0.base_BEFORE_CALL_1 Int) (v_ArrVal_571 Int) (v_check_~a.base_BEFORE_CALL_1 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| v_check_~a.base_BEFORE_CALL_1)) (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (not (= v_check_~a0.base_BEFORE_CALL_1 v_check_~a.base_BEFORE_CALL_1)) (<= downsweep_~left~1 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a0.base_BEFORE_CALL_1))))} is UNKNOWN [2022-04-28 04:16:17,362 WARN L290 TraceCheckUtils]: 63: Hoare triple {14438#(exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_check_~a0.base_BEFORE_CALL_1 Int) (v_ArrVal_571 Int) (v_check_~a.base_BEFORE_CALL_1 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| v_check_~a.base_BEFORE_CALL_1)) (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (not (= v_check_~a0.base_BEFORE_CALL_1 v_check_~a.base_BEFORE_CALL_1)) (<= downsweep_~left~1 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a0.base_BEFORE_CALL_1))))} ~cond := #in~cond; {14438#(exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_check_~a0.base_BEFORE_CALL_1 Int) (v_ArrVal_571 Int) (v_check_~a.base_BEFORE_CALL_1 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| v_check_~a.base_BEFORE_CALL_1)) (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (not (= v_check_~a0.base_BEFORE_CALL_1 v_check_~a.base_BEFORE_CALL_1)) (<= downsweep_~left~1 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a0.base_BEFORE_CALL_1))))} is UNKNOWN [2022-04-28 04:16:17,392 INFO L290 TraceCheckUtils]: 64: Hoare triple {14438#(exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_check_~a0.base_BEFORE_CALL_1 Int) (v_ArrVal_571 Int) (v_check_~a.base_BEFORE_CALL_1 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| v_check_~a.base_BEFORE_CALL_1)) (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (not (= v_check_~a0.base_BEFORE_CALL_1 v_check_~a.base_BEFORE_CALL_1)) (<= downsweep_~left~1 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a0.base_BEFORE_CALL_1))))} assume !(0 == ~cond); {14438#(exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_check_~a0.base_BEFORE_CALL_1 Int) (v_ArrVal_571 Int) (v_check_~a.base_BEFORE_CALL_1 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| v_check_~a.base_BEFORE_CALL_1)) (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (not (= v_check_~a0.base_BEFORE_CALL_1 v_check_~a.base_BEFORE_CALL_1)) (<= downsweep_~left~1 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a0.base_BEFORE_CALL_1))))} is VALID [2022-04-28 04:16:19,418 WARN L290 TraceCheckUtils]: 65: Hoare triple {14438#(exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_check_~a0.base_BEFORE_CALL_1 Int) (v_ArrVal_571 Int) (v_check_~a.base_BEFORE_CALL_1 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| v_check_~a.base_BEFORE_CALL_1)) (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (not (= v_check_~a0.base_BEFORE_CALL_1 v_check_~a.base_BEFORE_CALL_1)) (<= downsweep_~left~1 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a0.base_BEFORE_CALL_1))))} assume true; {14438#(exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_check_~a0.base_BEFORE_CALL_1 Int) (v_ArrVal_571 Int) (v_check_~a.base_BEFORE_CALL_1 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| v_check_~a.base_BEFORE_CALL_1)) (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (not (= v_check_~a0.base_BEFORE_CALL_1 v_check_~a.base_BEFORE_CALL_1)) (<= downsweep_~left~1 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a0.base_BEFORE_CALL_1))))} is UNKNOWN [2022-04-28 04:16:19,419 INFO L284 TraceCheckUtils]: 66: Hoare quadruple {14438#(exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_check_~a0.base_BEFORE_CALL_1 Int) (v_ArrVal_571 Int) (v_check_~a.base_BEFORE_CALL_1 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| v_check_~a.base_BEFORE_CALL_1)) (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (not (= v_check_~a0.base_BEFORE_CALL_1 v_check_~a.base_BEFORE_CALL_1)) (<= downsweep_~left~1 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a0.base_BEFORE_CALL_1))))} {14431#(and (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (<= downsweep_~left~1 0) (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| check_~a.base)) (<= check_~n v_main_~n~0_BEFORE_CALL_59))) (not (= check_~a.base check_~a0.base)) (= check_~i~0 0) (= check_~sum~0 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a0.base)) (= check_~a.offset 0))} #158#return; {14451#(and (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (<= downsweep_~left~1 0) (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| check_~a.base)) (<= check_~n v_main_~n~0_BEFORE_CALL_59))) (not (= check_~a.base check_~a0.base)) (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_check_~a0.base_BEFORE_CALL_1 Int) (v_ArrVal_571 Int) (v_check_~a.base_BEFORE_CALL_1 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| v_check_~a.base_BEFORE_CALL_1)) (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (not (= v_check_~a0.base_BEFORE_CALL_1 v_check_~a.base_BEFORE_CALL_1)) (<= downsweep_~left~1 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a0.base_BEFORE_CALL_1)))) (= check_~i~0 0) (= check_~sum~0 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a0.base)) (= check_~a.offset 0))} is VALID [2022-04-28 04:16:21,452 WARN L290 TraceCheckUtils]: 67: Hoare triple {14451#(and (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (<= downsweep_~left~1 0) (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| check_~a.base)) (<= check_~n v_main_~n~0_BEFORE_CALL_59))) (not (= check_~a.base check_~a0.base)) (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_check_~a0.base_BEFORE_CALL_1 Int) (v_ArrVal_571 Int) (v_check_~a.base_BEFORE_CALL_1 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| v_check_~a.base_BEFORE_CALL_1)) (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (not (= v_check_~a0.base_BEFORE_CALL_1 v_check_~a.base_BEFORE_CALL_1)) (<= downsweep_~left~1 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a0.base_BEFORE_CALL_1)))) (= check_~i~0 0) (= check_~sum~0 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a0.base)) (= check_~a.offset 0))} havoc #t~mem11;call #t~mem12 := read~int(~a0.base, ~a0.offset + 4 * ~i~0, 4);~sum~0 := ~sum~0 + #t~mem12;havoc #t~mem12; {14455#(and (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (<= downsweep_~left~1 0) (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| check_~a.base)) (<= check_~n v_main_~n~0_BEFORE_CALL_59))) (exists ((v_ArrVal_573 Int) (v_ArrVal_572 Int) (v_check_~a0.base_BEFORE_CALL_1 Int) (v_check_~a.base_BEFORE_CALL_1 Int) (v_downsweep_~left~1_29 Int) (v_main_~n~0_BEFORE_CALL_60 Int) (v_upsweep_~a.offset_36 Int) (v_upsweep_~right~0_29 Int)) (and (<= 0 v_upsweep_~a.offset_36) (= (select |#memory_int| v_check_~a.base_BEFORE_CALL_1) (store (store (store (store ((as const (Array Int Int)) 0) (+ v_upsweep_~a.offset_36 (* v_upsweep_~right~0_29 4)) v_ArrVal_572) (+ (- 4) (* v_main_~n~0_BEFORE_CALL_60 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ v_upsweep_~a.offset_36 (* v_upsweep_~right~0_29 4)) v_ArrVal_572) (+ (- 4) (* v_main_~n~0_BEFORE_CALL_60 4)) 0) (* v_downsweep_~left~1_29 4)) (select (store (store ((as const (Array Int Int)) 0) (+ v_upsweep_~a.offset_36 (* v_upsweep_~right~0_29 4)) v_ArrVal_572) (+ (- 4) (* v_main_~n~0_BEFORE_CALL_60 4)) 0) 4))) (* v_downsweep_~left~1_29 4) v_ArrVal_573)) (not (= v_check_~a0.base_BEFORE_CALL_1 v_check_~a.base_BEFORE_CALL_1)) (<= v_downsweep_~left~1_29 0) (<= v_main_~n~0_BEFORE_CALL_60 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a0.base_BEFORE_CALL_1)) (<= 1 v_upsweep_~right~0_29))) (= check_~i~0 0) (exists ((check_~a0.base Int) (check_~a0.offset Int)) (and (= (+ check_~sum~0 (* (- 1) (select (select |#memory_int| check_~a0.base) (+ check_~a0.offset (* check_~i~0 4))))) 0) (not (= check_~a.base check_~a0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a0.base)))) (= check_~a.offset 0))} is UNKNOWN [2022-04-28 04:16:23,468 WARN L290 TraceCheckUtils]: 68: Hoare triple {14455#(and (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (<= downsweep_~left~1 0) (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| check_~a.base)) (<= check_~n v_main_~n~0_BEFORE_CALL_59))) (exists ((v_ArrVal_573 Int) (v_ArrVal_572 Int) (v_check_~a0.base_BEFORE_CALL_1 Int) (v_check_~a.base_BEFORE_CALL_1 Int) (v_downsweep_~left~1_29 Int) (v_main_~n~0_BEFORE_CALL_60 Int) (v_upsweep_~a.offset_36 Int) (v_upsweep_~right~0_29 Int)) (and (<= 0 v_upsweep_~a.offset_36) (= (select |#memory_int| v_check_~a.base_BEFORE_CALL_1) (store (store (store (store ((as const (Array Int Int)) 0) (+ v_upsweep_~a.offset_36 (* v_upsweep_~right~0_29 4)) v_ArrVal_572) (+ (- 4) (* v_main_~n~0_BEFORE_CALL_60 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ v_upsweep_~a.offset_36 (* v_upsweep_~right~0_29 4)) v_ArrVal_572) (+ (- 4) (* v_main_~n~0_BEFORE_CALL_60 4)) 0) (* v_downsweep_~left~1_29 4)) (select (store (store ((as const (Array Int Int)) 0) (+ v_upsweep_~a.offset_36 (* v_upsweep_~right~0_29 4)) v_ArrVal_572) (+ (- 4) (* v_main_~n~0_BEFORE_CALL_60 4)) 0) 4))) (* v_downsweep_~left~1_29 4) v_ArrVal_573)) (not (= v_check_~a0.base_BEFORE_CALL_1 v_check_~a.base_BEFORE_CALL_1)) (<= v_downsweep_~left~1_29 0) (<= v_main_~n~0_BEFORE_CALL_60 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a0.base_BEFORE_CALL_1)) (<= 1 v_upsweep_~right~0_29))) (= check_~i~0 0) (exists ((check_~a0.base Int) (check_~a0.offset Int)) (and (= (+ check_~sum~0 (* (- 1) (select (select |#memory_int| check_~a0.base) (+ check_~a0.offset (* check_~i~0 4))))) 0) (not (= check_~a.base check_~a0.base)) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a0.base)))) (= check_~a.offset 0))} #t~post10 := ~i~0;~i~0 := 1 + #t~post10;havoc #t~post10; {14459#(and (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (<= downsweep_~left~1 0) (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| check_~a.base)) (<= check_~n v_main_~n~0_BEFORE_CALL_59))) (exists ((v_ArrVal_573 Int) (v_ArrVal_572 Int) (v_check_~a0.base_BEFORE_CALL_1 Int) (v_check_~a.base_BEFORE_CALL_1 Int) (v_downsweep_~left~1_29 Int) (v_main_~n~0_BEFORE_CALL_60 Int) (v_upsweep_~a.offset_36 Int) (v_upsweep_~right~0_29 Int)) (and (<= 0 v_upsweep_~a.offset_36) (= (select |#memory_int| v_check_~a.base_BEFORE_CALL_1) (store (store (store (store ((as const (Array Int Int)) 0) (+ v_upsweep_~a.offset_36 (* v_upsweep_~right~0_29 4)) v_ArrVal_572) (+ (- 4) (* v_main_~n~0_BEFORE_CALL_60 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ v_upsweep_~a.offset_36 (* v_upsweep_~right~0_29 4)) v_ArrVal_572) (+ (- 4) (* v_main_~n~0_BEFORE_CALL_60 4)) 0) (* v_downsweep_~left~1_29 4)) (select (store (store ((as const (Array Int Int)) 0) (+ v_upsweep_~a.offset_36 (* v_upsweep_~right~0_29 4)) v_ArrVal_572) (+ (- 4) (* v_main_~n~0_BEFORE_CALL_60 4)) 0) 4))) (* v_downsweep_~left~1_29 4) v_ArrVal_573)) (not (= v_check_~a0.base_BEFORE_CALL_1 v_check_~a.base_BEFORE_CALL_1)) (<= v_downsweep_~left~1_29 0) (<= v_main_~n~0_BEFORE_CALL_60 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a0.base_BEFORE_CALL_1)) (<= 1 v_upsweep_~right~0_29))) (= check_~i~0 1) (= check_~a.offset 0) (exists ((check_~a0.base Int) (check_~a0.offset Int)) (and (not (= check_~a.base check_~a0.base)) (= (+ (* (- 1) (select (select |#memory_int| check_~a0.base) check_~a0.offset)) check_~sum~0) 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a0.base)))))} is UNKNOWN [2022-04-28 04:16:23,474 INFO L290 TraceCheckUtils]: 69: Hoare triple {14459#(and (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (<= downsweep_~left~1 0) (= (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) (select |#memory_int| check_~a.base)) (<= check_~n v_main_~n~0_BEFORE_CALL_59))) (exists ((v_ArrVal_573 Int) (v_ArrVal_572 Int) (v_check_~a0.base_BEFORE_CALL_1 Int) (v_check_~a.base_BEFORE_CALL_1 Int) (v_downsweep_~left~1_29 Int) (v_main_~n~0_BEFORE_CALL_60 Int) (v_upsweep_~a.offset_36 Int) (v_upsweep_~right~0_29 Int)) (and (<= 0 v_upsweep_~a.offset_36) (= (select |#memory_int| v_check_~a.base_BEFORE_CALL_1) (store (store (store (store ((as const (Array Int Int)) 0) (+ v_upsweep_~a.offset_36 (* v_upsweep_~right~0_29 4)) v_ArrVal_572) (+ (- 4) (* v_main_~n~0_BEFORE_CALL_60 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ v_upsweep_~a.offset_36 (* v_upsweep_~right~0_29 4)) v_ArrVal_572) (+ (- 4) (* v_main_~n~0_BEFORE_CALL_60 4)) 0) (* v_downsweep_~left~1_29 4)) (select (store (store ((as const (Array Int Int)) 0) (+ v_upsweep_~a.offset_36 (* v_upsweep_~right~0_29 4)) v_ArrVal_572) (+ (- 4) (* v_main_~n~0_BEFORE_CALL_60 4)) 0) 4))) (* v_downsweep_~left~1_29 4) v_ArrVal_573)) (not (= v_check_~a0.base_BEFORE_CALL_1 v_check_~a.base_BEFORE_CALL_1)) (<= v_downsweep_~left~1_29 0) (<= v_main_~n~0_BEFORE_CALL_60 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a0.base_BEFORE_CALL_1)) (<= 1 v_upsweep_~right~0_29))) (= check_~i~0 1) (= check_~a.offset 0) (exists ((check_~a0.base Int) (check_~a0.offset Int)) (and (not (= check_~a.base check_~a0.base)) (= (+ (* (- 1) (select (select |#memory_int| check_~a0.base) check_~a0.offset)) check_~sum~0) 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a0.base)))))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {14463#(and (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (= (select (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) 4) |check_#t~mem11|) (< 1 v_main_~n~0_BEFORE_CALL_59) (<= downsweep_~left~1 0))) (exists ((check_~a0.offset Int)) (= (+ (* (- 1) (select ((as const (Array Int Int)) 0) check_~a0.offset)) check_~sum~0) 0)))} is VALID [2022-04-28 04:16:23,476 INFO L272 TraceCheckUtils]: 70: Hoare triple {14463#(and (exists ((v_ArrVal_565 Int) (v_main_~n~0_BEFORE_CALL_59 Int) (upsweep_~a.offset Int) (v_ArrVal_571 Int) (downsweep_~left~1 Int) (upsweep_~right~0 Int)) (and (<= 0 upsweep_~a.offset) (<= v_main_~n~0_BEFORE_CALL_59 2) (<= 1 upsweep_~right~0) (= (select (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) v_ArrVal_565) (+ (* v_main_~n~0_BEFORE_CALL_59 4) (- 4)) 0) (* downsweep_~left~1 4)))) (* downsweep_~left~1 4) v_ArrVal_571) 4) |check_#t~mem11|) (< 1 v_main_~n~0_BEFORE_CALL_59) (<= downsweep_~left~1 0))) (exists ((check_~a0.offset Int)) (= (+ (* (- 1) (select ((as const (Array Int Int)) 0) check_~a0.offset)) check_~sum~0) 0)))} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {14467#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-28 04:16:23,476 INFO L290 TraceCheckUtils]: 71: Hoare triple {14467#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {14471#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:16:23,477 INFO L290 TraceCheckUtils]: 72: Hoare triple {14471#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {14173#false} is VALID [2022-04-28 04:16:23,477 INFO L290 TraceCheckUtils]: 73: Hoare triple {14173#false} assume !false; {14173#false} is VALID [2022-04-28 04:16:23,477 INFO L134 CoverageAnalysis]: Checked inductivity of 19 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 8 trivial. 2 not checked. [2022-04-28 04:16:23,477 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:16:23,980 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [942515392] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:16:23,980 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:16:23,980 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 32] total 41 [2022-04-28 04:16:23,981 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:16:23,981 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [736449627] [2022-04-28 04:16:23,981 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [736449627] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:16:23,981 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:16:23,981 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [12] imperfect sequences [] total 12 [2022-04-28 04:16:23,981 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [858144731] [2022-04-28 04:16:23,981 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:16:23,981 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 12 states have (on average 3.9166666666666665) internal successors, (47), 10 states have internal predecessors, (47), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) Word has length 74 [2022-04-28 04:16:23,982 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:16:23,982 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 12 states, 12 states have (on average 3.9166666666666665) internal successors, (47), 10 states have internal predecessors, (47), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-28 04:16:24,040 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 68 edges. 68 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:16:24,040 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-04-28 04:16:24,040 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:16:24,041 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-04-28 04:16:24,041 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=110, Invalid=1776, Unknown=10, NotChecked=84, Total=1980 [2022-04-28 04:16:24,042 INFO L87 Difference]: Start difference. First operand 101 states and 121 transitions. Second operand has 12 states, 12 states have (on average 3.9166666666666665) internal successors, (47), 10 states have internal predecessors, (47), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-28 04:16:26,336 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:16:27,953 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:16:27,953 INFO L93 Difference]: Finished difference Result 185 states and 226 transitions. [2022-04-28 04:16:27,953 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2022-04-28 04:16:27,953 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 12 states have (on average 3.9166666666666665) internal successors, (47), 10 states have internal predecessors, (47), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) Word has length 74 [2022-04-28 04:16:27,954 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:16:27,954 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 12 states have (on average 3.9166666666666665) internal successors, (47), 10 states have internal predecessors, (47), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-28 04:16:27,955 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 129 transitions. [2022-04-28 04:16:27,955 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 12 states have (on average 3.9166666666666665) internal successors, (47), 10 states have internal predecessors, (47), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-28 04:16:27,956 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 129 transitions. [2022-04-28 04:16:27,956 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 16 states and 129 transitions. [2022-04-28 04:16:28,260 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 129 edges. 129 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:16:28,262 INFO L225 Difference]: With dead ends: 185 [2022-04-28 04:16:28,262 INFO L226 Difference]: Without dead ends: 123 [2022-04-28 04:16:28,263 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 121 GetRequests, 63 SyntacticMatches, 3 SemanticMatches, 55 ConstructedPredicates, 1 IntricatePredicates, 0 DeprecatedPredicates, 531 ImplicationChecksByTransitivity, 31.1s TimeCoverageRelationStatistics Valid=190, Invalid=2884, Unknown=10, NotChecked=108, Total=3192 [2022-04-28 04:16:28,267 INFO L413 NwaCegarLoop]: 52 mSDtfsCounter, 84 mSDsluCounter, 11 mSDsCounter, 0 mSdLazyCounter, 462 mSolverCounterSat, 62 mSolverCounterUnsat, 1 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 2.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 85 SdHoareTripleChecker+Valid, 63 SdHoareTripleChecker+Invalid, 525 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 62 IncrementalHoareTripleChecker+Valid, 462 IncrementalHoareTripleChecker+Invalid, 1 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 2.6s IncrementalHoareTripleChecker+Time [2022-04-28 04:16:28,268 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [85 Valid, 63 Invalid, 525 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [62 Valid, 462 Invalid, 1 Unknown, 0 Unchecked, 2.6s Time] [2022-04-28 04:16:28,268 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 123 states. [2022-04-28 04:16:28,573 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 123 to 117. [2022-04-28 04:16:28,573 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:16:28,573 INFO L82 GeneralOperation]: Start isEquivalent. First operand 123 states. Second operand has 117 states, 87 states have (on average 1.206896551724138) internal successors, (105), 90 states have internal predecessors, (105), 18 states have call successors, (18), 11 states have call predecessors, (18), 11 states have return successors, (18), 15 states have call predecessors, (18), 15 states have call successors, (18) [2022-04-28 04:16:28,573 INFO L74 IsIncluded]: Start isIncluded. First operand 123 states. Second operand has 117 states, 87 states have (on average 1.206896551724138) internal successors, (105), 90 states have internal predecessors, (105), 18 states have call successors, (18), 11 states have call predecessors, (18), 11 states have return successors, (18), 15 states have call predecessors, (18), 15 states have call successors, (18) [2022-04-28 04:16:28,574 INFO L87 Difference]: Start difference. First operand 123 states. Second operand has 117 states, 87 states have (on average 1.206896551724138) internal successors, (105), 90 states have internal predecessors, (105), 18 states have call successors, (18), 11 states have call predecessors, (18), 11 states have return successors, (18), 15 states have call predecessors, (18), 15 states have call successors, (18) [2022-04-28 04:16:28,576 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:16:28,576 INFO L93 Difference]: Finished difference Result 123 states and 151 transitions. [2022-04-28 04:16:28,576 INFO L276 IsEmpty]: Start isEmpty. Operand 123 states and 151 transitions. [2022-04-28 04:16:28,576 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:16:28,576 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:16:28,576 INFO L74 IsIncluded]: Start isIncluded. First operand has 117 states, 87 states have (on average 1.206896551724138) internal successors, (105), 90 states have internal predecessors, (105), 18 states have call successors, (18), 11 states have call predecessors, (18), 11 states have return successors, (18), 15 states have call predecessors, (18), 15 states have call successors, (18) Second operand 123 states. [2022-04-28 04:16:28,577 INFO L87 Difference]: Start difference. First operand has 117 states, 87 states have (on average 1.206896551724138) internal successors, (105), 90 states have internal predecessors, (105), 18 states have call successors, (18), 11 states have call predecessors, (18), 11 states have return successors, (18), 15 states have call predecessors, (18), 15 states have call successors, (18) Second operand 123 states. [2022-04-28 04:16:28,578 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:16:28,578 INFO L93 Difference]: Finished difference Result 123 states and 151 transitions. [2022-04-28 04:16:28,578 INFO L276 IsEmpty]: Start isEmpty. Operand 123 states and 151 transitions. [2022-04-28 04:16:28,579 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:16:28,579 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:16:28,579 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:16:28,579 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:16:28,579 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 117 states, 87 states have (on average 1.206896551724138) internal successors, (105), 90 states have internal predecessors, (105), 18 states have call successors, (18), 11 states have call predecessors, (18), 11 states have return successors, (18), 15 states have call predecessors, (18), 15 states have call successors, (18) [2022-04-28 04:16:28,581 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 117 states to 117 states and 141 transitions. [2022-04-28 04:16:28,581 INFO L78 Accepts]: Start accepts. Automaton has 117 states and 141 transitions. Word has length 74 [2022-04-28 04:16:28,581 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:16:28,581 INFO L495 AbstractCegarLoop]: Abstraction has 117 states and 141 transitions. [2022-04-28 04:16:28,581 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 12 states, 12 states have (on average 3.9166666666666665) internal successors, (47), 10 states have internal predecessors, (47), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-28 04:16:28,581 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 117 states and 141 transitions. [2022-04-28 04:16:28,884 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 141 edges. 141 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:16:28,884 INFO L276 IsEmpty]: Start isEmpty. Operand 117 states and 141 transitions. [2022-04-28 04:16:28,884 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 74 [2022-04-28 04:16:28,884 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:16:28,885 INFO L195 NwaCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1] [2022-04-28 04:16:28,904 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (15)] Forceful destruction successful, exit code 0 [2022-04-28 04:16:29,085 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable15,15 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:16:29,085 INFO L420 AbstractCegarLoop]: === Iteration 17 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:16:29,085 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:16:29,086 INFO L85 PathProgramCache]: Analyzing trace with hash -1541127366, now seen corresponding path program 11 times [2022-04-28 04:16:29,086 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:16:29,086 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [969060821] [2022-04-28 04:16:29,086 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:16:29,086 INFO L85 PathProgramCache]: Analyzing trace with hash -1541127366, now seen corresponding path program 12 times [2022-04-28 04:16:29,086 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:16:29,086 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1677528652] [2022-04-28 04:16:29,086 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:16:29,086 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:16:29,117 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:29,142 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:16:29,143 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:29,145 INFO L290 TraceCheckUtils]: 0: Hoare triple {15428#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {15380#true} is VALID [2022-04-28 04:16:29,145 INFO L290 TraceCheckUtils]: 1: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:29,145 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {15380#true} {15380#true} #160#return; {15380#true} is VALID [2022-04-28 04:16:29,145 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:16:29,145 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:29,146 INFO L290 TraceCheckUtils]: 0: Hoare triple {15380#true} ~cond := #in~cond; {15380#true} is VALID [2022-04-28 04:16:29,146 INFO L290 TraceCheckUtils]: 1: Hoare triple {15380#true} assume !(0 == ~cond); {15380#true} is VALID [2022-04-28 04:16:29,147 INFO L290 TraceCheckUtils]: 2: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:29,147 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {15380#true} {15380#true} #142#return; {15380#true} is VALID [2022-04-28 04:16:29,147 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:16:29,147 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:29,150 INFO L290 TraceCheckUtils]: 0: Hoare triple {15380#true} ~x := #in~x; {15380#true} is VALID [2022-04-28 04:16:29,150 INFO L290 TraceCheckUtils]: 1: Hoare triple {15380#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {15380#true} is VALID [2022-04-28 04:16:29,150 INFO L290 TraceCheckUtils]: 2: Hoare triple {15380#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {15380#true} is VALID [2022-04-28 04:16:29,151 INFO L290 TraceCheckUtils]: 3: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:29,151 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {15380#true} {15380#true} #144#return; {15380#true} is VALID [2022-04-28 04:16:29,151 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:16:29,151 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:29,152 INFO L290 TraceCheckUtils]: 0: Hoare triple {15380#true} ~cond := #in~cond; {15380#true} is VALID [2022-04-28 04:16:29,152 INFO L290 TraceCheckUtils]: 1: Hoare triple {15380#true} assume !(0 == ~cond); {15380#true} is VALID [2022-04-28 04:16:29,152 INFO L290 TraceCheckUtils]: 2: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:29,152 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {15380#true} {15380#true} #146#return; {15380#true} is VALID [2022-04-28 04:16:29,157 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:16:29,158 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:29,160 INFO L290 TraceCheckUtils]: 0: Hoare triple {15429#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {15380#true} is VALID [2022-04-28 04:16:29,160 INFO L290 TraceCheckUtils]: 1: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:29,160 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {15380#true} {15380#true} #148#return; {15380#true} is VALID [2022-04-28 04:16:29,160 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:16:29,161 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:29,162 INFO L290 TraceCheckUtils]: 0: Hoare triple {15429#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {15380#true} is VALID [2022-04-28 04:16:29,162 INFO L290 TraceCheckUtils]: 1: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:29,162 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {15380#true} {15380#true} #150#return; {15380#true} is VALID [2022-04-28 04:16:29,162 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 41 [2022-04-28 04:16:29,167 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:29,208 INFO L290 TraceCheckUtils]: 0: Hoare triple {15429#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {15430#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,209 INFO L290 TraceCheckUtils]: 1: Hoare triple {15430#(<= 1 upsweep_~space~0)} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {15430#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,209 INFO L290 TraceCheckUtils]: 2: Hoare triple {15430#(<= 1 upsweep_~space~0)} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {15430#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,209 INFO L290 TraceCheckUtils]: 3: Hoare triple {15430#(<= 1 upsweep_~space~0)} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {15430#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,210 INFO L290 TraceCheckUtils]: 4: Hoare triple {15430#(<= 1 upsweep_~space~0)} assume !(~left~0 < ~n); {15430#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,210 INFO L290 TraceCheckUtils]: 5: Hoare triple {15430#(<= 1 upsweep_~space~0)} ~space~0 := 2 * ~space~0; {15431#(<= 2 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,210 INFO L290 TraceCheckUtils]: 6: Hoare triple {15431#(<= 2 upsweep_~space~0)} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {15431#(<= 2 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,211 INFO L290 TraceCheckUtils]: 7: Hoare triple {15431#(<= 2 upsweep_~space~0)} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {15431#(<= 2 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,211 INFO L290 TraceCheckUtils]: 8: Hoare triple {15431#(<= 2 upsweep_~space~0)} assume !(~left~0 < ~n); {15431#(<= 2 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,211 INFO L290 TraceCheckUtils]: 9: Hoare triple {15431#(<= 2 upsweep_~space~0)} ~space~0 := 2 * ~space~0; {15432#(<= 4 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,212 INFO L290 TraceCheckUtils]: 10: Hoare triple {15432#(<= 4 upsweep_~space~0)} assume !(~space~0 < ~n); {15432#(<= 4 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,212 INFO L290 TraceCheckUtils]: 11: Hoare triple {15432#(<= 4 upsweep_~space~0)} #res := ~space~0; {15433#(<= 4 |upsweep_#res|)} is VALID [2022-04-28 04:16:29,212 INFO L290 TraceCheckUtils]: 12: Hoare triple {15433#(<= 4 |upsweep_#res|)} assume true; {15433#(<= 4 |upsweep_#res|)} is VALID [2022-04-28 04:16:29,213 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {15433#(<= 4 |upsweep_#res|)} {15380#true} #152#return; {15418#(<= 4 |main_#t~ret19|)} is VALID [2022-04-28 04:16:29,213 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 57 [2022-04-28 04:16:29,218 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:29,303 INFO L290 TraceCheckUtils]: 0: Hoare triple {15429#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {15434#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} is VALID [2022-04-28 04:16:29,304 INFO L290 TraceCheckUtils]: 1: Hoare triple {15434#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {15434#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} is VALID [2022-04-28 04:16:29,305 INFO L290 TraceCheckUtils]: 2: Hoare triple {15434#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {15434#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} is VALID [2022-04-28 04:16:29,306 INFO L290 TraceCheckUtils]: 3: Hoare triple {15434#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} assume !(~right~1 < ~n); {15434#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} is VALID [2022-04-28 04:16:29,307 INFO L290 TraceCheckUtils]: 4: Hoare triple {15434#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {15435#(<= |downsweep_#in~space| (+ (* downsweep_~space 4) 3))} is VALID [2022-04-28 04:16:29,308 INFO L290 TraceCheckUtils]: 5: Hoare triple {15435#(<= |downsweep_#in~space| (+ (* downsweep_~space 4) 3))} assume !(~space > 0); {15436#(<= |downsweep_#in~space| 3)} is VALID [2022-04-28 04:16:29,308 INFO L290 TraceCheckUtils]: 6: Hoare triple {15436#(<= |downsweep_#in~space| 3)} assume true; {15436#(<= |downsweep_#in~space| 3)} is VALID [2022-04-28 04:16:29,309 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {15436#(<= |downsweep_#in~space| 3)} {15419#(<= 4 main_~space~1)} #154#return; {15381#false} is VALID [2022-04-28 04:16:29,309 INFO L272 TraceCheckUtils]: 0: Hoare triple {15380#true} call ULTIMATE.init(); {15428#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:16:29,309 INFO L290 TraceCheckUtils]: 1: Hoare triple {15428#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {15380#true} is VALID [2022-04-28 04:16:29,310 INFO L290 TraceCheckUtils]: 2: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:29,310 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {15380#true} {15380#true} #160#return; {15380#true} is VALID [2022-04-28 04:16:29,310 INFO L272 TraceCheckUtils]: 4: Hoare triple {15380#true} call #t~ret20 := main(); {15380#true} is VALID [2022-04-28 04:16:29,310 INFO L290 TraceCheckUtils]: 5: Hoare triple {15380#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {15380#true} is VALID [2022-04-28 04:16:29,310 INFO L272 TraceCheckUtils]: 6: Hoare triple {15380#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {15380#true} is VALID [2022-04-28 04:16:29,310 INFO L290 TraceCheckUtils]: 7: Hoare triple {15380#true} ~cond := #in~cond; {15380#true} is VALID [2022-04-28 04:16:29,310 INFO L290 TraceCheckUtils]: 8: Hoare triple {15380#true} assume !(0 == ~cond); {15380#true} is VALID [2022-04-28 04:16:29,310 INFO L290 TraceCheckUtils]: 9: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:29,310 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {15380#true} {15380#true} #142#return; {15380#true} is VALID [2022-04-28 04:16:29,310 INFO L272 TraceCheckUtils]: 11: Hoare triple {15380#true} call #t~ret14 := is_pow2(~n~0); {15380#true} is VALID [2022-04-28 04:16:29,310 INFO L290 TraceCheckUtils]: 12: Hoare triple {15380#true} ~x := #in~x; {15380#true} is VALID [2022-04-28 04:16:29,310 INFO L290 TraceCheckUtils]: 13: Hoare triple {15380#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {15380#true} is VALID [2022-04-28 04:16:29,310 INFO L290 TraceCheckUtils]: 14: Hoare triple {15380#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {15380#true} is VALID [2022-04-28 04:16:29,310 INFO L290 TraceCheckUtils]: 15: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:29,311 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {15380#true} {15380#true} #144#return; {15380#true} is VALID [2022-04-28 04:16:29,311 INFO L290 TraceCheckUtils]: 17: Hoare triple {15380#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {15380#true} is VALID [2022-04-28 04:16:29,311 INFO L272 TraceCheckUtils]: 18: Hoare triple {15380#true} call assume_abort_if_not(#t~ret14); {15380#true} is VALID [2022-04-28 04:16:29,311 INFO L290 TraceCheckUtils]: 19: Hoare triple {15380#true} ~cond := #in~cond; {15380#true} is VALID [2022-04-28 04:16:29,311 INFO L290 TraceCheckUtils]: 20: Hoare triple {15380#true} assume !(0 == ~cond); {15380#true} is VALID [2022-04-28 04:16:29,311 INFO L290 TraceCheckUtils]: 21: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:29,311 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {15380#true} {15380#true} #146#return; {15380#true} is VALID [2022-04-28 04:16:29,311 INFO L290 TraceCheckUtils]: 23: Hoare triple {15380#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {15380#true} is VALID [2022-04-28 04:16:29,312 INFO L272 TraceCheckUtils]: 24: Hoare triple {15380#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {15429#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:16:29,312 INFO L290 TraceCheckUtils]: 25: Hoare triple {15429#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {15380#true} is VALID [2022-04-28 04:16:29,312 INFO L290 TraceCheckUtils]: 26: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:29,312 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {15380#true} {15380#true} #148#return; {15380#true} is VALID [2022-04-28 04:16:29,312 INFO L290 TraceCheckUtils]: 28: Hoare triple {15380#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {15380#true} is VALID [2022-04-28 04:16:29,313 INFO L272 TraceCheckUtils]: 29: Hoare triple {15380#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {15429#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:16:29,313 INFO L290 TraceCheckUtils]: 30: Hoare triple {15429#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {15380#true} is VALID [2022-04-28 04:16:29,313 INFO L290 TraceCheckUtils]: 31: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:29,313 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {15380#true} {15380#true} #150#return; {15380#true} is VALID [2022-04-28 04:16:29,313 INFO L290 TraceCheckUtils]: 33: Hoare triple {15380#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {15380#true} is VALID [2022-04-28 04:16:29,313 INFO L290 TraceCheckUtils]: 34: Hoare triple {15380#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {15380#true} is VALID [2022-04-28 04:16:29,313 INFO L290 TraceCheckUtils]: 35: Hoare triple {15380#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {15380#true} is VALID [2022-04-28 04:16:29,313 INFO L290 TraceCheckUtils]: 36: Hoare triple {15380#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {15380#true} is VALID [2022-04-28 04:16:29,313 INFO L290 TraceCheckUtils]: 37: Hoare triple {15380#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {15380#true} is VALID [2022-04-28 04:16:29,313 INFO L290 TraceCheckUtils]: 38: Hoare triple {15380#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {15380#true} is VALID [2022-04-28 04:16:29,313 INFO L290 TraceCheckUtils]: 39: Hoare triple {15380#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {15380#true} is VALID [2022-04-28 04:16:29,313 INFO L290 TraceCheckUtils]: 40: Hoare triple {15380#true} assume !(~i~1 < ~n~0); {15380#true} is VALID [2022-04-28 04:16:29,314 INFO L272 TraceCheckUtils]: 41: Hoare triple {15380#true} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {15429#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:16:29,314 INFO L290 TraceCheckUtils]: 42: Hoare triple {15429#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {15430#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,315 INFO L290 TraceCheckUtils]: 43: Hoare triple {15430#(<= 1 upsweep_~space~0)} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {15430#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,315 INFO L290 TraceCheckUtils]: 44: Hoare triple {15430#(<= 1 upsweep_~space~0)} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {15430#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,315 INFO L290 TraceCheckUtils]: 45: Hoare triple {15430#(<= 1 upsweep_~space~0)} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {15430#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,316 INFO L290 TraceCheckUtils]: 46: Hoare triple {15430#(<= 1 upsweep_~space~0)} assume !(~left~0 < ~n); {15430#(<= 1 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,316 INFO L290 TraceCheckUtils]: 47: Hoare triple {15430#(<= 1 upsweep_~space~0)} ~space~0 := 2 * ~space~0; {15431#(<= 2 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,316 INFO L290 TraceCheckUtils]: 48: Hoare triple {15431#(<= 2 upsweep_~space~0)} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {15431#(<= 2 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,317 INFO L290 TraceCheckUtils]: 49: Hoare triple {15431#(<= 2 upsweep_~space~0)} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {15431#(<= 2 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,317 INFO L290 TraceCheckUtils]: 50: Hoare triple {15431#(<= 2 upsweep_~space~0)} assume !(~left~0 < ~n); {15431#(<= 2 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,317 INFO L290 TraceCheckUtils]: 51: Hoare triple {15431#(<= 2 upsweep_~space~0)} ~space~0 := 2 * ~space~0; {15432#(<= 4 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,318 INFO L290 TraceCheckUtils]: 52: Hoare triple {15432#(<= 4 upsweep_~space~0)} assume !(~space~0 < ~n); {15432#(<= 4 upsweep_~space~0)} is VALID [2022-04-28 04:16:29,318 INFO L290 TraceCheckUtils]: 53: Hoare triple {15432#(<= 4 upsweep_~space~0)} #res := ~space~0; {15433#(<= 4 |upsweep_#res|)} is VALID [2022-04-28 04:16:29,318 INFO L290 TraceCheckUtils]: 54: Hoare triple {15433#(<= 4 |upsweep_#res|)} assume true; {15433#(<= 4 |upsweep_#res|)} is VALID [2022-04-28 04:16:29,319 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {15433#(<= 4 |upsweep_#res|)} {15380#true} #152#return; {15418#(<= 4 |main_#t~ret19|)} is VALID [2022-04-28 04:16:29,319 INFO L290 TraceCheckUtils]: 56: Hoare triple {15418#(<= 4 |main_#t~ret19|)} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {15419#(<= 4 main_~space~1)} is VALID [2022-04-28 04:16:29,320 INFO L272 TraceCheckUtils]: 57: Hoare triple {15419#(<= 4 main_~space~1)} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {15429#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:16:29,321 INFO L290 TraceCheckUtils]: 58: Hoare triple {15429#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {15434#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} is VALID [2022-04-28 04:16:29,322 INFO L290 TraceCheckUtils]: 59: Hoare triple {15434#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {15434#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} is VALID [2022-04-28 04:16:29,323 INFO L290 TraceCheckUtils]: 60: Hoare triple {15434#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {15434#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} is VALID [2022-04-28 04:16:29,324 INFO L290 TraceCheckUtils]: 61: Hoare triple {15434#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} assume !(~right~1 < ~n); {15434#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} is VALID [2022-04-28 04:16:29,325 INFO L290 TraceCheckUtils]: 62: Hoare triple {15434#(or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {15435#(<= |downsweep_#in~space| (+ (* downsweep_~space 4) 3))} is VALID [2022-04-28 04:16:29,326 INFO L290 TraceCheckUtils]: 63: Hoare triple {15435#(<= |downsweep_#in~space| (+ (* downsweep_~space 4) 3))} assume !(~space > 0); {15436#(<= |downsweep_#in~space| 3)} is VALID [2022-04-28 04:16:29,326 INFO L290 TraceCheckUtils]: 64: Hoare triple {15436#(<= |downsweep_#in~space| 3)} assume true; {15436#(<= |downsweep_#in~space| 3)} is VALID [2022-04-28 04:16:29,327 INFO L284 TraceCheckUtils]: 65: Hoare quadruple {15436#(<= |downsweep_#in~space| 3)} {15419#(<= 4 main_~space~1)} #154#return; {15381#false} is VALID [2022-04-28 04:16:29,327 INFO L272 TraceCheckUtils]: 66: Hoare triple {15381#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {15381#false} is VALID [2022-04-28 04:16:29,327 INFO L290 TraceCheckUtils]: 67: Hoare triple {15381#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {15381#false} is VALID [2022-04-28 04:16:29,327 INFO L290 TraceCheckUtils]: 68: Hoare triple {15381#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {15381#false} is VALID [2022-04-28 04:16:29,327 INFO L272 TraceCheckUtils]: 69: Hoare triple {15381#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {15381#false} is VALID [2022-04-28 04:16:29,327 INFO L290 TraceCheckUtils]: 70: Hoare triple {15381#false} ~cond := #in~cond; {15381#false} is VALID [2022-04-28 04:16:29,327 INFO L290 TraceCheckUtils]: 71: Hoare triple {15381#false} assume 0 == ~cond; {15381#false} is VALID [2022-04-28 04:16:29,327 INFO L290 TraceCheckUtils]: 72: Hoare triple {15381#false} assume !false; {15381#false} is VALID [2022-04-28 04:16:29,328 INFO L134 CoverageAnalysis]: Checked inductivity of 32 backedges. 10 proven. 1 refuted. 0 times theorem prover too weak. 21 trivial. 0 not checked. [2022-04-28 04:16:29,328 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:16:29,328 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1677528652] [2022-04-28 04:16:29,328 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1677528652] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:16:29,328 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [596600232] [2022-04-28 04:16:29,328 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-28 04:16:29,328 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:16:29,328 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:16:29,334 INFO L229 MonitoredProcess]: Starting monitored process 16 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:16:29,336 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (16)] Waiting until timeout for monitored process [2022-04-28 04:16:29,439 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 3 check-sat command(s) [2022-04-28 04:16:29,440 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:16:29,441 INFO L263 TraceCheckSpWp]: Trace formula consists of 276 conjuncts, 18 conjunts are in the unsatisfiable core [2022-04-28 04:16:29,457 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:29,458 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:16:31,145 INFO L272 TraceCheckUtils]: 0: Hoare triple {15380#true} call ULTIMATE.init(); {15380#true} is VALID [2022-04-28 04:16:31,145 INFO L290 TraceCheckUtils]: 1: Hoare triple {15380#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {15380#true} is VALID [2022-04-28 04:16:31,146 INFO L290 TraceCheckUtils]: 2: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:31,146 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {15380#true} {15380#true} #160#return; {15380#true} is VALID [2022-04-28 04:16:31,146 INFO L272 TraceCheckUtils]: 4: Hoare triple {15380#true} call #t~ret20 := main(); {15380#true} is VALID [2022-04-28 04:16:31,146 INFO L290 TraceCheckUtils]: 5: Hoare triple {15380#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {15380#true} is VALID [2022-04-28 04:16:31,146 INFO L272 TraceCheckUtils]: 6: Hoare triple {15380#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {15380#true} is VALID [2022-04-28 04:16:31,146 INFO L290 TraceCheckUtils]: 7: Hoare triple {15380#true} ~cond := #in~cond; {15380#true} is VALID [2022-04-28 04:16:31,146 INFO L290 TraceCheckUtils]: 8: Hoare triple {15380#true} assume !(0 == ~cond); {15380#true} is VALID [2022-04-28 04:16:31,146 INFO L290 TraceCheckUtils]: 9: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:31,146 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {15380#true} {15380#true} #142#return; {15380#true} is VALID [2022-04-28 04:16:31,146 INFO L272 TraceCheckUtils]: 11: Hoare triple {15380#true} call #t~ret14 := is_pow2(~n~0); {15380#true} is VALID [2022-04-28 04:16:31,146 INFO L290 TraceCheckUtils]: 12: Hoare triple {15380#true} ~x := #in~x; {15380#true} is VALID [2022-04-28 04:16:31,146 INFO L290 TraceCheckUtils]: 13: Hoare triple {15380#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {15380#true} is VALID [2022-04-28 04:16:31,146 INFO L290 TraceCheckUtils]: 14: Hoare triple {15380#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {15380#true} is VALID [2022-04-28 04:16:31,146 INFO L290 TraceCheckUtils]: 15: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:31,147 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {15380#true} {15380#true} #144#return; {15380#true} is VALID [2022-04-28 04:16:31,147 INFO L290 TraceCheckUtils]: 17: Hoare triple {15380#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {15380#true} is VALID [2022-04-28 04:16:31,147 INFO L272 TraceCheckUtils]: 18: Hoare triple {15380#true} call assume_abort_if_not(#t~ret14); {15380#true} is VALID [2022-04-28 04:16:31,147 INFO L290 TraceCheckUtils]: 19: Hoare triple {15380#true} ~cond := #in~cond; {15380#true} is VALID [2022-04-28 04:16:31,147 INFO L290 TraceCheckUtils]: 20: Hoare triple {15380#true} assume !(0 == ~cond); {15380#true} is VALID [2022-04-28 04:16:31,147 INFO L290 TraceCheckUtils]: 21: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:31,147 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {15380#true} {15380#true} #146#return; {15380#true} is VALID [2022-04-28 04:16:31,147 INFO L290 TraceCheckUtils]: 23: Hoare triple {15380#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {15380#true} is VALID [2022-04-28 04:16:31,147 INFO L272 TraceCheckUtils]: 24: Hoare triple {15380#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {15380#true} is VALID [2022-04-28 04:16:31,147 INFO L290 TraceCheckUtils]: 25: Hoare triple {15380#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {15380#true} is VALID [2022-04-28 04:16:31,147 INFO L290 TraceCheckUtils]: 26: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:31,147 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {15380#true} {15380#true} #148#return; {15380#true} is VALID [2022-04-28 04:16:31,147 INFO L290 TraceCheckUtils]: 28: Hoare triple {15380#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {15380#true} is VALID [2022-04-28 04:16:31,147 INFO L272 TraceCheckUtils]: 29: Hoare triple {15380#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {15380#true} is VALID [2022-04-28 04:16:31,148 INFO L290 TraceCheckUtils]: 30: Hoare triple {15380#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {15380#true} is VALID [2022-04-28 04:16:31,148 INFO L290 TraceCheckUtils]: 31: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:31,148 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {15380#true} {15380#true} #150#return; {15380#true} is VALID [2022-04-28 04:16:31,148 INFO L290 TraceCheckUtils]: 33: Hoare triple {15380#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {15380#true} is VALID [2022-04-28 04:16:31,148 INFO L290 TraceCheckUtils]: 34: Hoare triple {15380#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {15380#true} is VALID [2022-04-28 04:16:31,148 INFO L290 TraceCheckUtils]: 35: Hoare triple {15380#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {15380#true} is VALID [2022-04-28 04:16:31,148 INFO L290 TraceCheckUtils]: 36: Hoare triple {15380#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {15380#true} is VALID [2022-04-28 04:16:31,148 INFO L290 TraceCheckUtils]: 37: Hoare triple {15380#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {15380#true} is VALID [2022-04-28 04:16:31,148 INFO L290 TraceCheckUtils]: 38: Hoare triple {15380#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {15380#true} is VALID [2022-04-28 04:16:31,148 INFO L290 TraceCheckUtils]: 39: Hoare triple {15380#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {15380#true} is VALID [2022-04-28 04:16:31,148 INFO L290 TraceCheckUtils]: 40: Hoare triple {15380#true} assume !(~i~1 < ~n~0); {15380#true} is VALID [2022-04-28 04:16:31,148 INFO L272 TraceCheckUtils]: 41: Hoare triple {15380#true} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {15380#true} is VALID [2022-04-28 04:16:31,150 INFO L290 TraceCheckUtils]: 42: Hoare triple {15380#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {15566#(and (<= 1 upsweep_~space~0) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:16:31,151 INFO L290 TraceCheckUtils]: 43: Hoare triple {15566#(and (<= 1 upsweep_~space~0) (<= |upsweep_#in~n| upsweep_~n))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {15566#(and (<= 1 upsweep_~space~0) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:16:31,151 INFO L290 TraceCheckUtils]: 44: Hoare triple {15566#(and (<= 1 upsweep_~space~0) (<= |upsweep_#in~n| upsweep_~n))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {15566#(and (<= 1 upsweep_~space~0) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:16:31,152 INFO L290 TraceCheckUtils]: 45: Hoare triple {15566#(and (<= 1 upsweep_~space~0) (<= |upsweep_#in~n| upsweep_~n))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {15566#(and (<= 1 upsweep_~space~0) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:16:31,152 INFO L290 TraceCheckUtils]: 46: Hoare triple {15566#(and (<= 1 upsweep_~space~0) (<= |upsweep_#in~n| upsweep_~n))} assume !(~left~0 < ~n); {15566#(and (<= 1 upsweep_~space~0) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:16:31,153 INFO L290 TraceCheckUtils]: 47: Hoare triple {15566#(and (<= 1 upsweep_~space~0) (<= |upsweep_#in~n| upsweep_~n))} ~space~0 := 2 * ~space~0; {15582#(and (<= 1 (div upsweep_~space~0 2)) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:16:31,153 INFO L290 TraceCheckUtils]: 48: Hoare triple {15582#(and (<= 1 (div upsweep_~space~0 2)) (<= |upsweep_#in~n| upsweep_~n))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {15582#(and (<= 1 (div upsweep_~space~0 2)) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:16:31,154 INFO L290 TraceCheckUtils]: 49: Hoare triple {15582#(and (<= 1 (div upsweep_~space~0 2)) (<= |upsweep_#in~n| upsweep_~n))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {15582#(and (<= 1 (div upsweep_~space~0 2)) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:16:31,154 INFO L290 TraceCheckUtils]: 50: Hoare triple {15582#(and (<= 1 (div upsweep_~space~0 2)) (<= |upsweep_#in~n| upsweep_~n))} assume !(~left~0 < ~n); {15582#(and (<= 1 (div upsweep_~space~0 2)) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:16:31,155 INFO L290 TraceCheckUtils]: 51: Hoare triple {15582#(and (<= 1 (div upsweep_~space~0 2)) (<= |upsweep_#in~n| upsweep_~n))} ~space~0 := 2 * ~space~0; {15595#(and (<= 1 (div (div upsweep_~space~0 2) 2)) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:16:31,156 INFO L290 TraceCheckUtils]: 52: Hoare triple {15595#(and (<= 1 (div (div upsweep_~space~0 2) 2)) (<= |upsweep_#in~n| upsweep_~n))} assume !(~space~0 < ~n); {15599#(and (<= |upsweep_#in~n| upsweep_~space~0) (<= 1 (div (div upsweep_~space~0 2) 2)))} is VALID [2022-04-28 04:16:31,156 INFO L290 TraceCheckUtils]: 53: Hoare triple {15599#(and (<= |upsweep_#in~n| upsweep_~space~0) (<= 1 (div (div upsweep_~space~0 2) 2)))} #res := ~space~0; {15603#(and (<= 1 (div (div |upsweep_#res| 2) 2)) (<= |upsweep_#in~n| |upsweep_#res|))} is VALID [2022-04-28 04:16:31,156 INFO L290 TraceCheckUtils]: 54: Hoare triple {15603#(and (<= 1 (div (div |upsweep_#res| 2) 2)) (<= |upsweep_#in~n| |upsweep_#res|))} assume true; {15603#(and (<= 1 (div (div |upsweep_#res| 2) 2)) (<= |upsweep_#in~n| |upsweep_#res|))} is VALID [2022-04-28 04:16:31,157 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {15603#(and (<= 1 (div (div |upsweep_#res| 2) 2)) (<= |upsweep_#in~n| |upsweep_#res|))} {15380#true} #152#return; {15610#(and (<= 1 (div (div |main_#t~ret19| 2) 2)) (<= main_~n~0 |main_#t~ret19|))} is VALID [2022-04-28 04:16:31,158 INFO L290 TraceCheckUtils]: 56: Hoare triple {15610#(and (<= 1 (div (div |main_#t~ret19| 2) 2)) (<= main_~n~0 |main_#t~ret19|))} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {15614#(and (<= main_~n~0 main_~space~1) (<= 1 (div (div main_~space~1 2) 2)))} is VALID [2022-04-28 04:16:31,158 INFO L272 TraceCheckUtils]: 57: Hoare triple {15614#(and (<= main_~n~0 main_~space~1) (<= 1 (div (div main_~space~1 2) 2)))} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {15380#true} is VALID [2022-04-28 04:16:31,159 INFO L290 TraceCheckUtils]: 58: Hoare triple {15380#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {15621#(or (and (or (= (mod |downsweep_#in~space| 2) 0) (not (< |downsweep_#in~space| 0))) (<= (div |downsweep_#in~space| 2) downsweep_~space)) (<= (+ (div |downsweep_#in~space| 2) 1) downsweep_~space))} is VALID [2022-04-28 04:16:31,160 INFO L290 TraceCheckUtils]: 59: Hoare triple {15621#(or (and (or (= (mod |downsweep_#in~space| 2) 0) (not (< |downsweep_#in~space| 0))) (<= (div |downsweep_#in~space| 2) downsweep_~space)) (<= (+ (div |downsweep_#in~space| 2) 1) downsweep_~space))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {15625#(and (< 0 downsweep_~space) (<= (div |downsweep_#in~space| 2) downsweep_~space))} is VALID [2022-04-28 04:16:31,160 INFO L290 TraceCheckUtils]: 60: Hoare triple {15625#(and (< 0 downsweep_~space) (<= (div |downsweep_#in~space| 2) downsweep_~space))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {15625#(and (< 0 downsweep_~space) (<= (div |downsweep_#in~space| 2) downsweep_~space))} is VALID [2022-04-28 04:16:31,161 INFO L290 TraceCheckUtils]: 61: Hoare triple {15625#(and (< 0 downsweep_~space) (<= (div |downsweep_#in~space| 2) downsweep_~space))} assume !(~right~1 < ~n); {15625#(and (< 0 downsweep_~space) (<= (div |downsweep_#in~space| 2) downsweep_~space))} is VALID [2022-04-28 04:16:31,162 INFO L290 TraceCheckUtils]: 62: Hoare triple {15625#(and (< 0 downsweep_~space) (<= (div |downsweep_#in~space| 2) downsweep_~space))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {15635#(and (< (div (+ (* (- 1) (div |downsweep_#in~space| 2)) 1) (- 2)) (+ downsweep_~space 1)) (< 0 (+ downsweep_~space 1)))} is VALID [2022-04-28 04:16:31,162 INFO L290 TraceCheckUtils]: 63: Hoare triple {15635#(and (< (div (+ (* (- 1) (div |downsweep_#in~space| 2)) 1) (- 2)) (+ downsweep_~space 1)) (< 0 (+ downsweep_~space 1)))} assume !(~space > 0); {15436#(<= |downsweep_#in~space| 3)} is VALID [2022-04-28 04:16:31,163 INFO L290 TraceCheckUtils]: 64: Hoare triple {15436#(<= |downsweep_#in~space| 3)} assume true; {15436#(<= |downsweep_#in~space| 3)} is VALID [2022-04-28 04:16:31,164 INFO L284 TraceCheckUtils]: 65: Hoare quadruple {15436#(<= |downsweep_#in~space| 3)} {15614#(and (<= main_~n~0 main_~space~1) (<= 1 (div (div main_~space~1 2) 2)))} #154#return; {15381#false} is VALID [2022-04-28 04:16:31,164 INFO L272 TraceCheckUtils]: 66: Hoare triple {15381#false} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {15381#false} is VALID [2022-04-28 04:16:31,164 INFO L290 TraceCheckUtils]: 67: Hoare triple {15381#false} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {15381#false} is VALID [2022-04-28 04:16:31,164 INFO L290 TraceCheckUtils]: 68: Hoare triple {15381#false} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {15381#false} is VALID [2022-04-28 04:16:31,164 INFO L272 TraceCheckUtils]: 69: Hoare triple {15381#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {15381#false} is VALID [2022-04-28 04:16:31,164 INFO L290 TraceCheckUtils]: 70: Hoare triple {15381#false} ~cond := #in~cond; {15381#false} is VALID [2022-04-28 04:16:31,164 INFO L290 TraceCheckUtils]: 71: Hoare triple {15381#false} assume 0 == ~cond; {15381#false} is VALID [2022-04-28 04:16:31,164 INFO L290 TraceCheckUtils]: 72: Hoare triple {15381#false} assume !false; {15381#false} is VALID [2022-04-28 04:16:31,164 INFO L134 CoverageAnalysis]: Checked inductivity of 32 backedges. 10 proven. 1 refuted. 0 times theorem prover too weak. 21 trivial. 0 not checked. [2022-04-28 04:16:31,164 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:16:39,903 INFO L290 TraceCheckUtils]: 72: Hoare triple {15381#false} assume !false; {15381#false} is VALID [2022-04-28 04:16:39,904 INFO L290 TraceCheckUtils]: 71: Hoare triple {15381#false} assume 0 == ~cond; {15381#false} is VALID [2022-04-28 04:16:39,904 INFO L290 TraceCheckUtils]: 70: Hoare triple {15381#false} ~cond := #in~cond; {15381#false} is VALID [2022-04-28 04:16:39,904 INFO L272 TraceCheckUtils]: 69: Hoare triple {15381#false} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {15381#false} is VALID [2022-04-28 04:16:39,904 INFO L290 TraceCheckUtils]: 68: Hoare triple {15678#(not (< check_~i~0 check_~n))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {15381#false} is VALID [2022-04-28 04:16:39,905 INFO L290 TraceCheckUtils]: 67: Hoare triple {15682#(<= |check_#in~n| 0)} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {15678#(not (< check_~i~0 check_~n))} is VALID [2022-04-28 04:16:39,905 INFO L272 TraceCheckUtils]: 66: Hoare triple {15686#(<= main_~n~0 0)} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {15682#(<= |check_#in~n| 0)} is VALID [2022-04-28 04:16:39,907 INFO L284 TraceCheckUtils]: 65: Hoare quadruple {15436#(<= |downsweep_#in~space| 3)} {15690#(or (<= main_~n~0 0) (<= 0 (div (+ (- 1) (div (+ (- 2) main_~space~1) 2)) 2)))} #154#return; {15686#(<= main_~n~0 0)} is VALID [2022-04-28 04:16:39,907 INFO L290 TraceCheckUtils]: 64: Hoare triple {15436#(<= |downsweep_#in~space| 3)} assume true; {15436#(<= |downsweep_#in~space| 3)} is VALID [2022-04-28 04:16:39,907 INFO L290 TraceCheckUtils]: 63: Hoare triple {15700#(or (<= |downsweep_#in~space| 3) (< 0 downsweep_~space))} assume !(~space > 0); {15436#(<= |downsweep_#in~space| 3)} is VALID [2022-04-28 04:16:39,908 INFO L290 TraceCheckUtils]: 62: Hoare triple {15704#(or (< 0 (div downsweep_~space 2)) (<= |downsweep_#in~space| 3))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {15700#(or (<= |downsweep_#in~space| 3) (< 0 downsweep_~space))} is VALID [2022-04-28 04:16:39,908 INFO L290 TraceCheckUtils]: 61: Hoare triple {15704#(or (< 0 (div downsweep_~space 2)) (<= |downsweep_#in~space| 3))} assume !(~right~1 < ~n); {15704#(or (< 0 (div downsweep_~space 2)) (<= |downsweep_#in~space| 3))} is VALID [2022-04-28 04:16:39,909 INFO L290 TraceCheckUtils]: 60: Hoare triple {15704#(or (< 0 (div downsweep_~space 2)) (<= |downsweep_#in~space| 3))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {15704#(or (< 0 (div downsweep_~space 2)) (<= |downsweep_#in~space| 3))} is VALID [2022-04-28 04:16:39,909 INFO L290 TraceCheckUtils]: 59: Hoare triple {15714#(or (< 0 (div downsweep_~space 2)) (not (< 0 downsweep_~space)) (<= |downsweep_#in~space| 3))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {15704#(or (< 0 (div downsweep_~space 2)) (<= |downsweep_#in~space| 3))} is VALID [2022-04-28 04:16:39,910 INFO L290 TraceCheckUtils]: 58: Hoare triple {15380#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {15714#(or (< 0 (div downsweep_~space 2)) (not (< 0 downsweep_~space)) (<= |downsweep_#in~space| 3))} is VALID [2022-04-28 04:16:39,910 INFO L272 TraceCheckUtils]: 57: Hoare triple {15690#(or (<= main_~n~0 0) (<= 0 (div (+ (- 1) (div (+ (- 2) main_~space~1) 2)) 2)))} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {15380#true} is VALID [2022-04-28 04:16:39,912 INFO L290 TraceCheckUtils]: 56: Hoare triple {15721#(or (<= main_~n~0 0) (<= 0 (+ (div (+ (- 1) (div (+ |main_#t~ret19| (- 6)) 2)) 2) 1)))} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {15690#(or (<= main_~n~0 0) (<= 0 (div (+ (- 1) (div (+ (- 2) main_~space~1) 2)) 2)))} is VALID [2022-04-28 04:16:39,913 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {15728#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 2 (div (+ (- 1) (div (+ |upsweep_#res| (- 10)) 2)) 2))))} {15380#true} #152#return; {15721#(or (<= main_~n~0 0) (<= 0 (+ (div (+ (- 1) (div (+ |main_#t~ret19| (- 6)) 2)) 2) 1)))} is VALID [2022-04-28 04:16:39,913 INFO L290 TraceCheckUtils]: 54: Hoare triple {15728#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 2 (div (+ (- 1) (div (+ |upsweep_#res| (- 10)) 2)) 2))))} assume true; {15728#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 2 (div (+ (- 1) (div (+ |upsweep_#res| (- 10)) 2)) 2))))} is VALID [2022-04-28 04:16:39,914 INFO L290 TraceCheckUtils]: 53: Hoare triple {15735#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 3 (div (+ (- 1) (div (+ (- 14) upsweep_~space~0) 2)) 2))))} #res := ~space~0; {15728#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 2 (div (+ (- 1) (div (+ |upsweep_#res| (- 10)) 2)) 2))))} is VALID [2022-04-28 04:16:39,915 INFO L290 TraceCheckUtils]: 52: Hoare triple {15739#(or (<= |upsweep_#in~n| 0) (< upsweep_~space~0 upsweep_~n) (<= 0 (+ 3 (div (+ (- 1) (div (+ (- 14) upsweep_~space~0) 2)) 2))))} assume !(~space~0 < ~n); {15735#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 3 (div (+ (- 1) (div (+ (- 14) upsweep_~space~0) 2)) 2))))} is VALID [2022-04-28 04:16:39,916 INFO L290 TraceCheckUtils]: 51: Hoare triple {15743#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 0 (+ (div (+ upsweep_~space~0 (- 10)) 2) 4)))} ~space~0 := 2 * ~space~0; {15739#(or (<= |upsweep_#in~n| 0) (< upsweep_~space~0 upsweep_~n) (<= 0 (+ 3 (div (+ (- 1) (div (+ (- 14) upsweep_~space~0) 2)) 2))))} is VALID [2022-04-28 04:16:39,917 INFO L290 TraceCheckUtils]: 50: Hoare triple {15743#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 0 (+ (div (+ upsweep_~space~0 (- 10)) 2) 4)))} assume !(~left~0 < ~n); {15743#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 0 (+ (div (+ upsweep_~space~0 (- 10)) 2) 4)))} is VALID [2022-04-28 04:16:39,917 INFO L290 TraceCheckUtils]: 49: Hoare triple {15743#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 0 (+ (div (+ upsweep_~space~0 (- 10)) 2) 4)))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {15743#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 0 (+ (div (+ upsweep_~space~0 (- 10)) 2) 4)))} is VALID [2022-04-28 04:16:39,918 INFO L290 TraceCheckUtils]: 48: Hoare triple {15743#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 0 (+ (div (+ upsweep_~space~0 (- 10)) 2) 4)))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {15743#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 0 (+ (div (+ upsweep_~space~0 (- 10)) 2) 4)))} is VALID [2022-04-28 04:16:39,919 INFO L290 TraceCheckUtils]: 47: Hoare triple {15756#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 1 upsweep_~space~0))} ~space~0 := 2 * ~space~0; {15743#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 0 (+ (div (+ upsweep_~space~0 (- 10)) 2) 4)))} is VALID [2022-04-28 04:16:39,919 INFO L290 TraceCheckUtils]: 46: Hoare triple {15756#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 1 upsweep_~space~0))} assume !(~left~0 < ~n); {15756#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 1 upsweep_~space~0))} is VALID [2022-04-28 04:16:39,920 INFO L290 TraceCheckUtils]: 45: Hoare triple {15756#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 1 upsweep_~space~0))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {15756#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 1 upsweep_~space~0))} is VALID [2022-04-28 04:16:39,920 INFO L290 TraceCheckUtils]: 44: Hoare triple {15756#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 1 upsweep_~space~0))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {15756#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 1 upsweep_~space~0))} is VALID [2022-04-28 04:16:39,921 INFO L290 TraceCheckUtils]: 43: Hoare triple {15756#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 1 upsweep_~space~0))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {15756#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 1 upsweep_~space~0))} is VALID [2022-04-28 04:16:39,921 INFO L290 TraceCheckUtils]: 42: Hoare triple {15380#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {15756#(or (<= |upsweep_#in~n| 0) (<= 0 (+ 4 (div (+ (- 1) (div (+ (- 18) upsweep_~n) 2)) 2))) (<= 1 upsweep_~space~0))} is VALID [2022-04-28 04:16:39,921 INFO L272 TraceCheckUtils]: 41: Hoare triple {15380#true} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {15380#true} is VALID [2022-04-28 04:16:39,921 INFO L290 TraceCheckUtils]: 40: Hoare triple {15380#true} assume !(~i~1 < ~n~0); {15380#true} is VALID [2022-04-28 04:16:39,922 INFO L290 TraceCheckUtils]: 39: Hoare triple {15380#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {15380#true} is VALID [2022-04-28 04:16:39,922 INFO L290 TraceCheckUtils]: 38: Hoare triple {15380#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {15380#true} is VALID [2022-04-28 04:16:39,922 INFO L290 TraceCheckUtils]: 37: Hoare triple {15380#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {15380#true} is VALID [2022-04-28 04:16:39,922 INFO L290 TraceCheckUtils]: 36: Hoare triple {15380#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {15380#true} is VALID [2022-04-28 04:16:39,922 INFO L290 TraceCheckUtils]: 35: Hoare triple {15380#true} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {15380#true} is VALID [2022-04-28 04:16:39,922 INFO L290 TraceCheckUtils]: 34: Hoare triple {15380#true} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {15380#true} is VALID [2022-04-28 04:16:39,922 INFO L290 TraceCheckUtils]: 33: Hoare triple {15380#true} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {15380#true} is VALID [2022-04-28 04:16:39,922 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {15380#true} {15380#true} #150#return; {15380#true} is VALID [2022-04-28 04:16:39,922 INFO L290 TraceCheckUtils]: 31: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:39,922 INFO L290 TraceCheckUtils]: 30: Hoare triple {15380#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {15380#true} is VALID [2022-04-28 04:16:39,922 INFO L272 TraceCheckUtils]: 29: Hoare triple {15380#true} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {15380#true} is VALID [2022-04-28 04:16:39,922 INFO L290 TraceCheckUtils]: 28: Hoare triple {15380#true} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {15380#true} is VALID [2022-04-28 04:16:39,923 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {15380#true} {15380#true} #148#return; {15380#true} is VALID [2022-04-28 04:16:39,923 INFO L290 TraceCheckUtils]: 26: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:39,923 INFO L290 TraceCheckUtils]: 25: Hoare triple {15380#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {15380#true} is VALID [2022-04-28 04:16:39,923 INFO L272 TraceCheckUtils]: 24: Hoare triple {15380#true} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {15380#true} is VALID [2022-04-28 04:16:39,923 INFO L290 TraceCheckUtils]: 23: Hoare triple {15380#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {15380#true} is VALID [2022-04-28 04:16:39,923 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {15380#true} {15380#true} #146#return; {15380#true} is VALID [2022-04-28 04:16:39,923 INFO L290 TraceCheckUtils]: 21: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:39,923 INFO L290 TraceCheckUtils]: 20: Hoare triple {15380#true} assume !(0 == ~cond); {15380#true} is VALID [2022-04-28 04:16:39,923 INFO L290 TraceCheckUtils]: 19: Hoare triple {15380#true} ~cond := #in~cond; {15380#true} is VALID [2022-04-28 04:16:39,923 INFO L272 TraceCheckUtils]: 18: Hoare triple {15380#true} call assume_abort_if_not(#t~ret14); {15380#true} is VALID [2022-04-28 04:16:39,923 INFO L290 TraceCheckUtils]: 17: Hoare triple {15380#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {15380#true} is VALID [2022-04-28 04:16:39,923 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {15380#true} {15380#true} #144#return; {15380#true} is VALID [2022-04-28 04:16:39,923 INFO L290 TraceCheckUtils]: 15: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:39,923 INFO L290 TraceCheckUtils]: 14: Hoare triple {15380#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {15380#true} is VALID [2022-04-28 04:16:39,924 INFO L290 TraceCheckUtils]: 13: Hoare triple {15380#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {15380#true} is VALID [2022-04-28 04:16:39,924 INFO L290 TraceCheckUtils]: 12: Hoare triple {15380#true} ~x := #in~x; {15380#true} is VALID [2022-04-28 04:16:39,924 INFO L272 TraceCheckUtils]: 11: Hoare triple {15380#true} call #t~ret14 := is_pow2(~n~0); {15380#true} is VALID [2022-04-28 04:16:39,924 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {15380#true} {15380#true} #142#return; {15380#true} is VALID [2022-04-28 04:16:39,924 INFO L290 TraceCheckUtils]: 9: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:39,924 INFO L290 TraceCheckUtils]: 8: Hoare triple {15380#true} assume !(0 == ~cond); {15380#true} is VALID [2022-04-28 04:16:39,924 INFO L290 TraceCheckUtils]: 7: Hoare triple {15380#true} ~cond := #in~cond; {15380#true} is VALID [2022-04-28 04:16:39,924 INFO L272 TraceCheckUtils]: 6: Hoare triple {15380#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {15380#true} is VALID [2022-04-28 04:16:39,924 INFO L290 TraceCheckUtils]: 5: Hoare triple {15380#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {15380#true} is VALID [2022-04-28 04:16:39,924 INFO L272 TraceCheckUtils]: 4: Hoare triple {15380#true} call #t~ret20 := main(); {15380#true} is VALID [2022-04-28 04:16:39,925 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {15380#true} {15380#true} #160#return; {15380#true} is VALID [2022-04-28 04:16:39,925 INFO L290 TraceCheckUtils]: 2: Hoare triple {15380#true} assume true; {15380#true} is VALID [2022-04-28 04:16:39,925 INFO L290 TraceCheckUtils]: 1: Hoare triple {15380#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {15380#true} is VALID [2022-04-28 04:16:39,925 INFO L272 TraceCheckUtils]: 0: Hoare triple {15380#true} call ULTIMATE.init(); {15380#true} is VALID [2022-04-28 04:16:39,925 INFO L134 CoverageAnalysis]: Checked inductivity of 32 backedges. 8 proven. 3 refuted. 0 times theorem prover too weak. 21 trivial. 0 not checked. [2022-04-28 04:16:39,925 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [596600232] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:16:39,925 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-28 04:16:39,926 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 13, 16] total 36 [2022-04-28 04:16:39,926 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:16:39,926 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [969060821] [2022-04-28 04:16:39,926 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [969060821] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:16:39,926 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:16:39,926 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-28 04:16:39,926 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1156642983] [2022-04-28 04:16:39,926 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:16:39,927 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 12 states have (on average 3.6666666666666665) internal successors, (44), 10 states have internal predecessors, (44), 3 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) Word has length 73 [2022-04-28 04:16:39,927 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:16:39,927 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 13 states, 12 states have (on average 3.6666666666666665) internal successors, (44), 10 states have internal predecessors, (44), 3 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:16:39,985 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:16:39,985 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-04-28 04:16:39,985 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:16:39,985 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-04-28 04:16:39,986 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=138, Invalid=1122, Unknown=0, NotChecked=0, Total=1260 [2022-04-28 04:16:39,986 INFO L87 Difference]: Start difference. First operand 117 states and 141 transitions. Second operand has 13 states, 12 states have (on average 3.6666666666666665) internal successors, (44), 10 states have internal predecessors, (44), 3 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:16:42,219 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:16:44,360 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:16:50,817 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:16:57,090 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:16:57,091 INFO L93 Difference]: Finished difference Result 180 states and 222 transitions. [2022-04-28 04:16:57,091 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2022-04-28 04:16:57,091 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 12 states have (on average 3.6666666666666665) internal successors, (44), 10 states have internal predecessors, (44), 3 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) Word has length 73 [2022-04-28 04:16:57,091 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:16:57,091 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 12 states have (on average 3.6666666666666665) internal successors, (44), 10 states have internal predecessors, (44), 3 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:16:57,092 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 106 transitions. [2022-04-28 04:16:57,092 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 12 states have (on average 3.6666666666666665) internal successors, (44), 10 states have internal predecessors, (44), 3 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:16:57,093 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 106 transitions. [2022-04-28 04:16:57,093 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 16 states and 106 transitions. [2022-04-28 04:16:57,183 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 106 edges. 106 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:16:57,185 INFO L225 Difference]: With dead ends: 180 [2022-04-28 04:16:57,186 INFO L226 Difference]: Without dead ends: 158 [2022-04-28 04:16:57,186 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 183 GetRequests, 135 SyntacticMatches, 2 SemanticMatches, 46 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 491 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=233, Invalid=2023, Unknown=0, NotChecked=0, Total=2256 [2022-04-28 04:16:57,187 INFO L413 NwaCegarLoop]: 48 mSDtfsCounter, 87 mSDsluCounter, 16 mSDsCounter, 0 mSdLazyCounter, 680 mSolverCounterSat, 38 mSolverCounterUnsat, 3 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 6.7s Time, 0 mProtectedPredicate, 0 mProtectedAction, 91 SdHoareTripleChecker+Valid, 64 SdHoareTripleChecker+Invalid, 721 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 38 IncrementalHoareTripleChecker+Valid, 680 IncrementalHoareTripleChecker+Invalid, 3 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 6.8s IncrementalHoareTripleChecker+Time [2022-04-28 04:16:57,187 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [91 Valid, 64 Invalid, 721 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [38 Valid, 680 Invalid, 3 Unknown, 0 Unchecked, 6.8s Time] [2022-04-28 04:16:57,187 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 158 states. [2022-04-28 04:16:57,599 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 158 to 132. [2022-04-28 04:16:57,599 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:16:57,599 INFO L82 GeneralOperation]: Start isEquivalent. First operand 158 states. Second operand has 132 states, 99 states have (on average 1.2323232323232323) internal successors, (122), 104 states have internal predecessors, (122), 19 states have call successors, (19), 11 states have call predecessors, (19), 13 states have return successors, (21), 16 states have call predecessors, (21), 16 states have call successors, (21) [2022-04-28 04:16:57,599 INFO L74 IsIncluded]: Start isIncluded. First operand 158 states. Second operand has 132 states, 99 states have (on average 1.2323232323232323) internal successors, (122), 104 states have internal predecessors, (122), 19 states have call successors, (19), 11 states have call predecessors, (19), 13 states have return successors, (21), 16 states have call predecessors, (21), 16 states have call successors, (21) [2022-04-28 04:16:57,600 INFO L87 Difference]: Start difference. First operand 158 states. Second operand has 132 states, 99 states have (on average 1.2323232323232323) internal successors, (122), 104 states have internal predecessors, (122), 19 states have call successors, (19), 11 states have call predecessors, (19), 13 states have return successors, (21), 16 states have call predecessors, (21), 16 states have call successors, (21) [2022-04-28 04:16:57,602 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:16:57,602 INFO L93 Difference]: Finished difference Result 158 states and 197 transitions. [2022-04-28 04:16:57,602 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 197 transitions. [2022-04-28 04:16:57,602 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:16:57,602 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:16:57,603 INFO L74 IsIncluded]: Start isIncluded. First operand has 132 states, 99 states have (on average 1.2323232323232323) internal successors, (122), 104 states have internal predecessors, (122), 19 states have call successors, (19), 11 states have call predecessors, (19), 13 states have return successors, (21), 16 states have call predecessors, (21), 16 states have call successors, (21) Second operand 158 states. [2022-04-28 04:16:57,603 INFO L87 Difference]: Start difference. First operand has 132 states, 99 states have (on average 1.2323232323232323) internal successors, (122), 104 states have internal predecessors, (122), 19 states have call successors, (19), 11 states have call predecessors, (19), 13 states have return successors, (21), 16 states have call predecessors, (21), 16 states have call successors, (21) Second operand 158 states. [2022-04-28 04:16:57,605 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:16:57,605 INFO L93 Difference]: Finished difference Result 158 states and 197 transitions. [2022-04-28 04:16:57,605 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 197 transitions. [2022-04-28 04:16:57,605 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:16:57,605 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:16:57,605 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:16:57,605 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:16:57,606 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 132 states, 99 states have (on average 1.2323232323232323) internal successors, (122), 104 states have internal predecessors, (122), 19 states have call successors, (19), 11 states have call predecessors, (19), 13 states have return successors, (21), 16 states have call predecessors, (21), 16 states have call successors, (21) [2022-04-28 04:16:57,608 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 132 states to 132 states and 162 transitions. [2022-04-28 04:16:57,609 INFO L78 Accepts]: Start accepts. Automaton has 132 states and 162 transitions. Word has length 73 [2022-04-28 04:16:57,609 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:16:57,609 INFO L495 AbstractCegarLoop]: Abstraction has 132 states and 162 transitions. [2022-04-28 04:16:57,609 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 13 states, 12 states have (on average 3.6666666666666665) internal successors, (44), 10 states have internal predecessors, (44), 3 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-28 04:16:57,609 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 132 states and 162 transitions. [2022-04-28 04:16:58,002 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 162 edges. 162 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:16:58,002 INFO L276 IsEmpty]: Start isEmpty. Operand 132 states and 162 transitions. [2022-04-28 04:16:58,003 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 76 [2022-04-28 04:16:58,003 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:16:58,003 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-28 04:16:58,032 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (16)] Forceful destruction successful, exit code 0 [2022-04-28 04:16:58,222 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 16 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable16 [2022-04-28 04:16:58,222 INFO L420 AbstractCegarLoop]: === Iteration 18 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:16:58,222 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:16:58,222 INFO L85 PathProgramCache]: Analyzing trace with hash -1213658525, now seen corresponding path program 1 times [2022-04-28 04:16:58,223 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:16:58,223 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [662893584] [2022-04-28 04:16:58,223 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:16:58,223 INFO L85 PathProgramCache]: Analyzing trace with hash -1213658525, now seen corresponding path program 2 times [2022-04-28 04:16:58,223 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:16:58,223 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1481262239] [2022-04-28 04:16:58,224 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:16:58,224 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:16:58,261 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:58,941 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:16:58,942 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:58,946 INFO L290 TraceCheckUtils]: 0: Hoare triple {16927#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {16862#true} is VALID [2022-04-28 04:16:58,946 INFO L290 TraceCheckUtils]: 1: Hoare triple {16862#true} assume true; {16862#true} is VALID [2022-04-28 04:16:58,946 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {16862#true} {16862#true} #160#return; {16862#true} is VALID [2022-04-28 04:16:58,946 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:16:58,947 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:58,948 INFO L290 TraceCheckUtils]: 0: Hoare triple {16862#true} ~cond := #in~cond; {16862#true} is VALID [2022-04-28 04:16:58,948 INFO L290 TraceCheckUtils]: 1: Hoare triple {16862#true} assume !(0 == ~cond); {16862#true} is VALID [2022-04-28 04:16:58,948 INFO L290 TraceCheckUtils]: 2: Hoare triple {16862#true} assume true; {16862#true} is VALID [2022-04-28 04:16:58,948 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {16862#true} {16862#true} #142#return; {16862#true} is VALID [2022-04-28 04:16:58,949 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:16:58,950 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:58,964 INFO L290 TraceCheckUtils]: 0: Hoare triple {16862#true} ~x := #in~x; {16862#true} is VALID [2022-04-28 04:16:58,964 INFO L290 TraceCheckUtils]: 1: Hoare triple {16862#true} assume !!(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1);~x := (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then 1 + ~x % 4294967296 / 2 else ~x % 4294967296 / 2); {16862#true} is VALID [2022-04-28 04:16:58,964 INFO L290 TraceCheckUtils]: 2: Hoare triple {16862#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {16862#true} is VALID [2022-04-28 04:16:58,964 INFO L290 TraceCheckUtils]: 3: Hoare triple {16862#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {16862#true} is VALID [2022-04-28 04:16:58,964 INFO L290 TraceCheckUtils]: 4: Hoare triple {16862#true} assume true; {16862#true} is VALID [2022-04-28 04:16:58,965 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {16862#true} {16862#true} #144#return; {16862#true} is VALID [2022-04-28 04:16:58,965 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 19 [2022-04-28 04:16:58,965 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:58,967 INFO L290 TraceCheckUtils]: 0: Hoare triple {16862#true} ~cond := #in~cond; {16862#true} is VALID [2022-04-28 04:16:58,967 INFO L290 TraceCheckUtils]: 1: Hoare triple {16862#true} assume !(0 == ~cond); {16862#true} is VALID [2022-04-28 04:16:58,967 INFO L290 TraceCheckUtils]: 2: Hoare triple {16862#true} assume true; {16862#true} is VALID [2022-04-28 04:16:58,967 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {16862#true} {16862#true} #146#return; {16862#true} is VALID [2022-04-28 04:16:58,990 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 25 [2022-04-28 04:16:58,991 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:59,038 INFO L290 TraceCheckUtils]: 0: Hoare triple {16928#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {16929#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-28 04:16:59,039 INFO L290 TraceCheckUtils]: 1: Hoare triple {16929#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} assume true; {16929#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-28 04:16:59,040 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {16929#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} {16881#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0))} #148#return; {16885#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc15.base|)))} is VALID [2022-04-28 04:16:59,040 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 30 [2022-04-28 04:16:59,041 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:59,072 INFO L290 TraceCheckUtils]: 0: Hoare triple {16928#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {16930#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-04-28 04:16:59,072 INFO L290 TraceCheckUtils]: 1: Hoare triple {16930#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} assume true; {16930#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-04-28 04:16:59,073 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {16930#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} {16886#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)) (= |main_#t~malloc16.offset| 0))} #150#return; {16886#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)) (= |main_#t~malloc16.offset| 0))} is VALID [2022-04-28 04:16:59,073 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 40 [2022-04-28 04:16:59,078 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:16:59,470 INFO L290 TraceCheckUtils]: 0: Hoare triple {16928#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {16931#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base) (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0))} is VALID [2022-04-28 04:16:59,471 INFO L290 TraceCheckUtils]: 1: Hoare triple {16931#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base) (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {16932#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base) (or (and (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0)) (not (= (select (select |#memory_int| upsweep_~a.base) (+ (* upsweep_~left~0 4) upsweep_~a.offset)) 0))))} is VALID [2022-04-28 04:16:59,472 INFO L290 TraceCheckUtils]: 2: Hoare triple {16932#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base) (or (and (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0)) (not (= (select (select |#memory_int| upsweep_~a.base) (+ (* upsweep_~left~0 4) upsweep_~a.offset)) 0))))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {16933#(or (and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:16:59,473 INFO L290 TraceCheckUtils]: 3: Hoare triple {16933#(or (and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} assume !(~left~0 < ~n); {16933#(or (and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:16:59,473 INFO L290 TraceCheckUtils]: 4: Hoare triple {16933#(or (and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} ~space~0 := 2 * ~space~0; {16934#(or (and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 2) (<= 2 upsweep_~space~0)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:16:59,474 INFO L290 TraceCheckUtils]: 5: Hoare triple {16934#(or (and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 2) (<= 2 upsweep_~space~0)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} assume !(~space~0 < ~n); {16934#(or (and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 2) (<= 2 upsweep_~space~0)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:16:59,474 INFO L290 TraceCheckUtils]: 6: Hoare triple {16934#(or (and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 2) (<= 2 upsweep_~space~0)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} #res := ~space~0; {16935#(or (and (= |#memory_int| |old(#memory_int)|) (<= |upsweep_#res| 2) (<= 2 |upsweep_#res|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:16:59,475 INFO L290 TraceCheckUtils]: 7: Hoare triple {16935#(or (and (= |#memory_int| |old(#memory_int)|) (<= |upsweep_#res| 2) (<= 2 |upsweep_#res|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} assume true; {16935#(or (and (= |#memory_int| |old(#memory_int)|) (<= |upsweep_#res| 2) (<= 2 |upsweep_#res|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:16:59,477 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {16935#(or (and (= |#memory_int| |old(#memory_int)|) (<= |upsweep_#res| 2) (<= 2 |upsweep_#res|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} {16895#(and (<= main_~n~0 2) (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= main_~a~0.offset 0) (<= 2 main_~n~0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} #152#return; {16905#(and (<= main_~n~0 2) (<= (* |main_#t~ret19| 2) 4) (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= main_~a~0.offset 0) (<= 2 |main_#t~ret19|) (not (= main_~a~0.base main_~a0~0.base)) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= (* |main_#t~ret19| 2) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:16:59,477 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 51 [2022-04-28 04:16:59,484 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:17:00,923 INFO L290 TraceCheckUtils]: 0: Hoare triple {16928#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {16936#(and (= downsweep_~n |downsweep_#in~n|) (or (and (= downsweep_~a.base |downsweep_#in~a.base|) (or (and (or (<= |downsweep_#in~a.offset| downsweep_~a.offset) (= (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) 4)) (= (store (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (select (select |old(#memory_int)| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)))) (select |old(#memory_int)| downsweep_~a.base)) (<= (+ (* (div |downsweep_#in~space| 2) 4) downsweep_~a.offset) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|))) (<= (+ |downsweep_#in~space| 1) 0)) (= |#memory_int| (store |old(#memory_int)| downsweep_~a.base (select |#memory_int| downsweep_~a.base))) (or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))) (not (= |downsweep_#in~a.offset| 0))) (= (select (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4))) 0))} is VALID [2022-04-28 04:17:00,925 INFO L290 TraceCheckUtils]: 1: Hoare triple {16936#(and (= downsweep_~n |downsweep_#in~n|) (or (and (= downsweep_~a.base |downsweep_#in~a.base|) (or (and (or (<= |downsweep_#in~a.offset| downsweep_~a.offset) (= (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) 4)) (= (store (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (select (select |old(#memory_int)| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)))) (select |old(#memory_int)| downsweep_~a.base)) (<= (+ (* (div |downsweep_#in~space| 2) 4) downsweep_~a.offset) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|))) (<= (+ |downsweep_#in~space| 1) 0)) (= |#memory_int| (store |old(#memory_int)| downsweep_~a.base (select |#memory_int| downsweep_~a.base))) (or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))) (not (= |downsweep_#in~a.offset| 0))) (= (select (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4))) 0))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {16937#(and (or (not (= (* downsweep_~n 4) (+ (* downsweep_~right~1 4) 4))) (and (or (and (= downsweep_~a.base |downsweep_#in~a.base|) (or (and (or (= |downsweep_#in~space| (* 2 (div |downsweep_#in~space| 2))) (<= 0 |downsweep_#in~space|)) (= downsweep_~space (div |downsweep_#in~space| 2))) (and (not (= |downsweep_#in~space| (* 2 (div |downsweep_#in~space| 2)))) (= downsweep_~space (+ (div |downsweep_#in~space| 2) 1)) (not (<= 0 |downsweep_#in~space|)))) (or (and (<= (+ (* (div |downsweep_#in~space| 2) 4) downsweep_~a.offset (* downsweep_~right~1 4) 4) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset| (* downsweep_~space 8))) (= (store (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (select (select |old(#memory_int)| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)))) (select |old(#memory_int)| downsweep_~a.base)) (<= (+ |downsweep_#in~a.offset| 4) (+ downsweep_~a.offset (* downsweep_~right~1 4)))) (<= (+ |downsweep_#in~space| 1) 0)) (= |#memory_int| (store |old(#memory_int)| downsweep_~a.base (select |#memory_int| downsweep_~a.base)))) (not (= |downsweep_#in~a.offset| 0))) (= (select (select |#memory_int| downsweep_~a.base) (+ downsweep_~a.offset (* downsweep_~right~1 4))) 0))) (or (= (* downsweep_~n 4) (+ (* downsweep_~right~1 4) 4)) (and (= downsweep_~n |downsweep_#in~n|) (or (<= 1 downsweep_~right~1) (<= downsweep_~n (+ downsweep_~right~1 1))))))} is VALID [2022-04-28 04:17:00,932 INFO L290 TraceCheckUtils]: 2: Hoare triple {16937#(and (or (not (= (* downsweep_~n 4) (+ (* downsweep_~right~1 4) 4))) (and (or (and (= downsweep_~a.base |downsweep_#in~a.base|) (or (and (or (= |downsweep_#in~space| (* 2 (div |downsweep_#in~space| 2))) (<= 0 |downsweep_#in~space|)) (= downsweep_~space (div |downsweep_#in~space| 2))) (and (not (= |downsweep_#in~space| (* 2 (div |downsweep_#in~space| 2)))) (= downsweep_~space (+ (div |downsweep_#in~space| 2) 1)) (not (<= 0 |downsweep_#in~space|)))) (or (and (<= (+ (* (div |downsweep_#in~space| 2) 4) downsweep_~a.offset (* downsweep_~right~1 4) 4) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset| (* downsweep_~space 8))) (= (store (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (select (select |old(#memory_int)| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)))) (select |old(#memory_int)| downsweep_~a.base)) (<= (+ |downsweep_#in~a.offset| 4) (+ downsweep_~a.offset (* downsweep_~right~1 4)))) (<= (+ |downsweep_#in~space| 1) 0)) (= |#memory_int| (store |old(#memory_int)| downsweep_~a.base (select |#memory_int| downsweep_~a.base)))) (not (= |downsweep_#in~a.offset| 0))) (= (select (select |#memory_int| downsweep_~a.base) (+ downsweep_~a.offset (* downsweep_~right~1 4))) 0))) (or (= (* downsweep_~n 4) (+ (* downsweep_~right~1 4) 4)) (and (= downsweep_~n |downsweep_#in~n|) (or (<= 1 downsweep_~right~1) (<= downsweep_~n (+ downsweep_~right~1 1))))))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {16938#(or (and (<= 3 downsweep_~n) (= downsweep_~n |downsweep_#in~n|)) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (* (div |downsweep_#in~space| 2) 4) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) (* downsweep_~space 4) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= (+ 5 (* (div |downsweep_#in~space| 2) 4)) (+ (* |downsweep_#in~space| 2) (* downsweep_~space 4) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0))) (<= (+ |downsweep_#in~space| (* 2 downsweep_~space)) (+ (* 2 (div |downsweep_#in~space| 2)) 1))) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:17:00,934 INFO L290 TraceCheckUtils]: 3: Hoare triple {16938#(or (and (<= 3 downsweep_~n) (= downsweep_~n |downsweep_#in~n|)) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (* (div |downsweep_#in~space| 2) 4) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) (* downsweep_~space 4) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= (+ 5 (* (div |downsweep_#in~space| 2) 4)) (+ (* |downsweep_#in~space| 2) (* downsweep_~space 4) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0))) (<= (+ |downsweep_#in~space| (* 2 downsweep_~space)) (+ (* 2 (div |downsweep_#in~space| 2)) 1))) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (not (= |downsweep_#in~a.offset| 0)))} assume !(~right~1 < ~n); {16939#(or (<= 3 |downsweep_#in~n|) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (* (div |downsweep_#in~space| 2) 4) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) (* downsweep_~space 4) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= (+ 5 (* (div |downsweep_#in~space| 2) 4)) (+ (* |downsweep_#in~space| 2) (* downsweep_~space 4) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0))) (<= (+ |downsweep_#in~space| (* 2 downsweep_~space)) (+ (* 2 (div |downsweep_#in~space| 2)) 1))) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:17:00,936 INFO L290 TraceCheckUtils]: 4: Hoare triple {16939#(or (<= 3 |downsweep_#in~n|) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (* (div |downsweep_#in~space| 2) 4) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) (* downsweep_~space 4) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= (+ 5 (* (div |downsweep_#in~space| 2) 4)) (+ (* |downsweep_#in~space| 2) (* downsweep_~space 4) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0))) (<= (+ |downsweep_#in~space| (* 2 downsweep_~space)) (+ (* 2 (div |downsweep_#in~space| 2)) 1))) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (not (= |downsweep_#in~a.offset| 0)))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {16940#(or (and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= |downsweep_#in~space| 1) (<= 5 (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:17:00,937 INFO L290 TraceCheckUtils]: 5: Hoare triple {16940#(or (and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= |downsweep_#in~space| 1) (<= 5 (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} assume !(~space > 0); {16940#(or (and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= |downsweep_#in~space| 1) (<= 5 (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:17:00,938 INFO L290 TraceCheckUtils]: 6: Hoare triple {16940#(or (and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= |downsweep_#in~space| 1) (<= 5 (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} assume true; {16940#(or (and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= |downsweep_#in~space| 1) (<= 5 (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:17:00,941 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {16940#(or (and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= |downsweep_#in~space| 1) (<= 5 (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} {16906#(and (<= main_~n~0 2) (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= main_~a~0.offset 0) (<= 2 main_~space~1) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= (* 2 main_~space~1) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))) (<= (* main_~space~1 4) 8) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} #154#return; {16915#(and (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) 4) 0) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:00,941 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 63 [2022-04-28 04:17:00,942 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:17:00,944 INFO L290 TraceCheckUtils]: 0: Hoare triple {16862#true} ~cond := #in~cond; {16862#true} is VALID [2022-04-28 04:17:00,944 INFO L290 TraceCheckUtils]: 1: Hoare triple {16862#true} assume !(0 == ~cond); {16862#true} is VALID [2022-04-28 04:17:00,944 INFO L290 TraceCheckUtils]: 2: Hoare triple {16862#true} assume true; {16862#true} is VALID [2022-04-28 04:17:00,945 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {16862#true} {16917#(and (= (select (select |#memory_int| check_~a0.base) (+ check_~a0.offset (* check_~i~0 4))) 0) (= check_~a0.offset 0) (= check_~i~0 0) (= (select (select |#memory_int| check_~a.base) 4) 0) (= check_~sum~0 0) (= check_~a.offset 0))} #158#return; {16917#(and (= (select (select |#memory_int| check_~a0.base) (+ check_~a0.offset (* check_~i~0 4))) 0) (= check_~a0.offset 0) (= check_~i~0 0) (= (select (select |#memory_int| check_~a.base) 4) 0) (= check_~sum~0 0) (= check_~a.offset 0))} is VALID [2022-04-28 04:17:00,945 INFO L272 TraceCheckUtils]: 0: Hoare triple {16862#true} call ULTIMATE.init(); {16927#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-28 04:17:00,945 INFO L290 TraceCheckUtils]: 1: Hoare triple {16927#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {16862#true} is VALID [2022-04-28 04:17:00,945 INFO L290 TraceCheckUtils]: 2: Hoare triple {16862#true} assume true; {16862#true} is VALID [2022-04-28 04:17:00,945 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {16862#true} {16862#true} #160#return; {16862#true} is VALID [2022-04-28 04:17:00,945 INFO L272 TraceCheckUtils]: 4: Hoare triple {16862#true} call #t~ret20 := main(); {16862#true} is VALID [2022-04-28 04:17:00,945 INFO L290 TraceCheckUtils]: 5: Hoare triple {16862#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {16862#true} is VALID [2022-04-28 04:17:00,946 INFO L272 TraceCheckUtils]: 6: Hoare triple {16862#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {16862#true} is VALID [2022-04-28 04:17:00,946 INFO L290 TraceCheckUtils]: 7: Hoare triple {16862#true} ~cond := #in~cond; {16862#true} is VALID [2022-04-28 04:17:00,946 INFO L290 TraceCheckUtils]: 8: Hoare triple {16862#true} assume !(0 == ~cond); {16862#true} is VALID [2022-04-28 04:17:00,946 INFO L290 TraceCheckUtils]: 9: Hoare triple {16862#true} assume true; {16862#true} is VALID [2022-04-28 04:17:00,946 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {16862#true} {16862#true} #142#return; {16862#true} is VALID [2022-04-28 04:17:00,946 INFO L272 TraceCheckUtils]: 11: Hoare triple {16862#true} call #t~ret14 := is_pow2(~n~0); {16862#true} is VALID [2022-04-28 04:17:00,946 INFO L290 TraceCheckUtils]: 12: Hoare triple {16862#true} ~x := #in~x; {16862#true} is VALID [2022-04-28 04:17:00,946 INFO L290 TraceCheckUtils]: 13: Hoare triple {16862#true} assume !!(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1);~x := (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then 1 + ~x % 4294967296 / 2 else ~x % 4294967296 / 2); {16862#true} is VALID [2022-04-28 04:17:00,946 INFO L290 TraceCheckUtils]: 14: Hoare triple {16862#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {16862#true} is VALID [2022-04-28 04:17:00,946 INFO L290 TraceCheckUtils]: 15: Hoare triple {16862#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {16862#true} is VALID [2022-04-28 04:17:00,946 INFO L290 TraceCheckUtils]: 16: Hoare triple {16862#true} assume true; {16862#true} is VALID [2022-04-28 04:17:00,946 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {16862#true} {16862#true} #144#return; {16862#true} is VALID [2022-04-28 04:17:00,946 INFO L290 TraceCheckUtils]: 18: Hoare triple {16862#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {16862#true} is VALID [2022-04-28 04:17:00,946 INFO L272 TraceCheckUtils]: 19: Hoare triple {16862#true} call assume_abort_if_not(#t~ret14); {16862#true} is VALID [2022-04-28 04:17:00,946 INFO L290 TraceCheckUtils]: 20: Hoare triple {16862#true} ~cond := #in~cond; {16862#true} is VALID [2022-04-28 04:17:00,947 INFO L290 TraceCheckUtils]: 21: Hoare triple {16862#true} assume !(0 == ~cond); {16862#true} is VALID [2022-04-28 04:17:00,947 INFO L290 TraceCheckUtils]: 22: Hoare triple {16862#true} assume true; {16862#true} is VALID [2022-04-28 04:17:00,947 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {16862#true} {16862#true} #146#return; {16862#true} is VALID [2022-04-28 04:17:00,947 INFO L290 TraceCheckUtils]: 24: Hoare triple {16862#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {16881#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0))} is VALID [2022-04-28 04:17:00,948 INFO L272 TraceCheckUtils]: 25: Hoare triple {16881#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0))} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {16928#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:17:00,949 INFO L290 TraceCheckUtils]: 26: Hoare triple {16928#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {16929#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-28 04:17:00,949 INFO L290 TraceCheckUtils]: 27: Hoare triple {16929#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} assume true; {16929#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-28 04:17:00,950 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {16929#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} {16881#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0))} #148#return; {16885#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc15.base|)))} is VALID [2022-04-28 04:17:00,950 INFO L290 TraceCheckUtils]: 29: Hoare triple {16885#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc15.base|)))} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {16886#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)) (= |main_#t~malloc16.offset| 0))} is VALID [2022-04-28 04:17:00,951 INFO L272 TraceCheckUtils]: 30: Hoare triple {16886#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)) (= |main_#t~malloc16.offset| 0))} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {16928#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:17:00,952 INFO L290 TraceCheckUtils]: 31: Hoare triple {16928#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {16930#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-04-28 04:17:00,952 INFO L290 TraceCheckUtils]: 32: Hoare triple {16930#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} assume true; {16930#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-04-28 04:17:00,954 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {16930#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} {16886#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)) (= |main_#t~malloc16.offset| 0))} #150#return; {16886#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)) (= |main_#t~malloc16.offset| 0))} is VALID [2022-04-28 04:17:00,954 INFO L290 TraceCheckUtils]: 34: Hoare triple {16886#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)) (= |main_#t~malloc16.offset| 0))} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {16890#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~i~1 0) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:00,955 INFO L290 TraceCheckUtils]: 35: Hoare triple {16890#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~i~1 0) (= main_~a0~0.offset 0))} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {16891#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (= (select (select |#memory_int| main_~a0~0.base) (+ main_~a0~0.offset (* main_~i~1 4))) 0) (not (= main_~a~0.base main_~a0~0.base)) (= main_~i~1 0) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:00,955 INFO L290 TraceCheckUtils]: 36: Hoare triple {16891#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (= (select (select |#memory_int| main_~a0~0.base) (+ main_~a0~0.offset (* main_~i~1 4))) 0) (not (= main_~a~0.base main_~a0~0.base)) (= main_~i~1 0) (= main_~a0~0.offset 0))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {16892#(and (<= 1 main_~i~1) (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= main_~i~1 1) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:00,956 INFO L290 TraceCheckUtils]: 37: Hoare triple {16892#(and (<= 1 main_~i~1) (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= main_~i~1 1) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {16893#(and (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= main_~a~0.offset 0) (<= 2 main_~n~0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= main_~i~1 1) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:00,957 INFO L290 TraceCheckUtils]: 38: Hoare triple {16893#(and (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= main_~a~0.offset 0) (<= 2 main_~n~0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= main_~i~1 1) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {16894#(and (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= main_~a~0.offset 0) (<= 2 main_~n~0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= main_~i~1 2) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:00,958 INFO L290 TraceCheckUtils]: 39: Hoare triple {16894#(and (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= main_~a~0.offset 0) (<= 2 main_~n~0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= main_~i~1 2) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} assume !(~i~1 < ~n~0); {16895#(and (<= main_~n~0 2) (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= main_~a~0.offset 0) (<= 2 main_~n~0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:00,959 INFO L272 TraceCheckUtils]: 40: Hoare triple {16895#(and (<= main_~n~0 2) (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= main_~a~0.offset 0) (<= 2 main_~n~0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {16928#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:17:00,959 INFO L290 TraceCheckUtils]: 41: Hoare triple {16928#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {16931#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base) (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0))} is VALID [2022-04-28 04:17:00,959 INFO L290 TraceCheckUtils]: 42: Hoare triple {16931#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base) (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {16932#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base) (or (and (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0)) (not (= (select (select |#memory_int| upsweep_~a.base) (+ (* upsweep_~left~0 4) upsweep_~a.offset)) 0))))} is VALID [2022-04-28 04:17:00,961 INFO L290 TraceCheckUtils]: 43: Hoare triple {16932#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base) (or (and (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0)) (not (= (select (select |#memory_int| upsweep_~a.base) (+ (* upsweep_~left~0 4) upsweep_~a.offset)) 0))))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {16933#(or (and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:17:00,961 INFO L290 TraceCheckUtils]: 44: Hoare triple {16933#(or (and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} assume !(~left~0 < ~n); {16933#(or (and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:17:00,962 INFO L290 TraceCheckUtils]: 45: Hoare triple {16933#(or (and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} ~space~0 := 2 * ~space~0; {16934#(or (and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 2) (<= 2 upsweep_~space~0)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:17:00,962 INFO L290 TraceCheckUtils]: 46: Hoare triple {16934#(or (and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 2) (<= 2 upsweep_~space~0)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} assume !(~space~0 < ~n); {16934#(or (and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 2) (<= 2 upsweep_~space~0)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:17:00,963 INFO L290 TraceCheckUtils]: 47: Hoare triple {16934#(or (and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 2) (<= 2 upsweep_~space~0)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} #res := ~space~0; {16935#(or (and (= |#memory_int| |old(#memory_int)|) (<= |upsweep_#res| 2) (<= 2 |upsweep_#res|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:17:00,963 INFO L290 TraceCheckUtils]: 48: Hoare triple {16935#(or (and (= |#memory_int| |old(#memory_int)|) (<= |upsweep_#res| 2) (<= 2 |upsweep_#res|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} assume true; {16935#(or (and (= |#memory_int| |old(#memory_int)|) (<= |upsweep_#res| 2) (<= 2 |upsweep_#res|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:17:00,965 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {16935#(or (and (= |#memory_int| |old(#memory_int)|) (<= |upsweep_#res| 2) (<= 2 |upsweep_#res|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} {16895#(and (<= main_~n~0 2) (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= main_~a~0.offset 0) (<= 2 main_~n~0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} #152#return; {16905#(and (<= main_~n~0 2) (<= (* |main_#t~ret19| 2) 4) (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= main_~a~0.offset 0) (<= 2 |main_#t~ret19|) (not (= main_~a~0.base main_~a0~0.base)) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= (* |main_#t~ret19| 2) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:00,966 INFO L290 TraceCheckUtils]: 50: Hoare triple {16905#(and (<= main_~n~0 2) (<= (* |main_#t~ret19| 2) 4) (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= main_~a~0.offset 0) (<= 2 |main_#t~ret19|) (not (= main_~a~0.base main_~a0~0.base)) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= (* |main_#t~ret19| 2) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))) (= main_~a0~0.offset 0))} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {16906#(and (<= main_~n~0 2) (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= main_~a~0.offset 0) (<= 2 main_~space~1) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= (* 2 main_~space~1) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))) (<= (* main_~space~1 4) 8) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:00,968 INFO L272 TraceCheckUtils]: 51: Hoare triple {16906#(and (<= main_~n~0 2) (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= main_~a~0.offset 0) (<= 2 main_~space~1) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= (* 2 main_~space~1) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))) (<= (* main_~space~1 4) 8) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {16928#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:17:00,970 INFO L290 TraceCheckUtils]: 52: Hoare triple {16928#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {16936#(and (= downsweep_~n |downsweep_#in~n|) (or (and (= downsweep_~a.base |downsweep_#in~a.base|) (or (and (or (<= |downsweep_#in~a.offset| downsweep_~a.offset) (= (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) 4)) (= (store (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (select (select |old(#memory_int)| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)))) (select |old(#memory_int)| downsweep_~a.base)) (<= (+ (* (div |downsweep_#in~space| 2) 4) downsweep_~a.offset) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|))) (<= (+ |downsweep_#in~space| 1) 0)) (= |#memory_int| (store |old(#memory_int)| downsweep_~a.base (select |#memory_int| downsweep_~a.base))) (or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))) (not (= |downsweep_#in~a.offset| 0))) (= (select (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4))) 0))} is VALID [2022-04-28 04:17:00,972 INFO L290 TraceCheckUtils]: 53: Hoare triple {16936#(and (= downsweep_~n |downsweep_#in~n|) (or (and (= downsweep_~a.base |downsweep_#in~a.base|) (or (and (or (<= |downsweep_#in~a.offset| downsweep_~a.offset) (= (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) 4)) (= (store (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (select (select |old(#memory_int)| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)))) (select |old(#memory_int)| downsweep_~a.base)) (<= (+ (* (div |downsweep_#in~space| 2) 4) downsweep_~a.offset) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|))) (<= (+ |downsweep_#in~space| 1) 0)) (= |#memory_int| (store |old(#memory_int)| downsweep_~a.base (select |#memory_int| downsweep_~a.base))) (or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0))))) (not (= |downsweep_#in~a.offset| 0))) (= (select (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4))) 0))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {16937#(and (or (not (= (* downsweep_~n 4) (+ (* downsweep_~right~1 4) 4))) (and (or (and (= downsweep_~a.base |downsweep_#in~a.base|) (or (and (or (= |downsweep_#in~space| (* 2 (div |downsweep_#in~space| 2))) (<= 0 |downsweep_#in~space|)) (= downsweep_~space (div |downsweep_#in~space| 2))) (and (not (= |downsweep_#in~space| (* 2 (div |downsweep_#in~space| 2)))) (= downsweep_~space (+ (div |downsweep_#in~space| 2) 1)) (not (<= 0 |downsweep_#in~space|)))) (or (and (<= (+ (* (div |downsweep_#in~space| 2) 4) downsweep_~a.offset (* downsweep_~right~1 4) 4) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset| (* downsweep_~space 8))) (= (store (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (select (select |old(#memory_int)| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)))) (select |old(#memory_int)| downsweep_~a.base)) (<= (+ |downsweep_#in~a.offset| 4) (+ downsweep_~a.offset (* downsweep_~right~1 4)))) (<= (+ |downsweep_#in~space| 1) 0)) (= |#memory_int| (store |old(#memory_int)| downsweep_~a.base (select |#memory_int| downsweep_~a.base)))) (not (= |downsweep_#in~a.offset| 0))) (= (select (select |#memory_int| downsweep_~a.base) (+ downsweep_~a.offset (* downsweep_~right~1 4))) 0))) (or (= (* downsweep_~n 4) (+ (* downsweep_~right~1 4) 4)) (and (= downsweep_~n |downsweep_#in~n|) (or (<= 1 downsweep_~right~1) (<= downsweep_~n (+ downsweep_~right~1 1))))))} is VALID [2022-04-28 04:17:00,980 INFO L290 TraceCheckUtils]: 54: Hoare triple {16937#(and (or (not (= (* downsweep_~n 4) (+ (* downsweep_~right~1 4) 4))) (and (or (and (= downsweep_~a.base |downsweep_#in~a.base|) (or (and (or (= |downsweep_#in~space| (* 2 (div |downsweep_#in~space| 2))) (<= 0 |downsweep_#in~space|)) (= downsweep_~space (div |downsweep_#in~space| 2))) (and (not (= |downsweep_#in~space| (* 2 (div |downsweep_#in~space| 2)))) (= downsweep_~space (+ (div |downsweep_#in~space| 2) 1)) (not (<= 0 |downsweep_#in~space|)))) (or (and (<= (+ (* (div |downsweep_#in~space| 2) 4) downsweep_~a.offset (* downsweep_~right~1 4) 4) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset| (* downsweep_~space 8))) (= (store (select |#memory_int| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)) (select (select |old(#memory_int)| downsweep_~a.base) (+ (* downsweep_~n 4) downsweep_~a.offset (- 4)))) (select |old(#memory_int)| downsweep_~a.base)) (<= (+ |downsweep_#in~a.offset| 4) (+ downsweep_~a.offset (* downsweep_~right~1 4)))) (<= (+ |downsweep_#in~space| 1) 0)) (= |#memory_int| (store |old(#memory_int)| downsweep_~a.base (select |#memory_int| downsweep_~a.base)))) (not (= |downsweep_#in~a.offset| 0))) (= (select (select |#memory_int| downsweep_~a.base) (+ downsweep_~a.offset (* downsweep_~right~1 4))) 0))) (or (= (* downsweep_~n 4) (+ (* downsweep_~right~1 4) 4)) (and (= downsweep_~n |downsweep_#in~n|) (or (<= 1 downsweep_~right~1) (<= downsweep_~n (+ downsweep_~right~1 1))))))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {16938#(or (and (<= 3 downsweep_~n) (= downsweep_~n |downsweep_#in~n|)) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (* (div |downsweep_#in~space| 2) 4) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) (* downsweep_~space 4) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= (+ 5 (* (div |downsweep_#in~space| 2) 4)) (+ (* |downsweep_#in~space| 2) (* downsweep_~space 4) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0))) (<= (+ |downsweep_#in~space| (* 2 downsweep_~space)) (+ (* 2 (div |downsweep_#in~space| 2)) 1))) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:17:00,982 INFO L290 TraceCheckUtils]: 55: Hoare triple {16938#(or (and (<= 3 downsweep_~n) (= downsweep_~n |downsweep_#in~n|)) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (* (div |downsweep_#in~space| 2) 4) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) (* downsweep_~space 4) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= (+ 5 (* (div |downsweep_#in~space| 2) 4)) (+ (* |downsweep_#in~space| 2) (* downsweep_~space 4) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0))) (<= (+ |downsweep_#in~space| (* 2 downsweep_~space)) (+ (* 2 (div |downsweep_#in~space| 2)) 1))) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (not (= |downsweep_#in~a.offset| 0)))} assume !(~right~1 < ~n); {16939#(or (<= 3 |downsweep_#in~n|) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (* (div |downsweep_#in~space| 2) 4) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) (* downsweep_~space 4) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= (+ 5 (* (div |downsweep_#in~space| 2) 4)) (+ (* |downsweep_#in~space| 2) (* downsweep_~space 4) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0))) (<= (+ |downsweep_#in~space| (* 2 downsweep_~space)) (+ (* 2 (div |downsweep_#in~space| 2)) 1))) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:17:00,984 INFO L290 TraceCheckUtils]: 56: Hoare triple {16939#(or (<= 3 |downsweep_#in~n|) (and (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (* (div |downsweep_#in~space| 2) 4) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) (* downsweep_~space 4) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= (+ 5 (* (div |downsweep_#in~space| 2) 4)) (+ (* |downsweep_#in~space| 2) (* downsweep_~space 4) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0))) (<= (+ |downsweep_#in~space| (* 2 downsweep_~space)) (+ (* 2 (div |downsweep_#in~space| 2)) 1))) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2) 1) 0) (not (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)) (not (<= 0 |downsweep_#in~space|))) (and (= (+ (* (- 1) downsweep_~space) (div |downsweep_#in~space| 2)) 0) (or (<= 0 |downsweep_#in~space|) (= (+ |downsweep_#in~space| (* (- 2) (div |downsweep_#in~space| 2))) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (not (= |downsweep_#in~a.offset| 0)))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {16940#(or (and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= |downsweep_#in~space| 1) (<= 5 (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:17:00,986 INFO L290 TraceCheckUtils]: 57: Hoare triple {16940#(or (and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= |downsweep_#in~space| 1) (<= 5 (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} assume !(~space > 0); {16940#(or (and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= |downsweep_#in~space| 1) (<= 5 (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:17:00,987 INFO L290 TraceCheckUtils]: 58: Hoare triple {16940#(or (and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= |downsweep_#in~space| 1) (<= 5 (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} assume true; {16940#(or (and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= |downsweep_#in~space| 1) (<= 5 (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} is VALID [2022-04-28 04:17:00,989 INFO L284 TraceCheckUtils]: 59: Hoare quadruple {16940#(or (and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (and (<= (+ (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 4) (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|)))) (<= |downsweep_#in~space| 1) (<= 5 (+ (* |downsweep_#in~space| 2) |downsweep_#in~a.offset|)) (not (= ((as const (Array Int Int)) 0) (store (select |old(#memory_int)| |downsweep_#in~a.base|) (@diff (select |old(#memory_int)| |downsweep_#in~a.base|) ((as const (Array Int Int)) 0)) 0)))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)))) (<= 3 |downsweep_#in~n|) (not (= |downsweep_#in~a.offset| 0)))} {16906#(and (<= main_~n~0 2) (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= main_~a~0.offset 0) (<= 2 main_~space~1) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= (* 2 main_~space~1) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))) (<= (* main_~space~1 4) 8) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} #154#return; {16915#(and (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) 4) 0) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:00,990 INFO L272 TraceCheckUtils]: 60: Hoare triple {16915#(and (= (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset) 0) (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) 4) 0) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {16916#(and (= |check_#in~a.offset| 0) (= (select (select |#memory_int| |check_#in~a0.base|) 0) 0) (= |check_#in~a0.offset| 0) (= (select (select |#memory_int| |check_#in~a.base|) 4) 0))} is VALID [2022-04-28 04:17:00,991 INFO L290 TraceCheckUtils]: 61: Hoare triple {16916#(and (= |check_#in~a.offset| 0) (= (select (select |#memory_int| |check_#in~a0.base|) 0) 0) (= |check_#in~a0.offset| 0) (= (select (select |#memory_int| |check_#in~a.base|) 4) 0))} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {16917#(and (= (select (select |#memory_int| check_~a0.base) (+ check_~a0.offset (* check_~i~0 4))) 0) (= check_~a0.offset 0) (= check_~i~0 0) (= (select (select |#memory_int| check_~a.base) 4) 0) (= check_~sum~0 0) (= check_~a.offset 0))} is VALID [2022-04-28 04:17:00,991 INFO L290 TraceCheckUtils]: 62: Hoare triple {16917#(and (= (select (select |#memory_int| check_~a0.base) (+ check_~a0.offset (* check_~i~0 4))) 0) (= check_~a0.offset 0) (= check_~i~0 0) (= (select (select |#memory_int| check_~a.base) 4) 0) (= check_~sum~0 0) (= check_~a.offset 0))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {16917#(and (= (select (select |#memory_int| check_~a0.base) (+ check_~a0.offset (* check_~i~0 4))) 0) (= check_~a0.offset 0) (= check_~i~0 0) (= (select (select |#memory_int| check_~a.base) 4) 0) (= check_~sum~0 0) (= check_~a.offset 0))} is VALID [2022-04-28 04:17:00,991 INFO L272 TraceCheckUtils]: 63: Hoare triple {16917#(and (= (select (select |#memory_int| check_~a0.base) (+ check_~a0.offset (* check_~i~0 4))) 0) (= check_~a0.offset 0) (= check_~i~0 0) (= (select (select |#memory_int| check_~a.base) 4) 0) (= check_~sum~0 0) (= check_~a.offset 0))} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {16862#true} is VALID [2022-04-28 04:17:00,991 INFO L290 TraceCheckUtils]: 64: Hoare triple {16862#true} ~cond := #in~cond; {16862#true} is VALID [2022-04-28 04:17:00,991 INFO L290 TraceCheckUtils]: 65: Hoare triple {16862#true} assume !(0 == ~cond); {16862#true} is VALID [2022-04-28 04:17:00,991 INFO L290 TraceCheckUtils]: 66: Hoare triple {16862#true} assume true; {16862#true} is VALID [2022-04-28 04:17:00,992 INFO L284 TraceCheckUtils]: 67: Hoare quadruple {16862#true} {16917#(and (= (select (select |#memory_int| check_~a0.base) (+ check_~a0.offset (* check_~i~0 4))) 0) (= check_~a0.offset 0) (= check_~i~0 0) (= (select (select |#memory_int| check_~a.base) 4) 0) (= check_~sum~0 0) (= check_~a.offset 0))} #158#return; {16917#(and (= (select (select |#memory_int| check_~a0.base) (+ check_~a0.offset (* check_~i~0 4))) 0) (= check_~a0.offset 0) (= check_~i~0 0) (= (select (select |#memory_int| check_~a.base) 4) 0) (= check_~sum~0 0) (= check_~a.offset 0))} is VALID [2022-04-28 04:17:00,993 INFO L290 TraceCheckUtils]: 68: Hoare triple {16917#(and (= (select (select |#memory_int| check_~a0.base) (+ check_~a0.offset (* check_~i~0 4))) 0) (= check_~a0.offset 0) (= check_~i~0 0) (= (select (select |#memory_int| check_~a.base) 4) 0) (= check_~sum~0 0) (= check_~a.offset 0))} havoc #t~mem11;call #t~mem12 := read~int(~a0.base, ~a0.offset + 4 * ~i~0, 4);~sum~0 := ~sum~0 + #t~mem12;havoc #t~mem12; {16922#(and (= (select (select |#memory_int| check_~a.base) 4) check_~sum~0) (= check_~i~0 0) (= check_~sum~0 0) (= check_~a.offset 0))} is VALID [2022-04-28 04:17:00,993 INFO L290 TraceCheckUtils]: 69: Hoare triple {16922#(and (= (select (select |#memory_int| check_~a.base) 4) check_~sum~0) (= check_~i~0 0) (= check_~sum~0 0) (= check_~a.offset 0))} #t~post10 := ~i~0;~i~0 := 1 + #t~post10;havoc #t~post10; {16923#(and (= (select (select |#memory_int| check_~a.base) (+ (* check_~i~0 4) check_~a.offset)) check_~sum~0) (= check_~sum~0 0))} is VALID [2022-04-28 04:17:00,993 INFO L290 TraceCheckUtils]: 70: Hoare triple {16923#(and (= (select (select |#memory_int| check_~a.base) (+ (* check_~i~0 4) check_~a.offset)) check_~sum~0) (= check_~sum~0 0))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {16924#(and (= |check_#t~mem11| check_~sum~0) (= check_~sum~0 0))} is VALID [2022-04-28 04:17:00,994 INFO L272 TraceCheckUtils]: 71: Hoare triple {16924#(and (= |check_#t~mem11| check_~sum~0) (= check_~sum~0 0))} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {16925#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-28 04:17:00,994 INFO L290 TraceCheckUtils]: 72: Hoare triple {16925#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {16926#(not (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-28 04:17:00,995 INFO L290 TraceCheckUtils]: 73: Hoare triple {16926#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {16863#false} is VALID [2022-04-28 04:17:00,995 INFO L290 TraceCheckUtils]: 74: Hoare triple {16863#false} assume !false; {16863#false} is VALID [2022-04-28 04:17:00,995 INFO L134 CoverageAnalysis]: Checked inductivity of 20 backedges. 2 proven. 12 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-04-28 04:17:00,995 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:17:00,995 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1481262239] [2022-04-28 04:17:00,995 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1481262239] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:17:00,996 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2095565254] [2022-04-28 04:17:00,996 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:17:00,996 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:17:00,996 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:17:01,012 INFO L229 MonitoredProcess]: Starting monitored process 17 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:17:01,019 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (17)] Waiting until timeout for monitored process [2022-04-28 04:17:01,125 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:17:01,126 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:17:01,129 INFO L263 TraceCheckSpWp]: Trace formula consists of 304 conjuncts, 132 conjunts are in the unsatisfiable core [2022-04-28 04:17:01,154 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:17:01,155 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:17:01,210 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 6 treesize of output 5 [2022-04-28 04:17:01,276 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 7 treesize of output 6 [2022-04-28 04:17:01,369 INFO L356 Elim1Store]: treesize reduction 4, result has 50.0 percent of original size [2022-04-28 04:17:01,370 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 11 treesize of output 11 [2022-04-28 04:17:01,389 WARN L855 $PredicateComparison]: unable to prove that (exists ((v_ArrVal_678 (Array Int Int))) (= |c_#memory_int| (store |c_old(#memory_int)| |c_#Ultimate.meminit_#ptr.base| v_ArrVal_678))) is different from true [2022-04-28 04:17:01,416 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 15 [2022-04-28 04:17:01,448 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 20 [2022-04-28 04:17:01,451 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 10 [2022-04-28 04:17:01,543 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 40 treesize of output 36 [2022-04-28 04:17:01,554 INFO L356 Elim1Store]: treesize reduction 32, result has 17.9 percent of original size [2022-04-28 04:17:01,554 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 1 case distinctions, treesize of input 28 treesize of output 32 [2022-04-28 04:17:10,799 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 50 treesize of output 44 [2022-04-28 04:17:14,117 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 106 treesize of output 98 [2022-04-28 04:17:19,397 WARN L855 $PredicateComparison]: unable to prove that (exists ((v_check_~a0.base_BEFORE_CALL_2 Int) (upsweep_~a.offset Int) (v_main_~n~0_BEFORE_CALL_67 Int) (v_check_~a.base_BEFORE_CALL_2 Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (let ((.cse2 ((as const (Array Int Int)) 0))) (and (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= 0 v_upsweep_~left~0_60) (not (= v_check_~a0.base_BEFORE_CALL_2 v_check_~a.base_BEFORE_CALL_2)) (= (select |c_#memory_int| v_check_~a.base_BEFORE_CALL_2) (let ((.cse0 (store (let ((.cse3 (+ (* upsweep_~right~0 4) upsweep_~a.offset))) (store .cse2 .cse3 (+ (select .cse2 .cse3) (select .cse2 (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset))))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0))) (let ((.cse1 (select .cse0 4))) (store (store .cse0 4 (+ .cse1 (select .cse0 0))) 0 .cse1)))) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0) (= (select (select |c_#memory_int| v_check_~a0.base_BEFORE_CALL_2) 0) (select .cse2 0))))) is different from true [2022-04-28 04:17:23,193 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 172 treesize of output 164 [2022-04-28 04:17:23,313 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 14 [2022-04-28 04:17:23,695 INFO L272 TraceCheckUtils]: 0: Hoare triple {16862#true} call ULTIMATE.init(); {16862#true} is VALID [2022-04-28 04:17:23,696 INFO L290 TraceCheckUtils]: 1: Hoare triple {16862#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {16862#true} is VALID [2022-04-28 04:17:23,696 INFO L290 TraceCheckUtils]: 2: Hoare triple {16862#true} assume true; {16862#true} is VALID [2022-04-28 04:17:23,696 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {16862#true} {16862#true} #160#return; {16862#true} is VALID [2022-04-28 04:17:23,696 INFO L272 TraceCheckUtils]: 4: Hoare triple {16862#true} call #t~ret20 := main(); {16862#true} is VALID [2022-04-28 04:17:23,696 INFO L290 TraceCheckUtils]: 5: Hoare triple {16862#true} assume -2147483648 <= #t~nondet13 && #t~nondet13 <= 2147483647;~n~0 := #t~nondet13;havoc #t~nondet13; {16862#true} is VALID [2022-04-28 04:17:23,696 INFO L272 TraceCheckUtils]: 6: Hoare triple {16862#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {16862#true} is VALID [2022-04-28 04:17:23,696 INFO L290 TraceCheckUtils]: 7: Hoare triple {16862#true} ~cond := #in~cond; {16862#true} is VALID [2022-04-28 04:17:23,696 INFO L290 TraceCheckUtils]: 8: Hoare triple {16862#true} assume !(0 == ~cond); {16862#true} is VALID [2022-04-28 04:17:23,696 INFO L290 TraceCheckUtils]: 9: Hoare triple {16862#true} assume true; {16862#true} is VALID [2022-04-28 04:17:23,696 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {16862#true} {16862#true} #142#return; {16862#true} is VALID [2022-04-28 04:17:23,696 INFO L272 TraceCheckUtils]: 11: Hoare triple {16862#true} call #t~ret14 := is_pow2(~n~0); {16862#true} is VALID [2022-04-28 04:17:23,697 INFO L290 TraceCheckUtils]: 12: Hoare triple {16862#true} ~x := #in~x; {16862#true} is VALID [2022-04-28 04:17:23,697 INFO L290 TraceCheckUtils]: 13: Hoare triple {16862#true} assume !!(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1);~x := (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then 1 + ~x % 4294967296 / 2 else ~x % 4294967296 / 2); {16862#true} is VALID [2022-04-28 04:17:23,697 INFO L290 TraceCheckUtils]: 14: Hoare triple {16862#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {16862#true} is VALID [2022-04-28 04:17:23,697 INFO L290 TraceCheckUtils]: 15: Hoare triple {16862#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {16862#true} is VALID [2022-04-28 04:17:23,697 INFO L290 TraceCheckUtils]: 16: Hoare triple {16862#true} assume true; {16862#true} is VALID [2022-04-28 04:17:23,697 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {16862#true} {16862#true} #144#return; {16862#true} is VALID [2022-04-28 04:17:23,697 INFO L290 TraceCheckUtils]: 18: Hoare triple {16862#true} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647; {16862#true} is VALID [2022-04-28 04:17:23,697 INFO L272 TraceCheckUtils]: 19: Hoare triple {16862#true} call assume_abort_if_not(#t~ret14); {16862#true} is VALID [2022-04-28 04:17:23,697 INFO L290 TraceCheckUtils]: 20: Hoare triple {16862#true} ~cond := #in~cond; {16862#true} is VALID [2022-04-28 04:17:23,697 INFO L290 TraceCheckUtils]: 21: Hoare triple {16862#true} assume !(0 == ~cond); {16862#true} is VALID [2022-04-28 04:17:23,697 INFO L290 TraceCheckUtils]: 22: Hoare triple {16862#true} assume true; {16862#true} is VALID [2022-04-28 04:17:23,698 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {16862#true} {16862#true} #146#return; {16862#true} is VALID [2022-04-28 04:17:23,698 INFO L290 TraceCheckUtils]: 24: Hoare triple {16862#true} havoc #t~ret14;call #t~malloc15.base, #t~malloc15.offset := #Ultimate.allocOnHeap(4 * ~n~0); {16881#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0))} is VALID [2022-04-28 04:17:23,699 INFO L272 TraceCheckUtils]: 25: Hoare triple {16881#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0))} call #Ultimate.meminit(#t~malloc15.base, #t~malloc15.offset, ~n~0, 4, 4 * ~n~0); {17019#(exists ((|v_main_#t~malloc15.base_BEFORE_CALL_2| Int)) (= (select |#valid| |v_main_#t~malloc15.base_BEFORE_CALL_2|) 1))} is VALID [2022-04-28 04:17:23,700 INFO L290 TraceCheckUtils]: 26: Hoare triple {17019#(exists ((|v_main_#t~malloc15.base_BEFORE_CALL_2| Int)) (= (select |#valid| |v_main_#t~malloc15.base_BEFORE_CALL_2|) 1))} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {17023#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)) (exists ((|v_main_#t~malloc15.base_BEFORE_CALL_2| Int)) (= (select |#valid| |v_main_#t~malloc15.base_BEFORE_CALL_2|) 1)))} is VALID [2022-04-28 04:17:23,700 INFO L290 TraceCheckUtils]: 27: Hoare triple {17023#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)) (exists ((|v_main_#t~malloc15.base_BEFORE_CALL_2| Int)) (= (select |#valid| |v_main_#t~malloc15.base_BEFORE_CALL_2|) 1)))} assume true; {17023#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)) (exists ((|v_main_#t~malloc15.base_BEFORE_CALL_2| Int)) (= (select |#valid| |v_main_#t~malloc15.base_BEFORE_CALL_2|) 1)))} is VALID [2022-04-28 04:17:23,701 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {17023#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)) (exists ((|v_main_#t~malloc15.base_BEFORE_CALL_2| Int)) (= (select |#valid| |v_main_#t~malloc15.base_BEFORE_CALL_2|) 1)))} {16881#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0))} #148#return; {16885#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc15.base|)))} is VALID [2022-04-28 04:17:23,702 INFO L290 TraceCheckUtils]: 29: Hoare triple {16885#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc15.base|)))} ~a~0.base, ~a~0.offset := #t~malloc15.base, #t~malloc15.offset;call #t~malloc16.base, #t~malloc16.offset := #Ultimate.allocOnHeap(4 * ~n~0); {16886#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)) (= |main_#t~malloc16.offset| 0))} is VALID [2022-04-28 04:17:23,703 INFO L272 TraceCheckUtils]: 30: Hoare triple {16886#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)) (= |main_#t~malloc16.offset| 0))} call #Ultimate.meminit(#t~malloc16.base, #t~malloc16.offset, ~n~0, 4, 4 * ~n~0); {16928#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:17:23,704 INFO L290 TraceCheckUtils]: 31: Hoare triple {16928#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {17039#(exists ((v_ArrVal_678 (Array Int Int))) (= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| v_ArrVal_678)))} is VALID [2022-04-28 04:17:23,704 INFO L290 TraceCheckUtils]: 32: Hoare triple {17039#(exists ((v_ArrVal_678 (Array Int Int))) (= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| v_ArrVal_678)))} assume true; {17039#(exists ((v_ArrVal_678 (Array Int Int))) (= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| v_ArrVal_678)))} is VALID [2022-04-28 04:17:23,705 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {17039#(exists ((v_ArrVal_678 (Array Int Int))) (= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| v_ArrVal_678)))} {16886#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)) (= |main_#t~malloc16.offset| 0))} #150#return; {16886#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)) (= |main_#t~malloc16.offset| 0))} is VALID [2022-04-28 04:17:23,706 INFO L290 TraceCheckUtils]: 34: Hoare triple {16886#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)) (= |main_#t~malloc16.offset| 0))} ~a0~0.base, ~a0~0.offset := #t~malloc16.base, #t~malloc16.offset;havoc ~i~1;~i~1 := 0; {16890#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~i~1 0) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:23,707 INFO L290 TraceCheckUtils]: 35: Hoare triple {16890#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~i~1 0) (= main_~a0~0.offset 0))} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {17052#(and (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:23,707 INFO L290 TraceCheckUtils]: 36: Hoare triple {17052#(and (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {17052#(and (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:23,708 INFO L290 TraceCheckUtils]: 37: Hoare triple {17052#(and (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} assume !!(~i~1 < ~n~0);call #t~mem18 := read~int(~a~0.base, ~a~0.offset + 4 * ~i~1, 4);call write~int(#t~mem18, ~a0~0.base, ~a0~0.offset + 4 * ~i~1, 4);havoc #t~mem18; {17052#(and (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:23,717 INFO L290 TraceCheckUtils]: 38: Hoare triple {17052#(and (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} #t~post17 := ~i~1;~i~1 := 1 + #t~post17;havoc #t~post17; {17052#(and (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:23,717 INFO L290 TraceCheckUtils]: 39: Hoare triple {17052#(and (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} assume !(~i~1 < ~n~0); {17052#(and (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:23,718 INFO L272 TraceCheckUtils]: 40: Hoare triple {17052#(and (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} call #t~ret19 := upsweep(~a~0.base, ~a~0.offset, ~n~0); {16928#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:17:23,719 INFO L290 TraceCheckUtils]: 41: Hoare triple {16928#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {17071#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base) (<= |upsweep_#in~a.offset| upsweep_~a.offset) (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:17:23,719 INFO L290 TraceCheckUtils]: 42: Hoare triple {17071#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base) (<= |upsweep_#in~a.offset| upsweep_~a.offset) (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {17075#(and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 (+ upsweep_~left~0 1)) (= |upsweep_#in~a.base| upsweep_~a.base) (<= |upsweep_#in~a.offset| upsweep_~a.offset) (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} is VALID [2022-04-28 04:17:25,104 WARN L290 TraceCheckUtils]: 43: Hoare triple {17075#(and (= |#memory_int| |old(#memory_int)|) (<= upsweep_~space~0 (+ upsweep_~left~0 1)) (= |upsweep_#in~a.base| upsweep_~a.base) (<= |upsweep_#in~a.offset| upsweep_~a.offset) (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {17079#(and (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= (+ v_upsweep_~left~0_60 upsweep_~space~0) upsweep_~right~0) (<= upsweep_~space~0 (+ v_upsweep_~left~0_60 1)) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)) (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset)))))) (<= |upsweep_#in~a.offset| upsweep_~a.offset))))} is UNKNOWN [2022-04-28 04:17:26,999 WARN L290 TraceCheckUtils]: 44: Hoare triple {17079#(and (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= (+ v_upsweep_~left~0_60 upsweep_~space~0) upsweep_~right~0) (<= upsweep_~space~0 (+ v_upsweep_~left~0_60 1)) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)) (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset)))))) (<= |upsweep_#in~a.offset| upsweep_~a.offset))))} assume !(~left~0 < ~n); {17079#(and (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= (+ v_upsweep_~left~0_60 upsweep_~space~0) upsweep_~right~0) (<= upsweep_~space~0 (+ v_upsweep_~left~0_60 1)) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)) (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset)))))) (<= |upsweep_#in~a.offset| upsweep_~a.offset))))} is UNKNOWN [2022-04-28 04:17:28,730 WARN L290 TraceCheckUtils]: 45: Hoare triple {17079#(and (= upsweep_~space~0 1) (<= |upsweep_#in~n| upsweep_~n) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= (+ v_upsweep_~left~0_60 upsweep_~space~0) upsweep_~right~0) (<= upsweep_~space~0 (+ v_upsweep_~left~0_60 1)) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)) (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset)))))) (<= |upsweep_#in~a.offset| upsweep_~a.offset))))} ~space~0 := 2 * ~space~0; {17086#(and (= 2 upsweep_~space~0) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= 0 v_upsweep_~left~0_60) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)) (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset)))))) (<= |upsweep_#in~a.offset| upsweep_~a.offset) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (<= |upsweep_#in~n| upsweep_~n))} is UNKNOWN [2022-04-28 04:17:30,756 WARN L290 TraceCheckUtils]: 46: Hoare triple {17086#(and (= 2 upsweep_~space~0) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= 0 v_upsweep_~left~0_60) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)) (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset)))))) (<= |upsweep_#in~a.offset| upsweep_~a.offset) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (<= |upsweep_#in~n| upsweep_~n))} assume !(~space~0 < ~n); {17090#(and (<= |upsweep_#in~n| upsweep_~space~0) (= 2 upsweep_~space~0) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= 0 v_upsweep_~left~0_60) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)) (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset)))))) (<= |upsweep_#in~a.offset| upsweep_~a.offset) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))))} is UNKNOWN [2022-04-28 04:17:32,489 WARN L290 TraceCheckUtils]: 47: Hoare triple {17090#(and (<= |upsweep_#in~n| upsweep_~space~0) (= 2 upsweep_~space~0) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= 0 v_upsweep_~left~0_60) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)) (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset)))))) (<= |upsweep_#in~a.offset| upsweep_~a.offset) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))))} #res := ~space~0; {17094#(and (<= |upsweep_#in~n| 2) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= 0 v_upsweep_~left~0_60) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)) (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset)))))) (<= |upsweep_#in~a.offset| upsweep_~a.offset) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= |upsweep_#res| 2))} is UNKNOWN [2022-04-28 04:17:33,971 WARN L290 TraceCheckUtils]: 48: Hoare triple {17094#(and (<= |upsweep_#in~n| 2) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= 0 v_upsweep_~left~0_60) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)) (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset)))))) (<= |upsweep_#in~a.offset| upsweep_~a.offset) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= |upsweep_#res| 2))} assume true; {17094#(and (<= |upsweep_#in~n| 2) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= 0 v_upsweep_~left~0_60) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)) (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset)))))) (<= |upsweep_#in~a.offset| upsweep_~a.offset) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= |upsweep_#res| 2))} is UNKNOWN [2022-04-28 04:17:33,974 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {17094#(and (<= |upsweep_#in~n| 2) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= 0 v_upsweep_~left~0_60) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)) (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right~0 4) upsweep_~a.offset)))))) (<= |upsweep_#in~a.offset| upsweep_~a.offset) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= |upsweep_#res| 2))} {17052#(and (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} #152#return; {17101#(and (<= main_~n~0 2) (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| main_~a~0.base) (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset))))) (<= main_~a~0.offset upsweep_~a.offset) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= |main_#t~ret19| 2) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:33,975 INFO L290 TraceCheckUtils]: 50: Hoare triple {17101#(and (<= main_~n~0 2) (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| main_~a~0.base) (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset))))) (<= main_~a~0.offset upsweep_~a.offset) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= |main_#t~ret19| 2) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} assume -2147483648 <= #t~ret19 && #t~ret19 <= 2147483647;~space~1 := #t~ret19;havoc #t~ret19; {17105#(and (<= main_~n~0 2) (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (= 2 main_~space~1) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| main_~a~0.base) (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset))))) (<= main_~a~0.offset upsweep_~a.offset) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:33,976 INFO L272 TraceCheckUtils]: 51: Hoare triple {17105#(and (<= main_~n~0 2) (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (= 2 main_~space~1) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| main_~a~0.base) (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset))))) (<= main_~a~0.offset upsweep_~a.offset) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} call downsweep(~a~0.base, ~a~0.offset, ~n~0, ~space~1); {16928#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-28 04:17:33,977 INFO L290 TraceCheckUtils]: 52: Hoare triple {16928#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space := #in~space;call write~int(0, ~a.base, ~a.offset + 4 * (~n - 1), 4);~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {17112#(and (= downsweep_~a.base |downsweep_#in~a.base|) (= |#memory_int| (store |old(#memory_int)| downsweep_~a.base (store (select |old(#memory_int)| downsweep_~a.base) (+ (* |downsweep_#in~n| 4) downsweep_~a.offset (- 4)) 0))) (= downsweep_~a.offset |downsweep_#in~a.offset|) (or (and (or (= (mod |downsweep_#in~space| 2) 0) (not (< |downsweep_#in~space| 0))) (= downsweep_~space (div |downsweep_#in~space| 2))) (and (not (= (mod |downsweep_#in~space| 2) 0)) (< |downsweep_#in~space| 0) (= downsweep_~space (+ (div |downsweep_#in~space| 2) 1)))))} is VALID [2022-04-28 04:17:33,978 INFO L290 TraceCheckUtils]: 53: Hoare triple {17112#(and (= downsweep_~a.base |downsweep_#in~a.base|) (= |#memory_int| (store |old(#memory_int)| downsweep_~a.base (store (select |old(#memory_int)| downsweep_~a.base) (+ (* |downsweep_#in~n| 4) downsweep_~a.offset (- 4)) 0))) (= downsweep_~a.offset |downsweep_#in~a.offset|) (or (and (or (= (mod |downsweep_#in~space| 2) 0) (not (< |downsweep_#in~space| 0))) (= downsweep_~space (div |downsweep_#in~space| 2))) (and (not (= (mod |downsweep_#in~space| 2) 0)) (< |downsweep_#in~space| 0) (= downsweep_~space (+ (div |downsweep_#in~space| 2) 1)))))} assume !!(~space > 0);~right~1 := 2 * ~space - 1; {17116#(and (= downsweep_~a.base |downsweep_#in~a.base|) (= |#memory_int| (store |old(#memory_int)| downsweep_~a.base (store (select |old(#memory_int)| downsweep_~a.base) (+ (* |downsweep_#in~n| 4) downsweep_~a.offset (- 4)) 0))) (= downsweep_~a.offset |downsweep_#in~a.offset|) (= downsweep_~space (div |downsweep_#in~space| 2)) (= downsweep_~right~1 (+ (- 1) (* 2 downsweep_~space))) (< 0 downsweep_~space))} is VALID [2022-04-28 04:17:33,983 INFO L290 TraceCheckUtils]: 54: Hoare triple {17116#(and (= downsweep_~a.base |downsweep_#in~a.base|) (= |#memory_int| (store |old(#memory_int)| downsweep_~a.base (store (select |old(#memory_int)| downsweep_~a.base) (+ (* |downsweep_#in~n| 4) downsweep_~a.offset (- 4)) 0))) (= downsweep_~a.offset |downsweep_#in~a.offset|) (= downsweep_~space (div |downsweep_#in~space| 2)) (= downsweep_~right~1 (+ (- 1) (* 2 downsweep_~space))) (< 0 downsweep_~space))} assume !!(~right~1 < ~n);~left~1 := ~right~1 - ~space;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);~temp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~left~1, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~right~1, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right~1, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~temp~0, ~a.base, ~a.offset + 4 * ~left~1, 4);~right~1 := ~right~1 + 2 * ~space; {17120#(and (< 0 (div |downsweep_#in~space| 2)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)))) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|))))))} is VALID [2022-04-28 04:17:33,983 INFO L290 TraceCheckUtils]: 55: Hoare triple {17120#(and (< 0 (div |downsweep_#in~space| 2)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)))) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|))))))} assume !(~right~1 < ~n); {17120#(and (< 0 (div |downsweep_#in~space| 2)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)))) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|))))))} is VALID [2022-04-28 04:17:33,984 INFO L290 TraceCheckUtils]: 56: Hoare triple {17120#(and (< 0 (div |downsweep_#in~space| 2)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)))) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|))))))} ~space := (if ~space < 0 && 0 != ~space % 2 then 1 + ~space / 2 else ~space / 2); {17120#(and (< 0 (div |downsweep_#in~space| 2)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)))) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|))))))} is VALID [2022-04-28 04:17:33,985 INFO L290 TraceCheckUtils]: 57: Hoare triple {17120#(and (< 0 (div |downsweep_#in~space| 2)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)))) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|))))))} assume !(~space > 0); {17120#(and (< 0 (div |downsweep_#in~space| 2)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)))) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|))))))} is VALID [2022-04-28 04:17:33,985 INFO L290 TraceCheckUtils]: 58: Hoare triple {17120#(and (< 0 (div |downsweep_#in~space| 2)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)))) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|))))))} assume true; {17120#(and (< 0 (div |downsweep_#in~space| 2)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)))) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|))))))} is VALID [2022-04-28 04:17:33,988 INFO L284 TraceCheckUtils]: 59: Hoare quadruple {17120#(and (< 0 (div |downsweep_#in~space| 2)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|) (+ (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|)) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|)))) (+ (* (div |downsweep_#in~space| 2) 4) (- 4) |downsweep_#in~a.offset|) (select (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~n| 4) (- 4) |downsweep_#in~a.offset|) 0) (+ (- 4) (* 8 (div |downsweep_#in~space| 2)) |downsweep_#in~a.offset|))))))} {17105#(and (<= main_~n~0 2) (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (= 2 main_~space~1) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| main_~a~0.base) (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset))))) (<= main_~a~0.offset upsweep_~a.offset) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} #154#return; {17136#(and (<= main_~n~0 2) (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| main_~a~0.base) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ main_~a~0.offset (* main_~n~0 4) (- 4)) 0) (+ main_~a~0.offset 4) (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ main_~a~0.offset (* main_~n~0 4) (- 4)) 0) main_~a~0.offset) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ main_~a~0.offset (* main_~n~0 4) (- 4)) 0) (+ main_~a~0.offset 4)))) main_~a~0.offset (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ main_~a~0.offset (* main_~n~0 4) (- 4)) 0) (+ main_~a~0.offset 4)))) (<= main_~a~0.offset upsweep_~a.offset) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} is VALID [2022-04-28 04:17:33,991 INFO L272 TraceCheckUtils]: 60: Hoare triple {17136#(and (<= main_~n~0 2) (= (select ((as const (Array Int Int)) 0) main_~a~0.offset) (select (select |#memory_int| main_~a0~0.base) main_~a0~0.offset)) (= main_~a~0.offset 0) (exists ((upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| main_~a~0.base) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ main_~a~0.offset (* main_~n~0 4) (- 4)) 0) (+ main_~a~0.offset 4) (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ main_~a~0.offset (* main_~n~0 4) (- 4)) 0) main_~a~0.offset) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ main_~a~0.offset (* main_~n~0 4) (- 4)) 0) (+ main_~a~0.offset 4)))) main_~a~0.offset (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ main_~a~0.offset (* main_~n~0 4) (- 4)) 0) (+ main_~a~0.offset 4)))) (<= main_~a~0.offset upsweep_~a.offset) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (not (= main_~a~0.base main_~a0~0.base)) (= main_~a0~0.offset 0))} call check(~a0~0.base, ~a0~0.offset, ~a~0.base, ~a~0.offset, ~n~0); {17140#(and (= |check_#in~a.offset| 0) (not (= |check_#in~a0.base| |check_#in~a.base|)) (= |check_#in~a0.offset| 0) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| |check_#in~a0.base|) 0)) (exists ((v_main_~n~0_BEFORE_CALL_67 Int) (upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (= (select |#memory_int| |check_#in~a.base|) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= 0 v_upsweep_~left~0_60) (<= |check_#in~n| v_main_~n~0_BEFORE_CALL_67) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))))} is VALID [2022-04-28 04:17:33,993 INFO L290 TraceCheckUtils]: 61: Hoare triple {17140#(and (= |check_#in~a.offset| 0) (not (= |check_#in~a0.base| |check_#in~a.base|)) (= |check_#in~a0.offset| 0) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| |check_#in~a0.base|) 0)) (exists ((v_main_~n~0_BEFORE_CALL_67 Int) (upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (= (select |#memory_int| |check_#in~a.base|) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= 0 v_upsweep_~left~0_60) (<= |check_#in~n| v_main_~n~0_BEFORE_CALL_67) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))))} ~a0.base, ~a0.offset := #in~a0.base, #in~a0.offset;~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;havoc ~i~0;~sum~0 := 0;~i~0 := 0; {17144#(and (= check_~a0.offset 0) (not (= check_~a.base check_~a0.base)) (= check_~i~0 0) (exists ((v_main_~n~0_BEFORE_CALL_67 Int) (upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= check_~n v_main_~n~0_BEFORE_CALL_67) (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| check_~a.base) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| check_~a0.base) 0)) (= check_~sum~0 0) (= check_~a.offset 0))} is VALID [2022-04-28 04:17:33,995 INFO L290 TraceCheckUtils]: 62: Hoare triple {17144#(and (= check_~a0.offset 0) (not (= check_~a.base check_~a0.base)) (= check_~i~0 0) (exists ((v_main_~n~0_BEFORE_CALL_67 Int) (upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= check_~n v_main_~n~0_BEFORE_CALL_67) (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| check_~a.base) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| check_~a0.base) 0)) (= check_~sum~0 0) (= check_~a.offset 0))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {17144#(and (= check_~a0.offset 0) (not (= check_~a.base check_~a0.base)) (= check_~i~0 0) (exists ((v_main_~n~0_BEFORE_CALL_67 Int) (upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= check_~n v_main_~n~0_BEFORE_CALL_67) (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| check_~a.base) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| check_~a0.base) 0)) (= check_~sum~0 0) (= check_~a.offset 0))} is VALID [2022-04-28 04:17:35,999 WARN L272 TraceCheckUtils]: 63: Hoare triple {17144#(and (= check_~a0.offset 0) (not (= check_~a.base check_~a0.base)) (= check_~i~0 0) (exists ((v_main_~n~0_BEFORE_CALL_67 Int) (upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= check_~n v_main_~n~0_BEFORE_CALL_67) (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| check_~a.base) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| check_~a0.base) 0)) (= check_~sum~0 0) (= check_~a.offset 0))} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {17151#(exists ((v_check_~a0.base_BEFORE_CALL_2 Int) (upsweep_~a.offset Int) (v_main_~n~0_BEFORE_CALL_67 Int) (v_check_~a.base_BEFORE_CALL_2 Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (= (select |#memory_int| v_check_~a.base_BEFORE_CALL_2) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= 0 v_upsweep_~left~0_60) (not (= v_check_~a0.base_BEFORE_CALL_2 v_check_~a.base_BEFORE_CALL_2)) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| v_check_~a0.base_BEFORE_CALL_2) 0))))} is UNKNOWN [2022-04-28 04:17:38,008 WARN L290 TraceCheckUtils]: 64: Hoare triple {17151#(exists ((v_check_~a0.base_BEFORE_CALL_2 Int) (upsweep_~a.offset Int) (v_main_~n~0_BEFORE_CALL_67 Int) (v_check_~a.base_BEFORE_CALL_2 Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (= (select |#memory_int| v_check_~a.base_BEFORE_CALL_2) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= 0 v_upsweep_~left~0_60) (not (= v_check_~a0.base_BEFORE_CALL_2 v_check_~a.base_BEFORE_CALL_2)) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| v_check_~a0.base_BEFORE_CALL_2) 0))))} ~cond := #in~cond; {17151#(exists ((v_check_~a0.base_BEFORE_CALL_2 Int) (upsweep_~a.offset Int) (v_main_~n~0_BEFORE_CALL_67 Int) (v_check_~a.base_BEFORE_CALL_2 Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (= (select |#memory_int| v_check_~a.base_BEFORE_CALL_2) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= 0 v_upsweep_~left~0_60) (not (= v_check_~a0.base_BEFORE_CALL_2 v_check_~a.base_BEFORE_CALL_2)) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| v_check_~a0.base_BEFORE_CALL_2) 0))))} is UNKNOWN [2022-04-28 04:17:38,488 INFO L290 TraceCheckUtils]: 65: Hoare triple {17151#(exists ((v_check_~a0.base_BEFORE_CALL_2 Int) (upsweep_~a.offset Int) (v_main_~n~0_BEFORE_CALL_67 Int) (v_check_~a.base_BEFORE_CALL_2 Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (= (select |#memory_int| v_check_~a.base_BEFORE_CALL_2) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= 0 v_upsweep_~left~0_60) (not (= v_check_~a0.base_BEFORE_CALL_2 v_check_~a.base_BEFORE_CALL_2)) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| v_check_~a0.base_BEFORE_CALL_2) 0))))} assume !(0 == ~cond); {17151#(exists ((v_check_~a0.base_BEFORE_CALL_2 Int) (upsweep_~a.offset Int) (v_main_~n~0_BEFORE_CALL_67 Int) (v_check_~a.base_BEFORE_CALL_2 Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (= (select |#memory_int| v_check_~a.base_BEFORE_CALL_2) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= 0 v_upsweep_~left~0_60) (not (= v_check_~a0.base_BEFORE_CALL_2 v_check_~a.base_BEFORE_CALL_2)) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| v_check_~a0.base_BEFORE_CALL_2) 0))))} is VALID [2022-04-28 04:17:40,496 WARN L290 TraceCheckUtils]: 66: Hoare triple {17151#(exists ((v_check_~a0.base_BEFORE_CALL_2 Int) (upsweep_~a.offset Int) (v_main_~n~0_BEFORE_CALL_67 Int) (v_check_~a.base_BEFORE_CALL_2 Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (= (select |#memory_int| v_check_~a.base_BEFORE_CALL_2) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= 0 v_upsweep_~left~0_60) (not (= v_check_~a0.base_BEFORE_CALL_2 v_check_~a.base_BEFORE_CALL_2)) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| v_check_~a0.base_BEFORE_CALL_2) 0))))} assume true; {17151#(exists ((v_check_~a0.base_BEFORE_CALL_2 Int) (upsweep_~a.offset Int) (v_main_~n~0_BEFORE_CALL_67 Int) (v_check_~a.base_BEFORE_CALL_2 Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (= (select |#memory_int| v_check_~a.base_BEFORE_CALL_2) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= 0 v_upsweep_~left~0_60) (not (= v_check_~a0.base_BEFORE_CALL_2 v_check_~a.base_BEFORE_CALL_2)) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| v_check_~a0.base_BEFORE_CALL_2) 0))))} is UNKNOWN [2022-04-28 04:17:40,497 INFO L284 TraceCheckUtils]: 67: Hoare quadruple {17151#(exists ((v_check_~a0.base_BEFORE_CALL_2 Int) (upsweep_~a.offset Int) (v_main_~n~0_BEFORE_CALL_67 Int) (v_check_~a.base_BEFORE_CALL_2 Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (= (select |#memory_int| v_check_~a.base_BEFORE_CALL_2) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= 0 v_upsweep_~left~0_60) (not (= v_check_~a0.base_BEFORE_CALL_2 v_check_~a.base_BEFORE_CALL_2)) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| v_check_~a0.base_BEFORE_CALL_2) 0))))} {17144#(and (= check_~a0.offset 0) (not (= check_~a.base check_~a0.base)) (= check_~i~0 0) (exists ((v_main_~n~0_BEFORE_CALL_67 Int) (upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= check_~n v_main_~n~0_BEFORE_CALL_67) (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| check_~a.base) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| check_~a0.base) 0)) (= check_~sum~0 0) (= check_~a.offset 0))} #158#return; {17144#(and (= check_~a0.offset 0) (not (= check_~a.base check_~a0.base)) (= check_~i~0 0) (exists ((v_main_~n~0_BEFORE_CALL_67 Int) (upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= check_~n v_main_~n~0_BEFORE_CALL_67) (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| check_~a.base) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| check_~a0.base) 0)) (= check_~sum~0 0) (= check_~a.offset 0))} is VALID [2022-04-28 04:17:40,501 INFO L290 TraceCheckUtils]: 68: Hoare triple {17144#(and (= check_~a0.offset 0) (not (= check_~a.base check_~a0.base)) (= check_~i~0 0) (exists ((v_main_~n~0_BEFORE_CALL_67 Int) (upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= check_~n v_main_~n~0_BEFORE_CALL_67) (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| check_~a.base) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| check_~a0.base) 0)) (= check_~sum~0 0) (= check_~a.offset 0))} havoc #t~mem11;call #t~mem12 := read~int(~a0.base, ~a0.offset + 4 * ~i~0, 4);~sum~0 := ~sum~0 + #t~mem12;havoc #t~mem12; {17167#(and (= check_~i~0 0) (exists ((check_~a0.base Int)) (and (not (= check_~a.base check_~a0.base)) (= (+ (* (- 1) (select (select |#memory_int| check_~a0.base) (* check_~i~0 4))) check_~sum~0) 0) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| check_~a0.base) 0)))) (exists ((v_main_~n~0_BEFORE_CALL_67 Int) (upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= check_~n v_main_~n~0_BEFORE_CALL_67) (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| check_~a.base) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= check_~a.offset 0))} is VALID [2022-04-28 04:17:40,504 INFO L290 TraceCheckUtils]: 69: Hoare triple {17167#(and (= check_~i~0 0) (exists ((check_~a0.base Int)) (and (not (= check_~a.base check_~a0.base)) (= (+ (* (- 1) (select (select |#memory_int| check_~a0.base) (* check_~i~0 4))) check_~sum~0) 0) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| check_~a0.base) 0)))) (exists ((v_main_~n~0_BEFORE_CALL_67 Int) (upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= check_~n v_main_~n~0_BEFORE_CALL_67) (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| check_~a.base) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= check_~a.offset 0))} #t~post10 := ~i~0;~i~0 := 1 + #t~post10;havoc #t~post10; {17171#(and (exists ((check_~a0.base Int)) (and (not (= check_~a.base check_~a0.base)) (= (+ (* (- 1) (select (select |#memory_int| check_~a0.base) (+ (* check_~i~0 4) (- 4)))) check_~sum~0) 0) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| check_~a0.base) 0)))) (= (+ (- 1) check_~i~0) 0) (exists ((v_main_~n~0_BEFORE_CALL_67 Int) (upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= check_~n v_main_~n~0_BEFORE_CALL_67) (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| check_~a.base) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= check_~a.offset 0))} is VALID [2022-04-28 04:17:40,505 INFO L290 TraceCheckUtils]: 70: Hoare triple {17171#(and (exists ((check_~a0.base Int)) (and (not (= check_~a.base check_~a0.base)) (= (+ (* (- 1) (select (select |#memory_int| check_~a0.base) (+ (* check_~i~0 4) (- 4)))) check_~sum~0) 0) (= (select ((as const (Array Int Int)) 0) 0) (select (select |#memory_int| check_~a0.base) 0)))) (= (+ (- 1) check_~i~0) 0) (exists ((v_main_~n~0_BEFORE_CALL_67 Int) (upsweep_~a.offset Int) (v_upsweep_~left~0_60 Int) (upsweep_~right~0 Int)) (and (<= v_main_~n~0_BEFORE_CALL_67 2) (<= 0 upsweep_~a.offset) (<= check_~n v_main_~n~0_BEFORE_CALL_67) (<= 0 v_upsweep_~left~0_60) (= (select |#memory_int| check_~a.base) (store (store (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4 (+ (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4) (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 0))) 0 (select (store (store ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset) (+ (select ((as const (Array Int Int)) 0) (+ (* upsweep_~right~0 4) upsweep_~a.offset)) (select ((as const (Array Int Int)) 0) (+ (* v_upsweep_~left~0_60 4) upsweep_~a.offset)))) (+ (* v_main_~n~0_BEFORE_CALL_67 4) (- 4)) 0) 4))) (<= (+ v_upsweep_~left~0_60 1) upsweep_~right~0))) (= check_~a.offset 0))} assume !!(~i~0 < ~n);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~i~0, 4); {16924#(and (= |check_#t~mem11| check_~sum~0) (= check_~sum~0 0))} is VALID [2022-04-28 04:17:40,505 INFO L272 TraceCheckUtils]: 71: Hoare triple {16924#(and (= |check_#t~mem11| check_~sum~0) (= check_~sum~0 0))} call __VERIFIER_assert((if ~sum~0 == #t~mem11 then 1 else 0)); {17178#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-28 04:17:40,506 INFO L290 TraceCheckUtils]: 72: Hoare triple {17178#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {17182#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:17:40,506 INFO L290 TraceCheckUtils]: 73: Hoare triple {17182#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {16863#false} is VALID [2022-04-28 04:17:40,506 INFO L290 TraceCheckUtils]: 74: Hoare triple {16863#false} assume !false; {16863#false} is VALID [2022-04-28 04:17:40,507 INFO L134 CoverageAnalysis]: Checked inductivity of 20 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 7 trivial. 4 not checked. [2022-04-28 04:17:40,507 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:18:14,369 WARN L804 TransFormulaUtils]: predicate-based correctness check returned UNKNOWN, hence correctness of interprocedural sequential composition was not checked. [2022-04-28 04:18:16,929 WARN L833 $PredicateComparison]: unable to prove that (forall ((main_~n~0 Int)) (or (< 2 main_~n~0) (<= main_~n~0 1) (forall ((v_upsweep_~a.offset_43 Int) (v_upsweep_~right~0_40 Int) (v_upsweep_~left~0_66 Int)) (or (let ((.cse1 (store (let ((.cse5 (+ v_upsweep_~a.offset_43 (* v_upsweep_~right~0_40 4))) (.cse4 (select |c_#memory_int| c_main_~a~0.base))) (store .cse4 .cse5 (+ (select .cse4 .cse5) (select .cse4 (+ v_upsweep_~a.offset_43 (* v_upsweep_~left~0_66 4)))))) (+ c_main_~a~0.offset (* main_~n~0 4) (- 4)) 0)) (.cse2 (+ c_main_~a~0.offset 4))) (let ((.cse3 (select .cse1 .cse2))) (let ((.cse0 (+ .cse3 (select .cse1 c_main_~a~0.offset)))) (= .cse0 (select (select (store |c_#memory_int| c_main_~a~0.base (store (store .cse1 .cse2 .cse0) c_main_~a~0.offset .cse3)) c_main_~a0~0.base) c_main_~a0~0.offset))))) (< v_upsweep_~a.offset_43 c_main_~a~0.offset) (not (<= 0 v_upsweep_~left~0_66)) (not (<= (+ v_upsweep_~left~0_66 1) v_upsweep_~right~0_40)))))) is different from false [2022-04-28 04:18:16,934 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2095565254] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 04:18:16,934 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:18:16,934 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [35, 31] total 58 [2022-04-28 04:18:16,934 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:18:16,934 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [662893584] [2022-04-28 04:18:16,934 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [662893584] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:18:16,934 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:18:16,934 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [35] imperfect sequences [] total 35 [2022-04-28 04:18:16,934 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1157213346] [2022-04-28 04:18:16,935 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:18:16,935 INFO L78 Accepts]: Start accepts. Automaton has has 35 states, 30 states have (on average 1.7) internal successors, (51), 28 states have internal predecessors, (51), 8 states have call successors, (12), 5 states have call predecessors, (12), 5 states have return successors, (9), 6 states have call predecessors, (9), 6 states have call successors, (9) Word has length 75 [2022-04-28 04:18:16,935 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:18:16,935 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 35 states, 30 states have (on average 1.7) internal successors, (51), 28 states have internal predecessors, (51), 8 states have call successors, (12), 5 states have call predecessors, (12), 5 states have return successors, (9), 6 states have call predecessors, (9), 6 states have call successors, (9) [2022-04-28 04:18:17,005 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 72 edges. 72 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:18:17,005 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 35 states [2022-04-28 04:18:17,005 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:18:17,005 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 35 interpolants. [2022-04-28 04:18:17,006 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=262, Invalid=4289, Unknown=17, NotChecked=402, Total=4970 [2022-04-28 04:18:17,006 INFO L87 Difference]: Start difference. First operand 132 states and 162 transitions. Second operand has 35 states, 30 states have (on average 1.7) internal successors, (51), 28 states have internal predecessors, (51), 8 states have call successors, (12), 5 states have call predecessors, (12), 5 states have return successors, (9), 6 states have call predecessors, (9), 6 states have call successors, (9) [2022-04-28 04:18:21,852 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:18:26,138 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:18:30,419 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:18:34,689 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:18:38,970 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:18:43,274 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:18:45,388 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.11s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:18:49,633 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:18:51,770 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.14s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:18:53,912 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:18:58,204 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:19:00,356 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.15s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:19:02,492 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.14s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:19:04,633 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.14s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:19:06,774 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:19:11,089 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Array, Bool, Int], hasArrays=true, hasNonlinArith=false, quantifiers [] [2022-04-28 04:19:20,131 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:19:20,131 INFO L93 Difference]: Finished difference Result 164 states and 199 transitions. [2022-04-28 04:19:20,131 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 38 states. [2022-04-28 04:19:20,132 INFO L78 Accepts]: Start accepts. Automaton has has 35 states, 30 states have (on average 1.7) internal successors, (51), 28 states have internal predecessors, (51), 8 states have call successors, (12), 5 states have call predecessors, (12), 5 states have return successors, (9), 6 states have call predecessors, (9), 6 states have call successors, (9) Word has length 75 [2022-04-28 04:19:20,132 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:19:20,132 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 35 states, 30 states have (on average 1.7) internal successors, (51), 28 states have internal predecessors, (51), 8 states have call successors, (12), 5 states have call predecessors, (12), 5 states have return successors, (9), 6 states have call predecessors, (9), 6 states have call successors, (9) [2022-04-28 04:19:20,133 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 38 states to 38 states and 128 transitions. [2022-04-28 04:19:20,133 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 35 states, 30 states have (on average 1.7) internal successors, (51), 28 states have internal predecessors, (51), 8 states have call successors, (12), 5 states have call predecessors, (12), 5 states have return successors, (9), 6 states have call predecessors, (9), 6 states have call successors, (9) [2022-04-28 04:19:20,134 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 38 states to 38 states and 128 transitions. [2022-04-28 04:19:20,135 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 38 states and 128 transitions. [2022-04-28 04:19:20,325 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 128 edges. 128 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:19:20,327 INFO L225 Difference]: With dead ends: 164 [2022-04-28 04:19:20,327 INFO L226 Difference]: Without dead ends: 162 [2022-04-28 04:19:20,330 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 183 GetRequests, 74 SyntacticMatches, 6 SemanticMatches, 103 ConstructedPredicates, 3 IntricatePredicates, 0 DeprecatedPredicates, 2446 ImplicationChecksByTransitivity, 54.1s TimeCoverageRelationStatistics Valid=641, Invalid=9656, Unknown=17, NotChecked=606, Total=10920 [2022-04-28 04:19:20,330 INFO L413 NwaCegarLoop]: 37 mSDtfsCounter, 132 mSDsluCounter, 34 mSDsCounter, 0 mSdLazyCounter, 2009 mSolverCounterSat, 145 mSolverCounterUnsat, 16 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 35.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 132 SdHoareTripleChecker+Valid, 71 SdHoareTripleChecker+Invalid, 2170 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 145 IncrementalHoareTripleChecker+Valid, 2009 IncrementalHoareTripleChecker+Invalid, 16 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 36.8s IncrementalHoareTripleChecker+Time [2022-04-28 04:19:20,330 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [132 Valid, 71 Invalid, 2170 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [145 Valid, 2009 Invalid, 16 Unknown, 0 Unchecked, 36.8s Time] [2022-04-28 04:19:20,331 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 162 states. [2022-04-28 04:19:20,802 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 162 to 144. [2022-04-28 04:19:20,802 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:19:20,803 INFO L82 GeneralOperation]: Start isEquivalent. First operand 162 states. Second operand has 144 states, 107 states have (on average 1.2149532710280373) internal successors, (130), 112 states have internal predecessors, (130), 22 states have call successors, (22), 13 states have call predecessors, (22), 14 states have return successors, (23), 18 states have call predecessors, (23), 18 states have call successors, (23) [2022-04-28 04:19:20,803 INFO L74 IsIncluded]: Start isIncluded. First operand 162 states. Second operand has 144 states, 107 states have (on average 1.2149532710280373) internal successors, (130), 112 states have internal predecessors, (130), 22 states have call successors, (22), 13 states have call predecessors, (22), 14 states have return successors, (23), 18 states have call predecessors, (23), 18 states have call successors, (23) [2022-04-28 04:19:20,803 INFO L87 Difference]: Start difference. First operand 162 states. Second operand has 144 states, 107 states have (on average 1.2149532710280373) internal successors, (130), 112 states have internal predecessors, (130), 22 states have call successors, (22), 13 states have call predecessors, (22), 14 states have return successors, (23), 18 states have call predecessors, (23), 18 states have call successors, (23) [2022-04-28 04:19:20,805 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:19:20,805 INFO L93 Difference]: Finished difference Result 162 states and 197 transitions. [2022-04-28 04:19:20,805 INFO L276 IsEmpty]: Start isEmpty. Operand 162 states and 197 transitions. [2022-04-28 04:19:20,806 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:19:20,806 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:19:20,806 INFO L74 IsIncluded]: Start isIncluded. First operand has 144 states, 107 states have (on average 1.2149532710280373) internal successors, (130), 112 states have internal predecessors, (130), 22 states have call successors, (22), 13 states have call predecessors, (22), 14 states have return successors, (23), 18 states have call predecessors, (23), 18 states have call successors, (23) Second operand 162 states. [2022-04-28 04:19:20,806 INFO L87 Difference]: Start difference. First operand has 144 states, 107 states have (on average 1.2149532710280373) internal successors, (130), 112 states have internal predecessors, (130), 22 states have call successors, (22), 13 states have call predecessors, (22), 14 states have return successors, (23), 18 states have call predecessors, (23), 18 states have call successors, (23) Second operand 162 states. [2022-04-28 04:19:20,808 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:19:20,808 INFO L93 Difference]: Finished difference Result 162 states and 197 transitions. [2022-04-28 04:19:20,808 INFO L276 IsEmpty]: Start isEmpty. Operand 162 states and 197 transitions. [2022-04-28 04:19:20,808 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:19:20,809 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:19:20,809 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:19:20,809 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:19:20,809 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 144 states, 107 states have (on average 1.2149532710280373) internal successors, (130), 112 states have internal predecessors, (130), 22 states have call successors, (22), 13 states have call predecessors, (22), 14 states have return successors, (23), 18 states have call predecessors, (23), 18 states have call successors, (23) [2022-04-28 04:19:20,811 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 144 states to 144 states and 175 transitions. [2022-04-28 04:19:20,811 INFO L78 Accepts]: Start accepts. Automaton has 144 states and 175 transitions. Word has length 75 [2022-04-28 04:19:20,811 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:19:20,811 INFO L495 AbstractCegarLoop]: Abstraction has 144 states and 175 transitions. [2022-04-28 04:19:20,811 INFO L496 AbstractCegarLoop]: INTERPOLANT automaton has has 35 states, 30 states have (on average 1.7) internal successors, (51), 28 states have internal predecessors, (51), 8 states have call successors, (12), 5 states have call predecessors, (12), 5 states have return successors, (9), 6 states have call predecessors, (9), 6 states have call successors, (9) [2022-04-28 04:19:20,811 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 144 states and 175 transitions. [2022-04-28 04:19:21,257 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 175 edges. 175 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:19:21,257 INFO L276 IsEmpty]: Start isEmpty. Operand 144 states and 175 transitions. [2022-04-28 04:19:21,257 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 77 [2022-04-28 04:19:21,258 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:19:21,258 INFO L195 NwaCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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] [2022-04-28 04:19:21,274 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (17)] Forceful destruction successful, exit code 0 [2022-04-28 04:19:21,471 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 17 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable17 [2022-04-28 04:19:21,471 INFO L420 AbstractCegarLoop]: === Iteration 19 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:19:21,472 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:19:21,472 INFO L85 PathProgramCache]: Analyzing trace with hash 1496849804, now seen corresponding path program 13 times [2022-04-28 04:19:21,472 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:19:21,472 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [2128047075] [2022-04-28 04:19:21,472 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:19:21,472 INFO L85 PathProgramCache]: Analyzing trace with hash 1496849804, now seen corresponding path program 14 times [2022-04-28 04:19:21,472 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:19:21,472 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1729578261] [2022-04-28 04:19:21,473 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:19:21,473 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:19:21,500 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:19:23,094 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:19:23,096 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:19:23,106 INFO L290 TraceCheckUtils]: 0: Hoare triple {18353#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(17, 2);call #Ultimate.allocInit(12, 3); {18288#true} is VALID [2022-04-28 04:19:23,106 INFO L290 TraceCheckUtils]: 1: Hoare triple {18288#true} assume true; {18288#true} is VALID [2022-04-28 04:19:23,106 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {18288#true} {18288#true} #160#return; {18288#true} is VALID [2022-04-28 04:19:23,106 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:19:23,107 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:19:23,111 INFO L290 TraceCheckUtils]: 0: Hoare triple {18288#true} ~cond := #in~cond; {18288#true} is VALID [2022-04-28 04:19:23,111 INFO L290 TraceCheckUtils]: 1: Hoare triple {18288#true} assume !(0 == ~cond); {18288#true} is VALID [2022-04-28 04:19:23,111 INFO L290 TraceCheckUtils]: 2: Hoare triple {18288#true} assume true; {18288#true} is VALID [2022-04-28 04:19:23,111 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {18288#true} {18288#true} #142#return; {18288#true} is VALID [2022-04-28 04:19:23,111 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 04:19:23,112 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:19:23,114 INFO L290 TraceCheckUtils]: 0: Hoare triple {18288#true} ~x := #in~x; {18288#true} is VALID [2022-04-28 04:19:23,114 INFO L290 TraceCheckUtils]: 1: Hoare triple {18288#true} assume !(0 == (if ~x % 4294967296 < 0 && 0 != ~x % 4294967296 % 2 then ~x % 4294967296 % 2 - 2 else ~x % 4294967296 % 2) % 4294967296 && ~x % 4294967296 > 1); {18288#true} is VALID [2022-04-28 04:19:23,114 INFO L290 TraceCheckUtils]: 2: Hoare triple {18288#true} #res := (if 1 == ~x % 4294967296 then 1 else 0); {18288#true} is VALID [2022-04-28 04:19:23,114 INFO L290 TraceCheckUtils]: 3: Hoare triple {18288#true} assume true; {18288#true} is VALID [2022-04-28 04:19:23,114 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {18288#true} {18288#true} #144#return; {18288#true} is VALID [2022-04-28 04:19:23,114 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-04-28 04:19:23,114 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:19:23,116 INFO L290 TraceCheckUtils]: 0: Hoare triple {18288#true} ~cond := #in~cond; {18288#true} is VALID [2022-04-28 04:19:23,116 INFO L290 TraceCheckUtils]: 1: Hoare triple {18288#true} assume !(0 == ~cond); {18288#true} is VALID [2022-04-28 04:19:23,116 INFO L290 TraceCheckUtils]: 2: Hoare triple {18288#true} assume true; {18288#true} is VALID [2022-04-28 04:19:23,116 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {18288#true} {18288#true} #146#return; {18288#true} is VALID [2022-04-28 04:19:23,142 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 24 [2022-04-28 04:19:23,144 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:19:23,190 INFO L290 TraceCheckUtils]: 0: Hoare triple {18354#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {18355#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-28 04:19:23,191 INFO L290 TraceCheckUtils]: 1: Hoare triple {18355#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} assume true; {18355#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-28 04:19:23,192 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {18355#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} {18306#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0))} #148#return; {18310#(and (= (select |#valid| |main_#t~malloc15.base|) 1) (= |main_#t~malloc15.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc15.base|)))} is VALID [2022-04-28 04:19:23,192 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-04-28 04:19:23,193 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:19:23,234 INFO L290 TraceCheckUtils]: 0: Hoare triple {18354#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {18356#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-04-28 04:19:23,234 INFO L290 TraceCheckUtils]: 1: Hoare triple {18356#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} assume true; {18356#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-04-28 04:19:23,235 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {18356#(= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} {18311#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} #150#return; {18311#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (not (= |main_#t~malloc16.base| main_~a~0.base)))} is VALID [2022-04-28 04:19:23,236 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 41 [2022-04-28 04:19:23,246 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:19:24,958 INFO L290 TraceCheckUtils]: 0: Hoare triple {18354#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~space~0 := 1; {18357#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base) (= |upsweep_#in~a.offset| upsweep_~a.offset) (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0))} is VALID [2022-04-28 04:19:24,964 INFO L290 TraceCheckUtils]: 1: Hoare triple {18357#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base) (= |upsweep_#in~a.offset| upsweep_~a.offset) (<= upsweep_~space~0 1) (<= 1 upsweep_~space~0))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {18358#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base) (or (and (<= upsweep_~space~0 (+ upsweep_~left~0 1)) (= |upsweep_#in~a.offset| upsweep_~a.offset) (<= (+ upsweep_~left~0 upsweep_~space~0) 1) (<= 3 (+ upsweep_~left~0 (* 3 upsweep_~space~0)))) (not (= (select (select |#memory_int| upsweep_~a.base) (+ (* upsweep_~left~0 4) upsweep_~a.offset)) 0))))} is VALID [2022-04-28 04:19:24,965 INFO L290 TraceCheckUtils]: 2: Hoare triple {18358#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base) (or (and (<= upsweep_~space~0 (+ upsweep_~left~0 1)) (= |upsweep_#in~a.offset| upsweep_~a.offset) (<= (+ upsweep_~left~0 upsweep_~space~0) 1) (<= 3 (+ upsweep_~left~0 (* 3 upsweep_~space~0)))) (not (= (select (select |#memory_int| upsweep_~a.base) (+ (* upsweep_~left~0 4) upsweep_~a.offset)) 0))))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {18359#(or (and (or (and (= (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (<= (+ upsweep_~left~0 1) (* 3 upsweep_~space~0)) (= (+ (* upsweep_~space~0 8) upsweep_~a.offset) 8) (= |upsweep_#in~a.base| upsweep_~a.base)) (<= (+ upsweep_~a.offset 1) 0) (<= 1 upsweep_~a.offset)) (<= (+ upsweep_~space~0 1) upsweep_~left~0) (= |upsweep_#in~a.offset| upsweep_~a.offset)) (and (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| upsweep_~a.base))) (= |upsweep_#in~a.base| upsweep_~a.base)))} is VALID [2022-04-28 04:19:24,967 INFO L290 TraceCheckUtils]: 3: Hoare triple {18359#(or (and (or (and (= (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (<= (+ upsweep_~left~0 1) (* 3 upsweep_~space~0)) (= (+ (* upsweep_~space~0 8) upsweep_~a.offset) 8) (= |upsweep_#in~a.base| upsweep_~a.base)) (<= (+ upsweep_~a.offset 1) 0) (<= 1 upsweep_~a.offset)) (<= (+ upsweep_~space~0 1) upsweep_~left~0) (= |upsweep_#in~a.offset| upsweep_~a.offset)) (and (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| upsweep_~a.base))) (= |upsweep_#in~a.base| upsweep_~a.base)))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {18360#(or (and (= |upsweep_#in~a.offset| upsweep_~a.offset) (or (and (= (store (select |old(#memory_int)| upsweep_~a.base) (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (select (select |#memory_int| upsweep_~a.base) (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)))) (select |#memory_int| upsweep_~a.base)) (or (= (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (= (+ (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) 4) (+ (* 16 upsweep_~space~0) upsweep_~a.offset))) (= (+ (* upsweep_~space~0 8) upsweep_~a.offset) 8) (= |upsweep_#in~a.base| upsweep_~a.base)) (<= (+ upsweep_~a.offset 1) 0) (<= 1 upsweep_~a.offset))) (and (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| upsweep_~a.base))) (= |upsweep_#in~a.base| upsweep_~a.base)))} is VALID [2022-04-28 04:19:24,968 INFO L290 TraceCheckUtils]: 4: Hoare triple {18360#(or (and (= |upsweep_#in~a.offset| upsweep_~a.offset) (or (and (= (store (select |old(#memory_int)| upsweep_~a.base) (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (select (select |#memory_int| upsweep_~a.base) (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)))) (select |#memory_int| upsweep_~a.base)) (or (= (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (= (+ (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) 4) (+ (* 16 upsweep_~space~0) upsweep_~a.offset))) (= (+ (* upsweep_~space~0 8) upsweep_~a.offset) 8) (= |upsweep_#in~a.base| upsweep_~a.base)) (<= (+ upsweep_~a.offset 1) 0) (<= 1 upsweep_~a.offset))) (and (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| upsweep_~a.base))) (= |upsweep_#in~a.base| upsweep_~a.base)))} assume !(~left~0 < ~n); {18360#(or (and (= |upsweep_#in~a.offset| upsweep_~a.offset) (or (and (= (store (select |old(#memory_int)| upsweep_~a.base) (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (select (select |#memory_int| upsweep_~a.base) (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)))) (select |#memory_int| upsweep_~a.base)) (or (= (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (= (+ (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) 4) (+ (* 16 upsweep_~space~0) upsweep_~a.offset))) (= (+ (* upsweep_~space~0 8) upsweep_~a.offset) 8) (= |upsweep_#in~a.base| upsweep_~a.base)) (<= (+ upsweep_~a.offset 1) 0) (<= 1 upsweep_~a.offset))) (and (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| upsweep_~a.base))) (= |upsweep_#in~a.base| upsweep_~a.base)))} is VALID [2022-04-28 04:19:24,969 INFO L290 TraceCheckUtils]: 5: Hoare triple {18360#(or (and (= |upsweep_#in~a.offset| upsweep_~a.offset) (or (and (= (store (select |old(#memory_int)| upsweep_~a.base) (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (select (select |#memory_int| upsweep_~a.base) (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)))) (select |#memory_int| upsweep_~a.base)) (or (= (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (= (+ (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) 4) (+ (* 16 upsweep_~space~0) upsweep_~a.offset))) (= (+ (* upsweep_~space~0 8) upsweep_~a.offset) 8) (= |upsweep_#in~a.base| upsweep_~a.base)) (<= (+ upsweep_~a.offset 1) 0) (<= 1 upsweep_~a.offset))) (and (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| upsweep_~a.base))) (= |upsweep_#in~a.base| upsweep_~a.base)))} ~space~0 := 2 * ~space~0; {18361#(or (and (or (and (= (store (select |old(#memory_int)| upsweep_~a.base) (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (select (select |#memory_int| upsweep_~a.base) (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)))) (select |#memory_int| upsweep_~a.base)) (or (= (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (= (+ (* upsweep_~space~0 8) upsweep_~a.offset) (+ (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) 4))) (= |upsweep_#in~a.base| upsweep_~a.base) (= 8 (+ upsweep_~a.offset (* upsweep_~space~0 4)))) (<= (+ upsweep_~a.offset 1) 0) (<= 1 upsweep_~a.offset)) (= |upsweep_#in~a.offset| upsweep_~a.offset)) (and (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| upsweep_~a.base))) (= |upsweep_#in~a.base| upsweep_~a.base)))} is VALID [2022-04-28 04:19:24,970 INFO L290 TraceCheckUtils]: 6: Hoare triple {18361#(or (and (or (and (= (store (select |old(#memory_int)| upsweep_~a.base) (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (select (select |#memory_int| upsweep_~a.base) (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)))) (select |#memory_int| upsweep_~a.base)) (or (= (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (= (+ (* upsweep_~space~0 8) upsweep_~a.offset) (+ (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) 4))) (= |upsweep_#in~a.base| upsweep_~a.base) (= 8 (+ upsweep_~a.offset (* upsweep_~space~0 4)))) (<= (+ upsweep_~a.offset 1) 0) (<= 1 upsweep_~a.offset)) (= |upsweep_#in~a.offset| upsweep_~a.offset)) (and (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| upsweep_~a.base))) (= |upsweep_#in~a.base| upsweep_~a.base)))} assume !!(~space~0 < ~n);~left~0 := ~space~0 - 1; {18362#(or (and (= |upsweep_#in~a.offset| upsweep_~a.offset) (or (<= (+ upsweep_~a.offset 1) 0) (and (= (store (select |old(#memory_int)| upsweep_~a.base) (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (select (select |#memory_int| upsweep_~a.base) (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)))) (select |#memory_int| upsweep_~a.base)) (or (= (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (= (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (+ (* upsweep_~left~0 4) upsweep_~a.offset (* upsweep_~space~0 4)))) (= (+ (* upsweep_~left~0 4) upsweep_~a.offset) 4) (= |upsweep_#in~a.base| upsweep_~a.base) (<= 2 upsweep_~space~0)) (<= 1 upsweep_~a.offset))) (and (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| upsweep_~a.base))) (= |upsweep_#in~a.base| upsweep_~a.base)))} is VALID [2022-04-28 04:19:24,973 INFO L290 TraceCheckUtils]: 7: Hoare triple {18362#(or (and (= |upsweep_#in~a.offset| upsweep_~a.offset) (or (<= (+ upsweep_~a.offset 1) 0) (and (= (store (select |old(#memory_int)| upsweep_~a.base) (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (select (select |#memory_int| upsweep_~a.base) (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)))) (select |#memory_int| upsweep_~a.base)) (or (= (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (= (@diff (select |old(#memory_int)| upsweep_~a.base) (select |#memory_int| upsweep_~a.base)) (+ (* upsweep_~left~0 4) upsweep_~a.offset (* upsweep_~space~0 4)))) (= (+ (* upsweep_~left~0 4) upsweep_~a.offset) 4) (= |upsweep_#in~a.base| upsweep_~a.base) (<= 2 upsweep_~space~0)) (<= 1 upsweep_~a.offset))) (and (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| upsweep_~a.base))) (= |upsweep_#in~a.base| upsweep_~a.base)))} assume !!(~left~0 < ~n);~right~0 := ~left~0 + ~space~0;call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left~0, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right~0, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right~0, 4);havoc #t~mem5;havoc #t~mem6;~left~0 := ~left~0 + 2 * ~space~0; {18363#(or (and (or (= (select |#memory_int| |upsweep_#in~a.base|) (select |old(#memory_int)| |upsweep_#in~a.base|)) (<= (+ |upsweep_#in~a.offset| 12) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))) (= (select |#memory_int| |upsweep_#in~a.base|) (store (select |old(#memory_int)| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)) (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))))) (<= (+ |upsweep_#in~a.offset| 1) 0) (<= 1 |upsweep_#in~a.offset|) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:19:24,974 INFO L290 TraceCheckUtils]: 8: Hoare triple {18363#(or (and (or (= (select |#memory_int| |upsweep_#in~a.base|) (select |old(#memory_int)| |upsweep_#in~a.base|)) (<= (+ |upsweep_#in~a.offset| 12) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))) (= (select |#memory_int| |upsweep_#in~a.base|) (store (select |old(#memory_int)| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)) (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))))) (<= (+ |upsweep_#in~a.offset| 1) 0) (<= 1 |upsweep_#in~a.offset|) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} assume !(~left~0 < ~n); {18363#(or (and (or (= (select |#memory_int| |upsweep_#in~a.base|) (select |old(#memory_int)| |upsweep_#in~a.base|)) (<= (+ |upsweep_#in~a.offset| 12) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))) (= (select |#memory_int| |upsweep_#in~a.base|) (store (select |old(#memory_int)| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)) (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))))) (<= (+ |upsweep_#in~a.offset| 1) 0) (<= 1 |upsweep_#in~a.offset|) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:19:24,975 INFO L290 TraceCheckUtils]: 9: Hoare triple {18363#(or (and (or (= (select |#memory_int| |upsweep_#in~a.base|) (select |old(#memory_int)| |upsweep_#in~a.base|)) (<= (+ |upsweep_#in~a.offset| 12) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))) (= (select |#memory_int| |upsweep_#in~a.base|) (store (select |old(#memory_int)| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)) (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))))) (<= (+ |upsweep_#in~a.offset| 1) 0) (<= 1 |upsweep_#in~a.offset|) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} ~space~0 := 2 * ~space~0; {18363#(or (and (or (= (select |#memory_int| |upsweep_#in~a.base|) (select |old(#memory_int)| |upsweep_#in~a.base|)) (<= (+ |upsweep_#in~a.offset| 12) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))) (= (select |#memory_int| |upsweep_#in~a.base|) (store (select |old(#memory_int)| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)) (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))))) (<= (+ |upsweep_#in~a.offset| 1) 0) (<= 1 |upsweep_#in~a.offset|) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:19:24,976 INFO L290 TraceCheckUtils]: 10: Hoare triple {18363#(or (and (or (= (select |#memory_int| |upsweep_#in~a.base|) (select |old(#memory_int)| |upsweep_#in~a.base|)) (<= (+ |upsweep_#in~a.offset| 12) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))) (= (select |#memory_int| |upsweep_#in~a.base|) (store (select |old(#memory_int)| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)) (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))))) (<= (+ |upsweep_#in~a.offset| 1) 0) (<= 1 |upsweep_#in~a.offset|) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} assume !(~space~0 < ~n); {18363#(or (and (or (= (select |#memory_int| |upsweep_#in~a.base|) (select |old(#memory_int)| |upsweep_#in~a.base|)) (<= (+ |upsweep_#in~a.offset| 12) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))) (= (select |#memory_int| |upsweep_#in~a.base|) (store (select |old(#memory_int)| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)) (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))))) (<= (+ |upsweep_#in~a.offset| 1) 0) (<= 1 |upsweep_#in~a.offset|) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:19:24,976 INFO L290 TraceCheckUtils]: 11: Hoare triple {18363#(or (and (or (= (select |#memory_int| |upsweep_#in~a.base|) (select |old(#memory_int)| |upsweep_#in~a.base|)) (<= (+ |upsweep_#in~a.offset| 12) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))) (= (select |#memory_int| |upsweep_#in~a.base|) (store (select |old(#memory_int)| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)) (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))))) (<= (+ |upsweep_#in~a.offset| 1) 0) (<= 1 |upsweep_#in~a.offset|) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} #res := ~space~0; {18363#(or (and (or (= (select |#memory_int| |upsweep_#in~a.base|) (select |old(#memory_int)| |upsweep_#in~a.base|)) (<= (+ |upsweep_#in~a.offset| 12) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))) (= (select |#memory_int| |upsweep_#in~a.base|) (store (select |old(#memory_int)| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)) (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))))) (<= (+ |upsweep_#in~a.offset| 1) 0) (<= 1 |upsweep_#in~a.offset|) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:19:24,977 INFO L290 TraceCheckUtils]: 12: Hoare triple {18363#(or (and (or (= (select |#memory_int| |upsweep_#in~a.base|) (select |old(#memory_int)| |upsweep_#in~a.base|)) (<= (+ |upsweep_#in~a.offset| 12) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))) (= (select |#memory_int| |upsweep_#in~a.base|) (store (select |old(#memory_int)| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)) (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))))) (<= (+ |upsweep_#in~a.offset| 1) 0) (<= 1 |upsweep_#in~a.offset|) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} assume true; {18363#(or (and (or (= (select |#memory_int| |upsweep_#in~a.base|) (select |old(#memory_int)| |upsweep_#in~a.base|)) (<= (+ |upsweep_#in~a.offset| 12) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))) (= (select |#memory_int| |upsweep_#in~a.base|) (store (select |old(#memory_int)| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)) (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))))) (<= (+ |upsweep_#in~a.offset| 1) 0) (<= 1 |upsweep_#in~a.offset|) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} is VALID [2022-04-28 04:19:24,980 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {18363#(or (and (or (= (select |#memory_int| |upsweep_#in~a.base|) (select |old(#memory_int)| |upsweep_#in~a.base|)) (<= (+ |upsweep_#in~a.offset| 12) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))) (= (select |#memory_int| |upsweep_#in~a.base|) (store (select |old(#memory_int)| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)) (select (select |#memory_int| |upsweep_#in~a.base|) (@diff (select |old(#memory_int)| |upsweep_#in~a.base|) (select |#memory_int| |upsweep_#in~a.base|)))))) (<= (+ |upsweep_#in~a.offset| 1) 0) (<= 1 |upsweep_#in~a.offset|) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |upsweep_#in~a.base|))))} {18320#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= 3 main_~n~0) (not (= main_~a~0.base main_~a0~0.base)) (<= main_~n~0 3))} #152#return; {18335#(and (= main_~a~0.offset 0) (<= (* main_~n~0 4) 12) (= (select (select |#memory_int| main_~a~0.base) 4) 0) (<= 3 main_~n~0) (or (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (<= 4 (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (not (= main_~a~0.base main_~a0~0.base)) (or (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (<= 4 (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (or (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) (<= 4 (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (store (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) (@diff (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))} is VALID [2022-04-28 04:19:24,980 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 57 [2022-04-28 04:19:25,103 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat