./Ultimate.py --spec ../sv-benchmarks/c/properties/unreach-call.prp --file ../sv-benchmarks/c/verifythis/prefixsum_rec.c --full-output -ea --architecture 32bit -------------------------------------------------------------------------------- Checking for ERROR reachability Using default analysis Version 03d7b7b3 Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -ea -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerReach.xml -i ../sv-benchmarks/c/verifythis/prefixsum_rec.c -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(reach_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash 81bdf17d0130e934dcb31a2f76f595e947b99d6273334b7f05365a624466aeab --- Real Ultimate output --- This is Ultimate 0.2.2-dev-03d7b7b [2022-02-20 18:17:57,423 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-02-20 18:17:57,425 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-02-20 18:17:57,451 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-02-20 18:17:57,453 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-02-20 18:17:57,454 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-02-20 18:17:57,455 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-02-20 18:17:57,458 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-02-20 18:17:57,460 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-02-20 18:17:57,461 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-02-20 18:17:57,461 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-02-20 18:17:57,462 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-02-20 18:17:57,464 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-02-20 18:17:57,467 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-02-20 18:17:57,468 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-02-20 18:17:57,470 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-02-20 18:17:57,471 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-02-20 18:17:57,474 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-02-20 18:17:57,475 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-02-20 18:17:57,480 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-02-20 18:17:57,481 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-02-20 18:17:57,484 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-02-20 18:17:57,485 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-02-20 18:17:57,485 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-02-20 18:17:57,487 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-02-20 18:17:57,489 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-02-20 18:17:57,489 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-02-20 18:17:57,490 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-02-20 18:17:57,492 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-02-20 18:17:57,493 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-02-20 18:17:57,494 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-02-20 18:17:57,494 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-02-20 18:17:57,495 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-02-20 18:17:57,495 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-02-20 18:17:57,496 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-02-20 18:17:57,496 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-02-20 18:17:57,497 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-02-20 18:17:57,497 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-02-20 18:17:57,498 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-02-20 18:17:57,498 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-02-20 18:17:57,499 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-02-20 18:17:57,500 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf [2022-02-20 18:17:57,528 INFO L113 SettingsManager]: Loading preferences was successful [2022-02-20 18:17:57,529 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-02-20 18:17:57,529 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-02-20 18:17:57,530 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-02-20 18:17:57,530 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-02-20 18:17:57,531 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-02-20 18:17:57,531 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-02-20 18:17:57,531 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-02-20 18:17:57,531 INFO L138 SettingsManager]: * Use SBE=true [2022-02-20 18:17:57,532 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-02-20 18:17:57,533 INFO L138 SettingsManager]: * sizeof long=4 [2022-02-20 18:17:57,533 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-02-20 18:17:57,533 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-02-20 18:17:57,533 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-02-20 18:17:57,533 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-02-20 18:17:57,533 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-02-20 18:17:57,534 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-02-20 18:17:57,534 INFO L138 SettingsManager]: * sizeof long double=12 [2022-02-20 18:17:57,534 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-02-20 18:17:57,534 INFO L138 SettingsManager]: * Use constant arrays=true [2022-02-20 18:17:57,534 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-02-20 18:17:57,534 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-02-20 18:17:57,535 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-02-20 18:17:57,535 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-02-20 18:17:57,535 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 18:17:57,535 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-02-20 18:17:57,535 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-02-20 18:17:57,536 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-02-20 18:17:57,536 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2022-02-20 18:17:57,536 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2022-02-20 18:17:57,536 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-02-20 18:17:57,536 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-02-20 18:17:57,536 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-02-20 18:17:57,537 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: Entry function -> main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness.graphml Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(G ! call(reach_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> 81bdf17d0130e934dcb31a2f76f595e947b99d6273334b7f05365a624466aeab [2022-02-20 18:17:57,735 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-02-20 18:17:57,770 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-02-20 18:17:57,773 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-02-20 18:17:57,773 INFO L271 PluginConnector]: Initializing CDTParser... [2022-02-20 18:17:57,774 INFO L275 PluginConnector]: CDTParser initialized [2022-02-20 18:17:57,775 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/verifythis/prefixsum_rec.c [2022-02-20 18:17:57,833 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/a862d0b04/fff1173efd27455f87c74392a453064d/FLAG07a96bb84 [2022-02-20 18:17:58,230 INFO L306 CDTParser]: Found 1 translation units. [2022-02-20 18:17:58,230 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/prefixsum_rec.c [2022-02-20 18:17:58,240 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/a862d0b04/fff1173efd27455f87c74392a453064d/FLAG07a96bb84 [2022-02-20 18:17:58,616 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/a862d0b04/fff1173efd27455f87c74392a453064d [2022-02-20 18:17:58,619 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-02-20 18:17:58,620 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2022-02-20 18:17:58,621 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-02-20 18:17:58,621 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-02-20 18:17:58,623 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-02-20 18:17:58,624 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 06:17:58" (1/1) ... [2022-02-20 18:17:58,625 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@72fa16bb and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:17:58, skipping insertion in model container [2022-02-20 18:17:58,625 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 06:17:58" (1/1) ... [2022-02-20 18:17:58,630 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-02-20 18:17:58,642 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-02-20 18:17:58,766 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/prefixsum_rec.c[525,538] [2022-02-20 18:17:58,801 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 18:17:58,815 INFO L203 MainTranslator]: Completed pre-run [2022-02-20 18:17:58,829 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/prefixsum_rec.c[525,538] [2022-02-20 18:17:58,880 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 18:17:58,903 INFO L208 MainTranslator]: Completed translation [2022-02-20 18:17:58,904 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:17:58 WrapperNode [2022-02-20 18:17:58,904 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-02-20 18:17:58,905 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2022-02-20 18:17:58,905 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2022-02-20 18:17:58,905 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2022-02-20 18:17:58,913 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:17:58" (1/1) ... [2022-02-20 18:17:58,922 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:17:58" (1/1) ... [2022-02-20 18:17:58,949 INFO L137 Inliner]: procedures = 22, calls = 37, calls flagged for inlining = 5, calls inlined = 5, statements flattened = 75 [2022-02-20 18:17:58,950 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2022-02-20 18:17:58,950 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-02-20 18:17:58,951 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-02-20 18:17:58,951 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-02-20 18:17:58,958 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:17:58" (1/1) ... [2022-02-20 18:17:58,958 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:17:58" (1/1) ... [2022-02-20 18:17:58,961 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:17:58" (1/1) ... [2022-02-20 18:17:58,961 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:17:58" (1/1) ... [2022-02-20 18:17:58,989 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:17:58" (1/1) ... [2022-02-20 18:17:58,993 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:17:58" (1/1) ... [2022-02-20 18:17:58,994 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:17:58" (1/1) ... [2022-02-20 18:17:58,996 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-02-20 18:17:58,997 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-02-20 18:17:58,997 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-02-20 18:17:58,997 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-02-20 18:17:58,998 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:17:58" (1/1) ... [2022-02-20 18:17:59,009 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 18:17:59,016 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 18:17:59,027 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-02-20 18:17:59,044 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-02-20 18:17:59,074 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-02-20 18:17:59,074 INFO L130 BoogieDeclarations]: Found specification of procedure assume_abort_if_not [2022-02-20 18:17:59,074 INFO L138 BoogieDeclarations]: Found implementation of procedure assume_abort_if_not [2022-02-20 18:17:59,075 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-02-20 18:17:59,075 INFO L130 BoogieDeclarations]: Found specification of procedure downsweep [2022-02-20 18:17:59,075 INFO L138 BoogieDeclarations]: Found implementation of procedure downsweep [2022-02-20 18:17:59,075 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2022-02-20 18:17:59,075 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnHeap [2022-02-20 18:17:59,075 INFO L130 BoogieDeclarations]: Found specification of procedure upsweep [2022-02-20 18:17:59,076 INFO L138 BoogieDeclarations]: Found implementation of procedure upsweep [2022-02-20 18:17:59,076 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-02-20 18:17:59,087 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-02-20 18:17:59,087 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-02-20 18:17:59,087 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.meminit [2022-02-20 18:17:59,088 INFO L138 BoogieDeclarations]: Found implementation of procedure #Ultimate.meminit [2022-02-20 18:17:59,088 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-02-20 18:17:59,154 INFO L234 CfgBuilder]: Building ICFG [2022-02-20 18:17:59,155 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-02-20 18:18:01,647 INFO L275 CfgBuilder]: Performing block encoding [2022-02-20 18:18:01,658 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-02-20 18:18:01,666 INFO L299 CfgBuilder]: Removed 3 assume(true) statements. [2022-02-20 18:18:01,668 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 06:18:01 BoogieIcfgContainer [2022-02-20 18:18:01,670 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-02-20 18:18:01,672 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-02-20 18:18:01,672 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-02-20 18:18:01,675 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-02-20 18:18:01,675 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 20.02 06:17:58" (1/3) ... [2022-02-20 18:18:01,676 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@1e8b170a and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 06:18:01, skipping insertion in model container [2022-02-20 18:18:01,677 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 06:17:58" (2/3) ... [2022-02-20 18:18:01,677 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@1e8b170a and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 06:18:01, skipping insertion in model container [2022-02-20 18:18:01,677 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 06:18:01" (3/3) ... [2022-02-20 18:18:01,679 INFO L111 eAbstractionObserver]: Analyzing ICFG prefixsum_rec.c [2022-02-20 18:18:01,683 INFO L205 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-02-20 18:18:01,684 INFO L164 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-02-20 18:18:01,746 INFO L338 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-02-20 18:18:01,754 INFO L339 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=FPandBP, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=PETRI_NET, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=LoopsAndPotentialCycles, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP, mLoopAccelerationTechnique=FAST_UPR [2022-02-20 18:18:01,755 INFO L340 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-02-20 18:18:01,775 INFO L276 IsEmpty]: Start isEmpty. Operand has 49 states, 33 states have (on average 1.3333333333333333) internal successors, (44), 36 states have internal predecessors, (44), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 18:18:01,781 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 45 [2022-02-20 18:18:01,781 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 18:18:01,781 INFO L514 BasicCegarLoop]: 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] [2022-02-20 18:18:01,782 INFO L402 AbstractCegarLoop]: === Iteration 1 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 18:18:01,788 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 18:18:01,788 INFO L85 PathProgramCache]: Analyzing trace with hash 1639330660, now seen corresponding path program 1 times [2022-02-20 18:18:01,798 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 18:18:01,798 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [998613159] [2022-02-20 18:18:01,798 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:18:01,799 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 18:18:01,932 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:01,985 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 18:18:01,993 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:02,023 INFO L290 TraceCheckUtils]: 0: Hoare triple {52#true} ~cond := #in~cond; {52#true} is VALID [2022-02-20 18:18:02,025 INFO L290 TraceCheckUtils]: 1: Hoare triple {52#true} assume 0 == ~cond;assume false; {53#false} is VALID [2022-02-20 18:18:02,025 INFO L290 TraceCheckUtils]: 2: Hoare triple {53#false} assume true; {53#false} is VALID [2022-02-20 18:18:02,025 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {53#false} {52#true} #105#return; {53#false} is VALID [2022-02-20 18:18:02,027 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 18:18:02,030 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:02,036 INFO L290 TraceCheckUtils]: 0: Hoare triple {52#true} ~cond := #in~cond; {52#true} is VALID [2022-02-20 18:18:02,038 INFO L290 TraceCheckUtils]: 1: Hoare triple {52#true} assume 0 == ~cond;assume false; {53#false} is VALID [2022-02-20 18:18:02,038 INFO L290 TraceCheckUtils]: 2: Hoare triple {53#false} assume true; {53#false} is VALID [2022-02-20 18:18:02,038 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {53#false} {53#false} #107#return; {53#false} is VALID [2022-02-20 18:18:02,043 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-02-20 18:18:02,051 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:02,076 INFO L290 TraceCheckUtils]: 0: Hoare triple {77#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {52#true} is VALID [2022-02-20 18:18:02,077 INFO L290 TraceCheckUtils]: 1: Hoare triple {52#true} assume true; {52#true} is VALID [2022-02-20 18:18:02,077 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {52#true} {53#false} #109#return; {53#false} is VALID [2022-02-20 18:18:02,079 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 22 [2022-02-20 18:18:02,084 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:02,105 INFO L290 TraceCheckUtils]: 0: Hoare triple {77#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {52#true} is VALID [2022-02-20 18:18:02,106 INFO L290 TraceCheckUtils]: 1: Hoare triple {52#true} assume true; {52#true} is VALID [2022-02-20 18:18:02,106 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {52#true} {53#false} #111#return; {53#false} is VALID [2022-02-20 18:18:02,107 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 28 [2022-02-20 18:18:02,113 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:02,125 INFO L290 TraceCheckUtils]: 0: Hoare triple {77#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right; {52#true} is VALID [2022-02-20 18:18:02,125 INFO L290 TraceCheckUtils]: 1: Hoare triple {52#true} assume !(~right > 1 + ~left); {52#true} is VALID [2022-02-20 18:18:02,125 INFO L290 TraceCheckUtils]: 2: Hoare triple {52#true} call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem5;havoc #t~mem6; {52#true} is VALID [2022-02-20 18:18:02,126 INFO L290 TraceCheckUtils]: 3: Hoare triple {52#true} assume true; {52#true} is VALID [2022-02-20 18:18:02,126 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {52#true} {53#false} #113#return; {53#false} is VALID [2022-02-20 18:18:02,126 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 35 [2022-02-20 18:18:02,138 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:02,155 INFO L290 TraceCheckUtils]: 0: Hoare triple {77#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right, 4);~tmp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~tmp~0, ~a.base, ~a.offset + 4 * ~left, 4); {52#true} is VALID [2022-02-20 18:18:02,155 INFO L290 TraceCheckUtils]: 1: Hoare triple {52#true} assume !(~right > 1 + ~left); {52#true} is VALID [2022-02-20 18:18:02,156 INFO L290 TraceCheckUtils]: 2: Hoare triple {52#true} assume true; {52#true} is VALID [2022-02-20 18:18:02,156 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {52#true} {53#false} #115#return; {53#false} is VALID [2022-02-20 18:18:02,157 INFO L290 TraceCheckUtils]: 0: Hoare triple {52#true} assume { :begin_inline_ULTIMATE.init } 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(16, 2);call #Ultimate.allocInit(12, 3); {52#true} is VALID [2022-02-20 18:18:02,158 INFO L290 TraceCheckUtils]: 1: Hoare triple {52#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet13#1, main_#t~ret14#1, main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_#t~mem18#1, main_#t~post17#1, main_~n~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~a0~0#1.base, main_~a0~0#1.offset, main_~i~1#1;assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~n~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {52#true} is VALID [2022-02-20 18:18:02,158 INFO L272 TraceCheckUtils]: 2: Hoare triple {52#true} call assume_abort_if_not((if main_~n~0#1 > 1 && main_~n~0#1 < 1073741824 then 1 else 0)); {52#true} is VALID [2022-02-20 18:18:02,159 INFO L290 TraceCheckUtils]: 3: Hoare triple {52#true} ~cond := #in~cond; {52#true} is VALID [2022-02-20 18:18:02,160 INFO L290 TraceCheckUtils]: 4: Hoare triple {52#true} assume 0 == ~cond;assume false; {53#false} is VALID [2022-02-20 18:18:02,160 INFO L290 TraceCheckUtils]: 5: Hoare triple {53#false} assume true; {53#false} is VALID [2022-02-20 18:18:02,160 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {53#false} {52#true} #105#return; {53#false} is VALID [2022-02-20 18:18:02,161 INFO L290 TraceCheckUtils]: 7: Hoare triple {53#false} assume { :begin_inline_is_pow2 } true;is_pow2_#in~x#1 := main_~n~0#1;havoc is_pow2_#res#1;havoc is_pow2_~x#1;is_pow2_~x#1 := is_pow2_#in~x#1; {53#false} is VALID [2022-02-20 18:18:02,161 INFO L290 TraceCheckUtils]: 8: Hoare triple {53#false} assume !(0 == (if is_pow2_~x#1 % 4294967296 < 0 && 0 != is_pow2_~x#1 % 4294967296 % 2 then is_pow2_~x#1 % 4294967296 % 2 - 2 else is_pow2_~x#1 % 4294967296 % 2) % 4294967296 && is_pow2_~x#1 % 4294967296 > 1); {53#false} is VALID [2022-02-20 18:18:02,161 INFO L290 TraceCheckUtils]: 9: Hoare triple {53#false} is_pow2_#res#1 := (if 1 == is_pow2_~x#1 % 4294967296 then 1 else 0); {53#false} is VALID [2022-02-20 18:18:02,161 INFO L290 TraceCheckUtils]: 10: Hoare triple {53#false} main_#t~ret14#1 := is_pow2_#res#1;assume { :end_inline_is_pow2 } true;assume -2147483648 <= main_#t~ret14#1 && main_#t~ret14#1 <= 2147483647; {53#false} is VALID [2022-02-20 18:18:02,162 INFO L272 TraceCheckUtils]: 11: Hoare triple {53#false} call assume_abort_if_not(main_#t~ret14#1); {52#true} is VALID [2022-02-20 18:18:02,162 INFO L290 TraceCheckUtils]: 12: Hoare triple {52#true} ~cond := #in~cond; {52#true} is VALID [2022-02-20 18:18:02,163 INFO L290 TraceCheckUtils]: 13: Hoare triple {52#true} assume 0 == ~cond;assume false; {53#false} is VALID [2022-02-20 18:18:02,164 INFO L290 TraceCheckUtils]: 14: Hoare triple {53#false} assume true; {53#false} is VALID [2022-02-20 18:18:02,164 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {53#false} {53#false} #107#return; {53#false} is VALID [2022-02-20 18:18:02,164 INFO L290 TraceCheckUtils]: 16: Hoare triple {53#false} havoc main_#t~ret14#1;call main_#t~malloc15#1.base, main_#t~malloc15#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {53#false} is VALID [2022-02-20 18:18:02,165 INFO L272 TraceCheckUtils]: 17: Hoare triple {53#false} call #Ultimate.meminit(main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {77#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:02,165 INFO L290 TraceCheckUtils]: 18: Hoare triple {77#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {52#true} is VALID [2022-02-20 18:18:02,165 INFO L290 TraceCheckUtils]: 19: Hoare triple {52#true} assume true; {52#true} is VALID [2022-02-20 18:18:02,165 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {52#true} {53#false} #109#return; {53#false} is VALID [2022-02-20 18:18:02,166 INFO L290 TraceCheckUtils]: 21: Hoare triple {53#false} main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc15#1.base, main_#t~malloc15#1.offset;call main_#t~malloc16#1.base, main_#t~malloc16#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {53#false} is VALID [2022-02-20 18:18:02,166 INFO L272 TraceCheckUtils]: 22: Hoare triple {53#false} call #Ultimate.meminit(main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {77#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:02,166 INFO L290 TraceCheckUtils]: 23: Hoare triple {77#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {52#true} is VALID [2022-02-20 18:18:02,166 INFO L290 TraceCheckUtils]: 24: Hoare triple {52#true} assume true; {52#true} is VALID [2022-02-20 18:18:02,170 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {52#true} {53#false} #111#return; {53#false} is VALID [2022-02-20 18:18:02,170 INFO L290 TraceCheckUtils]: 26: Hoare triple {53#false} main_~a0~0#1.base, main_~a0~0#1.offset := main_#t~malloc16#1.base, main_#t~malloc16#1.offset;havoc main_~i~1#1;main_~i~1#1 := 0; {53#false} is VALID [2022-02-20 18:18:02,170 INFO L290 TraceCheckUtils]: 27: Hoare triple {53#false} assume !true; {53#false} is VALID [2022-02-20 18:18:02,170 INFO L272 TraceCheckUtils]: 28: Hoare triple {53#false} call upsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {77#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:02,171 INFO L290 TraceCheckUtils]: 29: Hoare triple {77#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right; {52#true} is VALID [2022-02-20 18:18:02,171 INFO L290 TraceCheckUtils]: 30: Hoare triple {52#true} assume !(~right > 1 + ~left); {52#true} is VALID [2022-02-20 18:18:02,172 INFO L290 TraceCheckUtils]: 31: Hoare triple {52#true} call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem5;havoc #t~mem6; {52#true} is VALID [2022-02-20 18:18:02,174 INFO L290 TraceCheckUtils]: 32: Hoare triple {52#true} assume true; {52#true} is VALID [2022-02-20 18:18:02,176 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {52#true} {53#false} #113#return; {53#false} is VALID [2022-02-20 18:18:02,176 INFO L290 TraceCheckUtils]: 34: Hoare triple {53#false} call write~int(0, main_~a~0#1.base, main_~a~0#1.offset + 4 * (main_~n~0#1 - 1), 4); {53#false} is VALID [2022-02-20 18:18:02,177 INFO L272 TraceCheckUtils]: 35: Hoare triple {53#false} call downsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {77#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:02,177 INFO L290 TraceCheckUtils]: 36: Hoare triple {77#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right, 4);~tmp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~tmp~0, ~a.base, ~a.offset + 4 * ~left, 4); {52#true} is VALID [2022-02-20 18:18:02,177 INFO L290 TraceCheckUtils]: 37: Hoare triple {52#true} assume !(~right > 1 + ~left); {52#true} is VALID [2022-02-20 18:18:02,178 INFO L290 TraceCheckUtils]: 38: Hoare triple {52#true} assume true; {52#true} is VALID [2022-02-20 18:18:02,178 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {52#true} {53#false} #115#return; {53#false} is VALID [2022-02-20 18:18:02,178 INFO L290 TraceCheckUtils]: 40: Hoare triple {53#false} assume { :begin_inline_check } true;check_#in~a0#1.base, check_#in~a0#1.offset, check_#in~a#1.base, check_#in~a#1.offset, check_#in~n#1 := main_~a0~0#1.base, main_~a0~0#1.offset, main_~a~0#1.base, main_~a~0#1.offset, main_~n~0#1;havoc check_#t~mem11#1, check_#t~mem12#1, check_#t~post10#1, check_~a0#1.base, check_~a0#1.offset, check_~a#1.base, check_~a#1.offset, check_~n#1, check_~i~0#1, check_~sum~0#1;check_~a0#1.base, check_~a0#1.offset := check_#in~a0#1.base, check_#in~a0#1.offset;check_~a#1.base, check_~a#1.offset := check_#in~a#1.base, check_#in~a#1.offset;check_~n#1 := check_#in~n#1;havoc check_~i~0#1;check_~sum~0#1 := 0;check_~i~0#1 := 0; {53#false} is VALID [2022-02-20 18:18:02,178 INFO L290 TraceCheckUtils]: 41: Hoare triple {53#false} assume !!(check_~i~0#1 < check_~n#1);call check_#t~mem11#1 := read~int(check_~a#1.base, check_~a#1.offset + 4 * check_~i~0#1, 4);assume { :begin_inline___VERIFIER_assert } true;__VERIFIER_assert_#in~cond#1 := (if check_~sum~0#1 == check_#t~mem11#1 then 1 else 0);havoc __VERIFIER_assert_~cond#1;__VERIFIER_assert_~cond#1 := __VERIFIER_assert_#in~cond#1; {53#false} is VALID [2022-02-20 18:18:02,181 INFO L290 TraceCheckUtils]: 42: Hoare triple {53#false} assume 0 == __VERIFIER_assert_~cond#1; {53#false} is VALID [2022-02-20 18:18:02,181 INFO L290 TraceCheckUtils]: 43: Hoare triple {53#false} assume !false; {53#false} is VALID [2022-02-20 18:18:02,182 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2022-02-20 18:18:02,183 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 18:18:02,183 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [998613159] [2022-02-20 18:18:02,184 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [998613159] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 18:18:02,184 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 18:18:02,184 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-02-20 18:18:02,187 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1256431304] [2022-02-20 18:18:02,188 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 18:18:02,193 INFO L78 Accepts]: Start accepts. Automaton has has 3 states, 3 states have (on average 9.0) internal successors, (27), 2 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 2 states have return successors, (6), 1 states have call predecessors, (6), 2 states have call successors, (6) Word has length 44 [2022-02-20 18:18:02,195 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 18:18:02,198 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 3 states, 3 states have (on average 9.0) internal successors, (27), 2 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 2 states have return successors, (6), 1 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 18:18:02,260 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 39 edges. 39 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:18:02,261 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 3 states [2022-02-20 18:18:02,261 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 18:18:02,287 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2022-02-20 18:18:02,288 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-02-20 18:18:02,290 INFO L87 Difference]: Start difference. First operand has 49 states, 33 states have (on average 1.3333333333333333) internal successors, (44), 36 states have internal predecessors, (44), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand has 3 states, 3 states have (on average 9.0) internal successors, (27), 2 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 2 states have return successors, (6), 1 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 18:18:02,496 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:18:02,497 INFO L93 Difference]: Finished difference Result 96 states and 127 transitions. [2022-02-20 18:18:02,497 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2022-02-20 18:18:02,497 INFO L78 Accepts]: Start accepts. Automaton has has 3 states, 3 states have (on average 9.0) internal successors, (27), 2 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 2 states have return successors, (6), 1 states have call predecessors, (6), 2 states have call successors, (6) Word has length 44 [2022-02-20 18:18:02,498 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 18:18:02,499 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 9.0) internal successors, (27), 2 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 2 states have return successors, (6), 1 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 18:18:02,506 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 127 transitions. [2022-02-20 18:18:02,507 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 9.0) internal successors, (27), 2 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 2 states have return successors, (6), 1 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 18:18:02,511 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 127 transitions. [2022-02-20 18:18:02,512 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 127 transitions. [2022-02-20 18:18:02,632 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 127 edges. 127 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:18:02,642 INFO L225 Difference]: With dead ends: 96 [2022-02-20 18:18:02,642 INFO L226 Difference]: Without dead ends: 46 [2022-02-20 18:18:02,645 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 15 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-02-20 18:18:02,647 INFO L933 BasicCegarLoop]: 56 mSDtfsCounter, 6 mSDsluCounter, 32 mSDsCounter, 0 mSdLazyCounter, 14 mSolverCounterSat, 10 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 6 SdHoareTripleChecker+Valid, 88 SdHoareTripleChecker+Invalid, 24 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 10 IncrementalHoareTripleChecker+Valid, 14 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 18:18:02,648 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [6 Valid, 88 Invalid, 24 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [10 Valid, 14 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 18:18:02,661 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 46 states. [2022-02-20 18:18:02,672 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 46 to 45. [2022-02-20 18:18:02,673 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 18:18:02,673 INFO L82 GeneralOperation]: Start isEquivalent. First operand 46 states. Second operand has 45 states, 30 states have (on average 1.1666666666666667) internal successors, (35), 32 states have internal predecessors, (35), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 18:18:02,674 INFO L74 IsIncluded]: Start isIncluded. First operand 46 states. Second operand has 45 states, 30 states have (on average 1.1666666666666667) internal successors, (35), 32 states have internal predecessors, (35), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 18:18:02,675 INFO L87 Difference]: Start difference. First operand 46 states. Second operand has 45 states, 30 states have (on average 1.1666666666666667) internal successors, (35), 32 states have internal predecessors, (35), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 18:18:02,679 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:18:02,679 INFO L93 Difference]: Finished difference Result 46 states and 56 transitions. [2022-02-20 18:18:02,679 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 56 transitions. [2022-02-20 18:18:02,680 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:18:02,680 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:18:02,681 INFO L74 IsIncluded]: Start isIncluded. First operand has 45 states, 30 states have (on average 1.1666666666666667) internal successors, (35), 32 states have internal predecessors, (35), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand 46 states. [2022-02-20 18:18:02,682 INFO L87 Difference]: Start difference. First operand has 45 states, 30 states have (on average 1.1666666666666667) internal successors, (35), 32 states have internal predecessors, (35), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand 46 states. [2022-02-20 18:18:02,686 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:18:02,687 INFO L93 Difference]: Finished difference Result 46 states and 56 transitions. [2022-02-20 18:18:02,687 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 56 transitions. [2022-02-20 18:18:02,688 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:18:02,688 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:18:02,688 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 18:18:02,688 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 18:18:02,689 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 45 states, 30 states have (on average 1.1666666666666667) internal successors, (35), 32 states have internal predecessors, (35), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 18:18:02,692 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 55 transitions. [2022-02-20 18:18:02,693 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 55 transitions. Word has length 44 [2022-02-20 18:18:02,693 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 18:18:02,694 INFO L470 AbstractCegarLoop]: Abstraction has 45 states and 55 transitions. [2022-02-20 18:18:02,694 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 3 states, 3 states have (on average 9.0) internal successors, (27), 2 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 2 states have return successors, (6), 1 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 18:18:02,694 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 55 transitions. [2022-02-20 18:18:02,696 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 45 [2022-02-20 18:18:02,696 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 18:18:02,696 INFO L514 BasicCegarLoop]: 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] [2022-02-20 18:18:02,697 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-02-20 18:18:02,697 INFO L402 AbstractCegarLoop]: === Iteration 2 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 18:18:02,697 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 18:18:02,698 INFO L85 PathProgramCache]: Analyzing trace with hash 1439199646, now seen corresponding path program 1 times [2022-02-20 18:18:02,698 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 18:18:02,698 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [207044342] [2022-02-20 18:18:02,698 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:18:02,698 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 18:18:02,751 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:02,877 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 18:18:02,878 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:02,882 INFO L290 TraceCheckUtils]: 0: Hoare triple {368#true} ~cond := #in~cond; {368#true} is VALID [2022-02-20 18:18:02,882 INFO L290 TraceCheckUtils]: 1: Hoare triple {368#true} assume !(0 == ~cond); {368#true} is VALID [2022-02-20 18:18:02,882 INFO L290 TraceCheckUtils]: 2: Hoare triple {368#true} assume true; {368#true} is VALID [2022-02-20 18:18:02,882 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {368#true} {368#true} #105#return; {368#true} is VALID [2022-02-20 18:18:02,883 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 18:18:02,884 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:02,886 INFO L290 TraceCheckUtils]: 0: Hoare triple {368#true} ~cond := #in~cond; {368#true} is VALID [2022-02-20 18:18:02,886 INFO L290 TraceCheckUtils]: 1: Hoare triple {368#true} assume !(0 == ~cond); {368#true} is VALID [2022-02-20 18:18:02,887 INFO L290 TraceCheckUtils]: 2: Hoare triple {368#true} assume true; {368#true} is VALID [2022-02-20 18:18:02,887 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {368#true} {368#true} #107#return; {368#true} is VALID [2022-02-20 18:18:02,894 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-02-20 18:18:02,895 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:02,899 INFO L290 TraceCheckUtils]: 0: Hoare triple {397#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {368#true} is VALID [2022-02-20 18:18:02,899 INFO L290 TraceCheckUtils]: 1: Hoare triple {368#true} assume true; {368#true} is VALID [2022-02-20 18:18:02,900 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {368#true} {368#true} #109#return; {368#true} is VALID [2022-02-20 18:18:02,900 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 22 [2022-02-20 18:18:02,901 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:02,917 INFO L290 TraceCheckUtils]: 0: Hoare triple {397#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {368#true} is VALID [2022-02-20 18:18:02,917 INFO L290 TraceCheckUtils]: 1: Hoare triple {368#true} assume true; {368#true} is VALID [2022-02-20 18:18:02,917 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {368#true} {368#true} #111#return; {368#true} is VALID [2022-02-20 18:18:02,918 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 28 [2022-02-20 18:18:02,922 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:02,927 INFO L290 TraceCheckUtils]: 0: Hoare triple {397#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right; {368#true} is VALID [2022-02-20 18:18:02,927 INFO L290 TraceCheckUtils]: 1: Hoare triple {368#true} assume !(~right > 1 + ~left); {368#true} is VALID [2022-02-20 18:18:02,928 INFO L290 TraceCheckUtils]: 2: Hoare triple {368#true} call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem5;havoc #t~mem6; {368#true} is VALID [2022-02-20 18:18:02,928 INFO L290 TraceCheckUtils]: 3: Hoare triple {368#true} assume true; {368#true} is VALID [2022-02-20 18:18:02,929 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {368#true} {386#(<= |ULTIMATE.start_main_~n~0#1| 0)} #113#return; {386#(<= |ULTIMATE.start_main_~n~0#1| 0)} is VALID [2022-02-20 18:18:02,929 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 35 [2022-02-20 18:18:02,948 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:02,953 INFO L290 TraceCheckUtils]: 0: Hoare triple {397#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right, 4);~tmp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~tmp~0, ~a.base, ~a.offset + 4 * ~left, 4); {368#true} is VALID [2022-02-20 18:18:02,954 INFO L290 TraceCheckUtils]: 1: Hoare triple {368#true} assume !(~right > 1 + ~left); {368#true} is VALID [2022-02-20 18:18:02,954 INFO L290 TraceCheckUtils]: 2: Hoare triple {368#true} assume true; {368#true} is VALID [2022-02-20 18:18:02,955 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {368#true} {386#(<= |ULTIMATE.start_main_~n~0#1| 0)} #115#return; {386#(<= |ULTIMATE.start_main_~n~0#1| 0)} is VALID [2022-02-20 18:18:02,955 INFO L290 TraceCheckUtils]: 0: Hoare triple {368#true} assume { :begin_inline_ULTIMATE.init } 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(16, 2);call #Ultimate.allocInit(12, 3); {368#true} is VALID [2022-02-20 18:18:02,955 INFO L290 TraceCheckUtils]: 1: Hoare triple {368#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet13#1, main_#t~ret14#1, main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_#t~mem18#1, main_#t~post17#1, main_~n~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~a0~0#1.base, main_~a0~0#1.offset, main_~i~1#1;assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~n~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {368#true} is VALID [2022-02-20 18:18:02,956 INFO L272 TraceCheckUtils]: 2: Hoare triple {368#true} call assume_abort_if_not((if main_~n~0#1 > 1 && main_~n~0#1 < 1073741824 then 1 else 0)); {368#true} is VALID [2022-02-20 18:18:02,956 INFO L290 TraceCheckUtils]: 3: Hoare triple {368#true} ~cond := #in~cond; {368#true} is VALID [2022-02-20 18:18:02,956 INFO L290 TraceCheckUtils]: 4: Hoare triple {368#true} assume !(0 == ~cond); {368#true} is VALID [2022-02-20 18:18:02,956 INFO L290 TraceCheckUtils]: 5: Hoare triple {368#true} assume true; {368#true} is VALID [2022-02-20 18:18:02,956 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {368#true} {368#true} #105#return; {368#true} is VALID [2022-02-20 18:18:02,957 INFO L290 TraceCheckUtils]: 7: Hoare triple {368#true} assume { :begin_inline_is_pow2 } true;is_pow2_#in~x#1 := main_~n~0#1;havoc is_pow2_#res#1;havoc is_pow2_~x#1;is_pow2_~x#1 := is_pow2_#in~x#1; {374#(= |ULTIMATE.start_is_pow2_~x#1| |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:02,958 INFO L290 TraceCheckUtils]: 8: Hoare triple {374#(= |ULTIMATE.start_is_pow2_~x#1| |ULTIMATE.start_main_~n~0#1|)} assume !(0 == (if is_pow2_~x#1 % 4294967296 < 0 && 0 != is_pow2_~x#1 % 4294967296 % 2 then is_pow2_~x#1 % 4294967296 % 2 - 2 else is_pow2_~x#1 % 4294967296 % 2) % 4294967296 && is_pow2_~x#1 % 4294967296 > 1); {374#(= |ULTIMATE.start_is_pow2_~x#1| |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:02,958 INFO L290 TraceCheckUtils]: 9: Hoare triple {374#(= |ULTIMATE.start_is_pow2_~x#1| |ULTIMATE.start_main_~n~0#1|)} is_pow2_#res#1 := (if 1 == is_pow2_~x#1 % 4294967296 then 1 else 0); {368#true} is VALID [2022-02-20 18:18:02,958 INFO L290 TraceCheckUtils]: 10: Hoare triple {368#true} main_#t~ret14#1 := is_pow2_#res#1;assume { :end_inline_is_pow2 } true;assume -2147483648 <= main_#t~ret14#1 && main_#t~ret14#1 <= 2147483647; {368#true} is VALID [2022-02-20 18:18:02,958 INFO L272 TraceCheckUtils]: 11: Hoare triple {368#true} call assume_abort_if_not(main_#t~ret14#1); {368#true} is VALID [2022-02-20 18:18:02,958 INFO L290 TraceCheckUtils]: 12: Hoare triple {368#true} ~cond := #in~cond; {368#true} is VALID [2022-02-20 18:18:02,959 INFO L290 TraceCheckUtils]: 13: Hoare triple {368#true} assume !(0 == ~cond); {368#true} is VALID [2022-02-20 18:18:02,959 INFO L290 TraceCheckUtils]: 14: Hoare triple {368#true} assume true; {368#true} is VALID [2022-02-20 18:18:02,965 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {368#true} {368#true} #107#return; {368#true} is VALID [2022-02-20 18:18:02,966 INFO L290 TraceCheckUtils]: 16: Hoare triple {368#true} havoc main_#t~ret14#1;call main_#t~malloc15#1.base, main_#t~malloc15#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {368#true} is VALID [2022-02-20 18:18:02,967 INFO L272 TraceCheckUtils]: 17: Hoare triple {368#true} call #Ultimate.meminit(main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {397#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:02,967 INFO L290 TraceCheckUtils]: 18: Hoare triple {397#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {368#true} is VALID [2022-02-20 18:18:02,968 INFO L290 TraceCheckUtils]: 19: Hoare triple {368#true} assume true; {368#true} is VALID [2022-02-20 18:18:02,968 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {368#true} {368#true} #109#return; {368#true} is VALID [2022-02-20 18:18:02,968 INFO L290 TraceCheckUtils]: 21: Hoare triple {368#true} main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc15#1.base, main_#t~malloc15#1.offset;call main_#t~malloc16#1.base, main_#t~malloc16#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {368#true} is VALID [2022-02-20 18:18:02,970 INFO L272 TraceCheckUtils]: 22: Hoare triple {368#true} call #Ultimate.meminit(main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {397#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:02,970 INFO L290 TraceCheckUtils]: 23: Hoare triple {397#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {368#true} is VALID [2022-02-20 18:18:02,971 INFO L290 TraceCheckUtils]: 24: Hoare triple {368#true} assume true; {368#true} is VALID [2022-02-20 18:18:02,971 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {368#true} {368#true} #111#return; {368#true} is VALID [2022-02-20 18:18:02,971 INFO L290 TraceCheckUtils]: 26: Hoare triple {368#true} main_~a0~0#1.base, main_~a0~0#1.offset := main_#t~malloc16#1.base, main_#t~malloc16#1.offset;havoc main_~i~1#1;main_~i~1#1 := 0; {385#(= |ULTIMATE.start_main_~i~1#1| 0)} is VALID [2022-02-20 18:18:02,972 INFO L290 TraceCheckUtils]: 27: Hoare triple {385#(= |ULTIMATE.start_main_~i~1#1| 0)} assume !(main_~i~1#1 < main_~n~0#1); {386#(<= |ULTIMATE.start_main_~n~0#1| 0)} is VALID [2022-02-20 18:18:02,973 INFO L272 TraceCheckUtils]: 28: Hoare triple {386#(<= |ULTIMATE.start_main_~n~0#1| 0)} call upsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {397#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:02,974 INFO L290 TraceCheckUtils]: 29: Hoare triple {397#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right; {368#true} is VALID [2022-02-20 18:18:02,974 INFO L290 TraceCheckUtils]: 30: Hoare triple {368#true} assume !(~right > 1 + ~left); {368#true} is VALID [2022-02-20 18:18:02,987 INFO L290 TraceCheckUtils]: 31: Hoare triple {368#true} call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem5;havoc #t~mem6; {368#true} is VALID [2022-02-20 18:18:02,988 INFO L290 TraceCheckUtils]: 32: Hoare triple {368#true} assume true; {368#true} is VALID [2022-02-20 18:18:02,989 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {368#true} {386#(<= |ULTIMATE.start_main_~n~0#1| 0)} #113#return; {386#(<= |ULTIMATE.start_main_~n~0#1| 0)} is VALID [2022-02-20 18:18:02,989 INFO L290 TraceCheckUtils]: 34: Hoare triple {386#(<= |ULTIMATE.start_main_~n~0#1| 0)} call write~int(0, main_~a~0#1.base, main_~a~0#1.offset + 4 * (main_~n~0#1 - 1), 4); {386#(<= |ULTIMATE.start_main_~n~0#1| 0)} is VALID [2022-02-20 18:18:02,990 INFO L272 TraceCheckUtils]: 35: Hoare triple {386#(<= |ULTIMATE.start_main_~n~0#1| 0)} call downsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {397#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:02,991 INFO L290 TraceCheckUtils]: 36: Hoare triple {397#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right, 4);~tmp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~tmp~0, ~a.base, ~a.offset + 4 * ~left, 4); {368#true} is VALID [2022-02-20 18:18:02,991 INFO L290 TraceCheckUtils]: 37: Hoare triple {368#true} assume !(~right > 1 + ~left); {368#true} is VALID [2022-02-20 18:18:02,991 INFO L290 TraceCheckUtils]: 38: Hoare triple {368#true} assume true; {368#true} is VALID [2022-02-20 18:18:02,992 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {368#true} {386#(<= |ULTIMATE.start_main_~n~0#1| 0)} #115#return; {386#(<= |ULTIMATE.start_main_~n~0#1| 0)} is VALID [2022-02-20 18:18:02,993 INFO L290 TraceCheckUtils]: 40: Hoare triple {386#(<= |ULTIMATE.start_main_~n~0#1| 0)} assume { :begin_inline_check } true;check_#in~a0#1.base, check_#in~a0#1.offset, check_#in~a#1.base, check_#in~a#1.offset, check_#in~n#1 := main_~a0~0#1.base, main_~a0~0#1.offset, main_~a~0#1.base, main_~a~0#1.offset, main_~n~0#1;havoc check_#t~mem11#1, check_#t~mem12#1, check_#t~post10#1, check_~a0#1.base, check_~a0#1.offset, check_~a#1.base, check_~a#1.offset, check_~n#1, check_~i~0#1, check_~sum~0#1;check_~a0#1.base, check_~a0#1.offset := check_#in~a0#1.base, check_#in~a0#1.offset;check_~a#1.base, check_~a#1.offset := check_#in~a#1.base, check_#in~a#1.offset;check_~n#1 := check_#in~n#1;havoc check_~i~0#1;check_~sum~0#1 := 0;check_~i~0#1 := 0; {396#(and (= |ULTIMATE.start_check_~i~0#1| 0) (<= |ULTIMATE.start_check_~n#1| 0))} is VALID [2022-02-20 18:18:02,993 INFO L290 TraceCheckUtils]: 41: Hoare triple {396#(and (= |ULTIMATE.start_check_~i~0#1| 0) (<= |ULTIMATE.start_check_~n#1| 0))} assume !!(check_~i~0#1 < check_~n#1);call check_#t~mem11#1 := read~int(check_~a#1.base, check_~a#1.offset + 4 * check_~i~0#1, 4);assume { :begin_inline___VERIFIER_assert } true;__VERIFIER_assert_#in~cond#1 := (if check_~sum~0#1 == check_#t~mem11#1 then 1 else 0);havoc __VERIFIER_assert_~cond#1;__VERIFIER_assert_~cond#1 := __VERIFIER_assert_#in~cond#1; {369#false} is VALID [2022-02-20 18:18:02,994 INFO L290 TraceCheckUtils]: 42: Hoare triple {369#false} assume 0 == __VERIFIER_assert_~cond#1; {369#false} is VALID [2022-02-20 18:18:02,994 INFO L290 TraceCheckUtils]: 43: Hoare triple {369#false} assume !false; {369#false} is VALID [2022-02-20 18:18:02,994 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2022-02-20 18:18:02,995 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 18:18:02,995 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [207044342] [2022-02-20 18:18:02,995 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [207044342] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 18:18:02,995 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 18:18:02,995 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2022-02-20 18:18:02,996 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2117879452] [2022-02-20 18:18:02,996 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 18:18:02,997 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 3.857142857142857) internal successors, (27), 6 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) Word has length 44 [2022-02-20 18:18:02,998 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 18:18:02,998 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 7 states, 7 states have (on average 3.857142857142857) internal successors, (27), 6 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 18:18:03,058 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 39 edges. 39 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:18:03,058 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-02-20 18:18:03,059 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 18:18:03,059 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-02-20 18:18:03,060 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2022-02-20 18:18:03,060 INFO L87 Difference]: Start difference. First operand 45 states and 55 transitions. Second operand has 7 states, 7 states have (on average 3.857142857142857) internal successors, (27), 6 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 18:18:07,293 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-02-20 18:18:09,437 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.14s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=false, quantifiers [] [2022-02-20 18:18:15,878 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=false, quantifiers [] [2022-02-20 18:18:16,663 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:18:16,663 INFO L93 Difference]: Finished difference Result 87 states and 110 transitions. [2022-02-20 18:18:16,664 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-02-20 18:18:16,664 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 3.857142857142857) internal successors, (27), 6 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) Word has length 44 [2022-02-20 18:18:16,664 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 18:18:16,664 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 3.857142857142857) internal successors, (27), 6 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 18:18:16,669 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 110 transitions. [2022-02-20 18:18:16,670 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 3.857142857142857) internal successors, (27), 6 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 18:18:16,673 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 110 transitions. [2022-02-20 18:18:16,673 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 110 transitions. [2022-02-20 18:18:16,782 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 110 edges. 110 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:18:16,785 INFO L225 Difference]: With dead ends: 87 [2022-02-20 18:18:16,785 INFO L226 Difference]: Without dead ends: 71 [2022-02-20 18:18:16,786 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 24 GetRequests, 14 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 3 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=42, Invalid=90, Unknown=0, NotChecked=0, Total=132 [2022-02-20 18:18:16,787 INFO L933 BasicCegarLoop]: 61 mSDtfsCounter, 32 mSDsluCounter, 214 mSDsCounter, 0 mSdLazyCounter, 144 mSolverCounterSat, 16 mSolverCounterUnsat, 3 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 6.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 37 SdHoareTripleChecker+Valid, 275 SdHoareTripleChecker+Invalid, 163 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 16 IncrementalHoareTripleChecker+Valid, 144 IncrementalHoareTripleChecker+Invalid, 3 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 6.7s IncrementalHoareTripleChecker+Time [2022-02-20 18:18:16,787 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [37 Valid, 275 Invalid, 163 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [16 Valid, 144 Invalid, 3 Unknown, 0 Unchecked, 6.7s Time] [2022-02-20 18:18:16,788 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 71 states. [2022-02-20 18:18:16,792 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 71 to 46. [2022-02-20 18:18:16,793 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 18:18:16,793 INFO L82 GeneralOperation]: Start isEquivalent. First operand 71 states. Second operand has 46 states, 31 states have (on average 1.1612903225806452) internal successors, (36), 33 states have internal predecessors, (36), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 18:18:16,793 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand has 46 states, 31 states have (on average 1.1612903225806452) internal successors, (36), 33 states have internal predecessors, (36), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 18:18:16,794 INFO L87 Difference]: Start difference. First operand 71 states. Second operand has 46 states, 31 states have (on average 1.1612903225806452) internal successors, (36), 33 states have internal predecessors, (36), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 18:18:16,797 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:18:16,798 INFO L93 Difference]: Finished difference Result 71 states and 88 transitions. [2022-02-20 18:18:16,798 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 88 transitions. [2022-02-20 18:18:16,799 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:18:16,799 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:18:16,799 INFO L74 IsIncluded]: Start isIncluded. First operand has 46 states, 31 states have (on average 1.1612903225806452) internal successors, (36), 33 states have internal predecessors, (36), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand 71 states. [2022-02-20 18:18:16,800 INFO L87 Difference]: Start difference. First operand has 46 states, 31 states have (on average 1.1612903225806452) internal successors, (36), 33 states have internal predecessors, (36), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand 71 states. [2022-02-20 18:18:16,803 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:18:16,803 INFO L93 Difference]: Finished difference Result 71 states and 88 transitions. [2022-02-20 18:18:16,803 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 88 transitions. [2022-02-20 18:18:16,804 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:18:16,805 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:18:16,805 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 18:18:16,805 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 18:18:16,805 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 46 states, 31 states have (on average 1.1612903225806452) internal successors, (36), 33 states have internal predecessors, (36), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 18:18:16,807 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 46 states to 46 states and 56 transitions. [2022-02-20 18:18:16,808 INFO L78 Accepts]: Start accepts. Automaton has 46 states and 56 transitions. Word has length 44 [2022-02-20 18:18:16,808 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 18:18:16,808 INFO L470 AbstractCegarLoop]: Abstraction has 46 states and 56 transitions. [2022-02-20 18:18:16,808 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 7 states, 7 states have (on average 3.857142857142857) internal successors, (27), 6 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 18:18:16,808 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 56 transitions. [2022-02-20 18:18:16,809 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 47 [2022-02-20 18:18:16,810 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 18:18:16,810 INFO L514 BasicCegarLoop]: 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] [2022-02-20 18:18:16,810 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1 [2022-02-20 18:18:16,810 INFO L402 AbstractCegarLoop]: === Iteration 3 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 18:18:16,811 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 18:18:16,811 INFO L85 PathProgramCache]: Analyzing trace with hash -1012024996, now seen corresponding path program 1 times [2022-02-20 18:18:16,811 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 18:18:16,811 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1439714798] [2022-02-20 18:18:16,811 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:18:16,811 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 18:18:16,893 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:16,953 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 18:18:16,956 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:16,990 INFO L290 TraceCheckUtils]: 0: Hoare triple {740#true} ~cond := #in~cond; {768#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-02-20 18:18:16,990 INFO L290 TraceCheckUtils]: 1: Hoare triple {768#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {769#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 18:18:16,991 INFO L290 TraceCheckUtils]: 2: Hoare triple {769#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {769#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 18:18:16,991 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {769#(not (= |assume_abort_if_not_#in~cond| 0))} {740#true} #105#return; {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:16,992 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 18:18:16,993 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:16,997 INFO L290 TraceCheckUtils]: 0: Hoare triple {740#true} ~cond := #in~cond; {740#true} is VALID [2022-02-20 18:18:16,998 INFO L290 TraceCheckUtils]: 1: Hoare triple {740#true} assume !(0 == ~cond); {740#true} is VALID [2022-02-20 18:18:16,998 INFO L290 TraceCheckUtils]: 2: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:16,999 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {740#true} {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} #107#return; {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:17,005 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-02-20 18:18:17,007 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:17,014 INFO L290 TraceCheckUtils]: 0: Hoare triple {770#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {740#true} is VALID [2022-02-20 18:18:17,014 INFO L290 TraceCheckUtils]: 1: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:17,015 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {740#true} {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} #109#return; {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:17,015 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 22 [2022-02-20 18:18:17,018 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:17,024 INFO L290 TraceCheckUtils]: 0: Hoare triple {770#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {740#true} is VALID [2022-02-20 18:18:17,024 INFO L290 TraceCheckUtils]: 1: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:17,025 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {740#true} {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} #111#return; {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:17,025 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 30 [2022-02-20 18:18:17,030 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:17,037 INFO L290 TraceCheckUtils]: 0: Hoare triple {770#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right; {740#true} is VALID [2022-02-20 18:18:17,037 INFO L290 TraceCheckUtils]: 1: Hoare triple {740#true} assume !(~right > 1 + ~left); {740#true} is VALID [2022-02-20 18:18:17,037 INFO L290 TraceCheckUtils]: 2: Hoare triple {740#true} call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem5;havoc #t~mem6; {740#true} is VALID [2022-02-20 18:18:17,038 INFO L290 TraceCheckUtils]: 3: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:17,038 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {740#true} {741#false} #113#return; {741#false} is VALID [2022-02-20 18:18:17,038 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 37 [2022-02-20 18:18:17,044 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:17,062 INFO L290 TraceCheckUtils]: 0: Hoare triple {770#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right, 4);~tmp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~tmp~0, ~a.base, ~a.offset + 4 * ~left, 4); {740#true} is VALID [2022-02-20 18:18:17,062 INFO L290 TraceCheckUtils]: 1: Hoare triple {740#true} assume !(~right > 1 + ~left); {740#true} is VALID [2022-02-20 18:18:17,062 INFO L290 TraceCheckUtils]: 2: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:17,063 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {740#true} {741#false} #115#return; {741#false} is VALID [2022-02-20 18:18:17,063 INFO L290 TraceCheckUtils]: 0: Hoare triple {740#true} assume { :begin_inline_ULTIMATE.init } 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(16, 2);call #Ultimate.allocInit(12, 3); {740#true} is VALID [2022-02-20 18:18:17,063 INFO L290 TraceCheckUtils]: 1: Hoare triple {740#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet13#1, main_#t~ret14#1, main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_#t~mem18#1, main_#t~post17#1, main_~n~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~a0~0#1.base, main_~a0~0#1.offset, main_~i~1#1;assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~n~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {740#true} is VALID [2022-02-20 18:18:17,063 INFO L272 TraceCheckUtils]: 2: Hoare triple {740#true} call assume_abort_if_not((if main_~n~0#1 > 1 && main_~n~0#1 < 1073741824 then 1 else 0)); {740#true} is VALID [2022-02-20 18:18:17,064 INFO L290 TraceCheckUtils]: 3: Hoare triple {740#true} ~cond := #in~cond; {768#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-02-20 18:18:17,064 INFO L290 TraceCheckUtils]: 4: Hoare triple {768#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {769#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 18:18:17,064 INFO L290 TraceCheckUtils]: 5: Hoare triple {769#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {769#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 18:18:17,065 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {769#(not (= |assume_abort_if_not_#in~cond| 0))} {740#true} #105#return; {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:17,066 INFO L290 TraceCheckUtils]: 7: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} assume { :begin_inline_is_pow2 } true;is_pow2_#in~x#1 := main_~n~0#1;havoc is_pow2_#res#1;havoc is_pow2_~x#1;is_pow2_~x#1 := is_pow2_#in~x#1; {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:17,066 INFO L290 TraceCheckUtils]: 8: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} assume !(0 == (if is_pow2_~x#1 % 4294967296 < 0 && 0 != is_pow2_~x#1 % 4294967296 % 2 then is_pow2_~x#1 % 4294967296 % 2 - 2 else is_pow2_~x#1 % 4294967296 % 2) % 4294967296 && is_pow2_~x#1 % 4294967296 > 1); {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:17,066 INFO L290 TraceCheckUtils]: 9: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is_pow2_#res#1 := (if 1 == is_pow2_~x#1 % 4294967296 then 1 else 0); {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:17,067 INFO L290 TraceCheckUtils]: 10: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} main_#t~ret14#1 := is_pow2_#res#1;assume { :end_inline_is_pow2 } true;assume -2147483648 <= main_#t~ret14#1 && main_#t~ret14#1 <= 2147483647; {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:17,067 INFO L272 TraceCheckUtils]: 11: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} call assume_abort_if_not(main_#t~ret14#1); {740#true} is VALID [2022-02-20 18:18:17,067 INFO L290 TraceCheckUtils]: 12: Hoare triple {740#true} ~cond := #in~cond; {740#true} is VALID [2022-02-20 18:18:17,067 INFO L290 TraceCheckUtils]: 13: Hoare triple {740#true} assume !(0 == ~cond); {740#true} is VALID [2022-02-20 18:18:17,067 INFO L290 TraceCheckUtils]: 14: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:17,068 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {740#true} {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} #107#return; {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:17,068 INFO L290 TraceCheckUtils]: 16: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} havoc main_#t~ret14#1;call main_#t~malloc15#1.base, main_#t~malloc15#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:17,069 INFO L272 TraceCheckUtils]: 17: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} call #Ultimate.meminit(main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {770#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:17,069 INFO L290 TraceCheckUtils]: 18: Hoare triple {770#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {740#true} is VALID [2022-02-20 18:18:17,070 INFO L290 TraceCheckUtils]: 19: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:17,070 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {740#true} {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} #109#return; {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:17,071 INFO L290 TraceCheckUtils]: 21: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc15#1.base, main_#t~malloc15#1.offset;call main_#t~malloc16#1.base, main_#t~malloc16#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:17,072 INFO L272 TraceCheckUtils]: 22: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} call #Ultimate.meminit(main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {770#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:17,072 INFO L290 TraceCheckUtils]: 23: Hoare triple {770#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {740#true} is VALID [2022-02-20 18:18:17,072 INFO L290 TraceCheckUtils]: 24: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:17,073 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {740#true} {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} #111#return; {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:17,073 INFO L290 TraceCheckUtils]: 26: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} main_~a0~0#1.base, main_~a0~0#1.offset := main_#t~malloc16#1.base, main_#t~malloc16#1.offset;havoc main_~i~1#1;main_~i~1#1 := 0; {757#(and (= |ULTIMATE.start_main_~i~1#1| 0) (<= 2 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:17,074 INFO L290 TraceCheckUtils]: 27: Hoare triple {757#(and (= |ULTIMATE.start_main_~i~1#1| 0) (<= 2 |ULTIMATE.start_main_~n~0#1|))} assume !!(main_~i~1#1 < main_~n~0#1);call main_#t~mem18#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~1#1, 4);call write~int(main_#t~mem18#1, main_~a0~0#1.base, main_~a0~0#1.offset + 4 * main_~i~1#1, 4);havoc main_#t~mem18#1; {757#(and (= |ULTIMATE.start_main_~i~1#1| 0) (<= 2 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:17,078 INFO L290 TraceCheckUtils]: 28: Hoare triple {757#(and (= |ULTIMATE.start_main_~i~1#1| 0) (<= 2 |ULTIMATE.start_main_~n~0#1|))} main_#t~post17#1 := main_~i~1#1;main_~i~1#1 := 1 + main_#t~post17#1;havoc main_#t~post17#1; {758#(<= (+ |ULTIMATE.start_main_~i~1#1| 1) |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:17,078 INFO L290 TraceCheckUtils]: 29: Hoare triple {758#(<= (+ |ULTIMATE.start_main_~i~1#1| 1) |ULTIMATE.start_main_~n~0#1|)} assume !(main_~i~1#1 < main_~n~0#1); {741#false} is VALID [2022-02-20 18:18:17,079 INFO L272 TraceCheckUtils]: 30: Hoare triple {741#false} call upsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {770#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:17,079 INFO L290 TraceCheckUtils]: 31: Hoare triple {770#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right; {740#true} is VALID [2022-02-20 18:18:17,079 INFO L290 TraceCheckUtils]: 32: Hoare triple {740#true} assume !(~right > 1 + ~left); {740#true} is VALID [2022-02-20 18:18:17,079 INFO L290 TraceCheckUtils]: 33: Hoare triple {740#true} call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem5;havoc #t~mem6; {740#true} is VALID [2022-02-20 18:18:17,079 INFO L290 TraceCheckUtils]: 34: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:17,079 INFO L284 TraceCheckUtils]: 35: Hoare quadruple {740#true} {741#false} #113#return; {741#false} is VALID [2022-02-20 18:18:17,080 INFO L290 TraceCheckUtils]: 36: Hoare triple {741#false} call write~int(0, main_~a~0#1.base, main_~a~0#1.offset + 4 * (main_~n~0#1 - 1), 4); {741#false} is VALID [2022-02-20 18:18:17,080 INFO L272 TraceCheckUtils]: 37: Hoare triple {741#false} call downsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {770#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:17,080 INFO L290 TraceCheckUtils]: 38: Hoare triple {770#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right, 4);~tmp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~tmp~0, ~a.base, ~a.offset + 4 * ~left, 4); {740#true} is VALID [2022-02-20 18:18:17,080 INFO L290 TraceCheckUtils]: 39: Hoare triple {740#true} assume !(~right > 1 + ~left); {740#true} is VALID [2022-02-20 18:18:17,080 INFO L290 TraceCheckUtils]: 40: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:17,080 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {740#true} {741#false} #115#return; {741#false} is VALID [2022-02-20 18:18:17,080 INFO L290 TraceCheckUtils]: 42: Hoare triple {741#false} assume { :begin_inline_check } true;check_#in~a0#1.base, check_#in~a0#1.offset, check_#in~a#1.base, check_#in~a#1.offset, check_#in~n#1 := main_~a0~0#1.base, main_~a0~0#1.offset, main_~a~0#1.base, main_~a~0#1.offset, main_~n~0#1;havoc check_#t~mem11#1, check_#t~mem12#1, check_#t~post10#1, check_~a0#1.base, check_~a0#1.offset, check_~a#1.base, check_~a#1.offset, check_~n#1, check_~i~0#1, check_~sum~0#1;check_~a0#1.base, check_~a0#1.offset := check_#in~a0#1.base, check_#in~a0#1.offset;check_~a#1.base, check_~a#1.offset := check_#in~a#1.base, check_#in~a#1.offset;check_~n#1 := check_#in~n#1;havoc check_~i~0#1;check_~sum~0#1 := 0;check_~i~0#1 := 0; {741#false} is VALID [2022-02-20 18:18:17,081 INFO L290 TraceCheckUtils]: 43: Hoare triple {741#false} assume !!(check_~i~0#1 < check_~n#1);call check_#t~mem11#1 := read~int(check_~a#1.base, check_~a#1.offset + 4 * check_~i~0#1, 4);assume { :begin_inline___VERIFIER_assert } true;__VERIFIER_assert_#in~cond#1 := (if check_~sum~0#1 == check_#t~mem11#1 then 1 else 0);havoc __VERIFIER_assert_~cond#1;__VERIFIER_assert_~cond#1 := __VERIFIER_assert_#in~cond#1; {741#false} is VALID [2022-02-20 18:18:17,081 INFO L290 TraceCheckUtils]: 44: Hoare triple {741#false} assume 0 == __VERIFIER_assert_~cond#1; {741#false} is VALID [2022-02-20 18:18:17,081 INFO L290 TraceCheckUtils]: 45: Hoare triple {741#false} assume !false; {741#false} is VALID [2022-02-20 18:18:17,081 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 0 proven. 4 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 18:18:17,082 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 18:18:17,082 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1439714798] [2022-02-20 18:18:17,082 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1439714798] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 18:18:17,082 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [690591959] [2022-02-20 18:18:17,082 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:18:17,083 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 18:18:17,083 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 18:18:17,085 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-02-20 18:18:17,086 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-02-20 18:18:17,167 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:17,170 INFO L263 TraceCheckSpWp]: Trace formula consists of 222 conjuncts, 8 conjunts are in the unsatisfiable core [2022-02-20 18:18:17,211 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:17,215 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 18:18:17,649 INFO L290 TraceCheckUtils]: 0: Hoare triple {740#true} assume { :begin_inline_ULTIMATE.init } 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(16, 2);call #Ultimate.allocInit(12, 3); {740#true} is VALID [2022-02-20 18:18:17,649 INFO L290 TraceCheckUtils]: 1: Hoare triple {740#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet13#1, main_#t~ret14#1, main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_#t~mem18#1, main_#t~post17#1, main_~n~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~a0~0#1.base, main_~a0~0#1.offset, main_~i~1#1;assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~n~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {740#true} is VALID [2022-02-20 18:18:17,649 INFO L272 TraceCheckUtils]: 2: Hoare triple {740#true} call assume_abort_if_not((if main_~n~0#1 > 1 && main_~n~0#1 < 1073741824 then 1 else 0)); {740#true} is VALID [2022-02-20 18:18:17,650 INFO L290 TraceCheckUtils]: 3: Hoare triple {740#true} ~cond := #in~cond; {768#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-02-20 18:18:17,650 INFO L290 TraceCheckUtils]: 4: Hoare triple {768#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {769#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 18:18:17,650 INFO L290 TraceCheckUtils]: 5: Hoare triple {769#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {769#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 18:18:17,651 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {769#(not (= |assume_abort_if_not_#in~cond| 0))} {740#true} #105#return; {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:17,651 INFO L290 TraceCheckUtils]: 7: Hoare triple {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} assume { :begin_inline_is_pow2 } true;is_pow2_#in~x#1 := main_~n~0#1;havoc is_pow2_#res#1;havoc is_pow2_~x#1;is_pow2_~x#1 := is_pow2_#in~x#1; {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:17,652 INFO L290 TraceCheckUtils]: 8: Hoare triple {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} assume !(0 == (if is_pow2_~x#1 % 4294967296 < 0 && 0 != is_pow2_~x#1 % 4294967296 % 2 then is_pow2_~x#1 % 4294967296 % 2 - 2 else is_pow2_~x#1 % 4294967296 % 2) % 4294967296 && is_pow2_~x#1 % 4294967296 > 1); {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:17,652 INFO L290 TraceCheckUtils]: 9: Hoare triple {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} is_pow2_#res#1 := (if 1 == is_pow2_~x#1 % 4294967296 then 1 else 0); {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:17,653 INFO L290 TraceCheckUtils]: 10: Hoare triple {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} main_#t~ret14#1 := is_pow2_#res#1;assume { :end_inline_is_pow2 } true;assume -2147483648 <= main_#t~ret14#1 && main_#t~ret14#1 <= 2147483647; {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:17,653 INFO L272 TraceCheckUtils]: 11: Hoare triple {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} call assume_abort_if_not(main_#t~ret14#1); {740#true} is VALID [2022-02-20 18:18:17,653 INFO L290 TraceCheckUtils]: 12: Hoare triple {740#true} ~cond := #in~cond; {740#true} is VALID [2022-02-20 18:18:17,653 INFO L290 TraceCheckUtils]: 13: Hoare triple {740#true} assume !(0 == ~cond); {740#true} is VALID [2022-02-20 18:18:17,653 INFO L290 TraceCheckUtils]: 14: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:17,654 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {740#true} {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} #107#return; {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:17,654 INFO L290 TraceCheckUtils]: 16: Hoare triple {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} havoc main_#t~ret14#1;call main_#t~malloc15#1.base, main_#t~malloc15#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:17,654 INFO L272 TraceCheckUtils]: 17: Hoare triple {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} call #Ultimate.meminit(main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {740#true} is VALID [2022-02-20 18:18:17,654 INFO L290 TraceCheckUtils]: 18: Hoare triple {740#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {740#true} is VALID [2022-02-20 18:18:17,655 INFO L290 TraceCheckUtils]: 19: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:17,655 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {740#true} {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} #109#return; {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:17,656 INFO L290 TraceCheckUtils]: 21: Hoare triple {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc15#1.base, main_#t~malloc15#1.offset;call main_#t~malloc16#1.base, main_#t~malloc16#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:17,656 INFO L272 TraceCheckUtils]: 22: Hoare triple {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} call #Ultimate.meminit(main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {740#true} is VALID [2022-02-20 18:18:17,656 INFO L290 TraceCheckUtils]: 23: Hoare triple {740#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {740#true} is VALID [2022-02-20 18:18:17,656 INFO L290 TraceCheckUtils]: 24: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:17,657 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {740#true} {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} #111#return; {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:17,657 INFO L290 TraceCheckUtils]: 26: Hoare triple {792#(and (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} main_~a0~0#1.base, main_~a0~0#1.offset := main_#t~malloc16#1.base, main_#t~malloc16#1.offset;havoc main_~i~1#1;main_~i~1#1 := 0; {853#(and (<= |ULTIMATE.start_main_~i~1#1| 0) (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:17,658 INFO L290 TraceCheckUtils]: 27: Hoare triple {853#(and (<= |ULTIMATE.start_main_~i~1#1| 0) (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} assume !!(main_~i~1#1 < main_~n~0#1);call main_#t~mem18#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~1#1, 4);call write~int(main_#t~mem18#1, main_~a0~0#1.base, main_~a0~0#1.offset + 4 * main_~i~1#1, 4);havoc main_#t~mem18#1; {853#(and (<= |ULTIMATE.start_main_~i~1#1| 0) (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:17,659 INFO L290 TraceCheckUtils]: 28: Hoare triple {853#(and (<= |ULTIMATE.start_main_~i~1#1| 0) (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} main_#t~post17#1 := main_~i~1#1;main_~i~1#1 := 1 + main_#t~post17#1;havoc main_#t~post17#1; {860#(and (<= |ULTIMATE.start_main_~i~1#1| 1) (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:17,659 INFO L290 TraceCheckUtils]: 29: Hoare triple {860#(and (<= |ULTIMATE.start_main_~i~1#1| 1) (< |ULTIMATE.start_main_~n~0#1| 1073741824) (< 1 |ULTIMATE.start_main_~n~0#1|))} assume !(main_~i~1#1 < main_~n~0#1); {741#false} is VALID [2022-02-20 18:18:17,659 INFO L272 TraceCheckUtils]: 30: Hoare triple {741#false} call upsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {741#false} is VALID [2022-02-20 18:18:17,659 INFO L290 TraceCheckUtils]: 31: Hoare triple {741#false} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right; {741#false} is VALID [2022-02-20 18:18:17,660 INFO L290 TraceCheckUtils]: 32: Hoare triple {741#false} assume !(~right > 1 + ~left); {741#false} is VALID [2022-02-20 18:18:17,660 INFO L290 TraceCheckUtils]: 33: Hoare triple {741#false} call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem5;havoc #t~mem6; {741#false} is VALID [2022-02-20 18:18:17,660 INFO L290 TraceCheckUtils]: 34: Hoare triple {741#false} assume true; {741#false} is VALID [2022-02-20 18:18:17,660 INFO L284 TraceCheckUtils]: 35: Hoare quadruple {741#false} {741#false} #113#return; {741#false} is VALID [2022-02-20 18:18:17,660 INFO L290 TraceCheckUtils]: 36: Hoare triple {741#false} call write~int(0, main_~a~0#1.base, main_~a~0#1.offset + 4 * (main_~n~0#1 - 1), 4); {741#false} is VALID [2022-02-20 18:18:17,660 INFO L272 TraceCheckUtils]: 37: Hoare triple {741#false} call downsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {741#false} is VALID [2022-02-20 18:18:17,660 INFO L290 TraceCheckUtils]: 38: Hoare triple {741#false} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right, 4);~tmp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~tmp~0, ~a.base, ~a.offset + 4 * ~left, 4); {741#false} is VALID [2022-02-20 18:18:17,660 INFO L290 TraceCheckUtils]: 39: Hoare triple {741#false} assume !(~right > 1 + ~left); {741#false} is VALID [2022-02-20 18:18:17,660 INFO L290 TraceCheckUtils]: 40: Hoare triple {741#false} assume true; {741#false} is VALID [2022-02-20 18:18:17,660 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {741#false} {741#false} #115#return; {741#false} is VALID [2022-02-20 18:18:17,660 INFO L290 TraceCheckUtils]: 42: Hoare triple {741#false} assume { :begin_inline_check } true;check_#in~a0#1.base, check_#in~a0#1.offset, check_#in~a#1.base, check_#in~a#1.offset, check_#in~n#1 := main_~a0~0#1.base, main_~a0~0#1.offset, main_~a~0#1.base, main_~a~0#1.offset, main_~n~0#1;havoc check_#t~mem11#1, check_#t~mem12#1, check_#t~post10#1, check_~a0#1.base, check_~a0#1.offset, check_~a#1.base, check_~a#1.offset, check_~n#1, check_~i~0#1, check_~sum~0#1;check_~a0#1.base, check_~a0#1.offset := check_#in~a0#1.base, check_#in~a0#1.offset;check_~a#1.base, check_~a#1.offset := check_#in~a#1.base, check_#in~a#1.offset;check_~n#1 := check_#in~n#1;havoc check_~i~0#1;check_~sum~0#1 := 0;check_~i~0#1 := 0; {741#false} is VALID [2022-02-20 18:18:17,661 INFO L290 TraceCheckUtils]: 43: Hoare triple {741#false} assume !!(check_~i~0#1 < check_~n#1);call check_#t~mem11#1 := read~int(check_~a#1.base, check_~a#1.offset + 4 * check_~i~0#1, 4);assume { :begin_inline___VERIFIER_assert } true;__VERIFIER_assert_#in~cond#1 := (if check_~sum~0#1 == check_#t~mem11#1 then 1 else 0);havoc __VERIFIER_assert_~cond#1;__VERIFIER_assert_~cond#1 := __VERIFIER_assert_#in~cond#1; {741#false} is VALID [2022-02-20 18:18:17,661 INFO L290 TraceCheckUtils]: 44: Hoare triple {741#false} assume 0 == __VERIFIER_assert_~cond#1; {741#false} is VALID [2022-02-20 18:18:17,661 INFO L290 TraceCheckUtils]: 45: Hoare triple {741#false} assume !false; {741#false} is VALID [2022-02-20 18:18:17,661 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 0 proven. 4 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 18:18:17,661 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 18:18:18,144 INFO L290 TraceCheckUtils]: 45: Hoare triple {741#false} assume !false; {741#false} is VALID [2022-02-20 18:18:18,144 INFO L290 TraceCheckUtils]: 44: Hoare triple {741#false} assume 0 == __VERIFIER_assert_~cond#1; {741#false} is VALID [2022-02-20 18:18:18,144 INFO L290 TraceCheckUtils]: 43: Hoare triple {741#false} assume !!(check_~i~0#1 < check_~n#1);call check_#t~mem11#1 := read~int(check_~a#1.base, check_~a#1.offset + 4 * check_~i~0#1, 4);assume { :begin_inline___VERIFIER_assert } true;__VERIFIER_assert_#in~cond#1 := (if check_~sum~0#1 == check_#t~mem11#1 then 1 else 0);havoc __VERIFIER_assert_~cond#1;__VERIFIER_assert_~cond#1 := __VERIFIER_assert_#in~cond#1; {741#false} is VALID [2022-02-20 18:18:18,144 INFO L290 TraceCheckUtils]: 42: Hoare triple {741#false} assume { :begin_inline_check } true;check_#in~a0#1.base, check_#in~a0#1.offset, check_#in~a#1.base, check_#in~a#1.offset, check_#in~n#1 := main_~a0~0#1.base, main_~a0~0#1.offset, main_~a~0#1.base, main_~a~0#1.offset, main_~n~0#1;havoc check_#t~mem11#1, check_#t~mem12#1, check_#t~post10#1, check_~a0#1.base, check_~a0#1.offset, check_~a#1.base, check_~a#1.offset, check_~n#1, check_~i~0#1, check_~sum~0#1;check_~a0#1.base, check_~a0#1.offset := check_#in~a0#1.base, check_#in~a0#1.offset;check_~a#1.base, check_~a#1.offset := check_#in~a#1.base, check_#in~a#1.offset;check_~n#1 := check_#in~n#1;havoc check_~i~0#1;check_~sum~0#1 := 0;check_~i~0#1 := 0; {741#false} is VALID [2022-02-20 18:18:18,147 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {740#true} {741#false} #115#return; {741#false} is VALID [2022-02-20 18:18:18,148 INFO L290 TraceCheckUtils]: 40: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:18,149 INFO L290 TraceCheckUtils]: 39: Hoare triple {740#true} assume !(~right > 1 + ~left); {740#true} is VALID [2022-02-20 18:18:18,150 INFO L290 TraceCheckUtils]: 38: Hoare triple {740#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right, 4);~tmp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~tmp~0, ~a.base, ~a.offset + 4 * ~left, 4); {740#true} is VALID [2022-02-20 18:18:18,150 INFO L272 TraceCheckUtils]: 37: Hoare triple {741#false} call downsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {740#true} is VALID [2022-02-20 18:18:18,150 INFO L290 TraceCheckUtils]: 36: Hoare triple {741#false} call write~int(0, main_~a~0#1.base, main_~a~0#1.offset + 4 * (main_~n~0#1 - 1), 4); {741#false} is VALID [2022-02-20 18:18:18,150 INFO L284 TraceCheckUtils]: 35: Hoare quadruple {740#true} {741#false} #113#return; {741#false} is VALID [2022-02-20 18:18:18,151 INFO L290 TraceCheckUtils]: 34: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:18,151 INFO L290 TraceCheckUtils]: 33: Hoare triple {740#true} call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem5;havoc #t~mem6; {740#true} is VALID [2022-02-20 18:18:18,151 INFO L290 TraceCheckUtils]: 32: Hoare triple {740#true} assume !(~right > 1 + ~left); {740#true} is VALID [2022-02-20 18:18:18,151 INFO L290 TraceCheckUtils]: 31: Hoare triple {740#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right; {740#true} is VALID [2022-02-20 18:18:18,152 INFO L272 TraceCheckUtils]: 30: Hoare triple {741#false} call upsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {740#true} is VALID [2022-02-20 18:18:18,152 INFO L290 TraceCheckUtils]: 29: Hoare triple {758#(<= (+ |ULTIMATE.start_main_~i~1#1| 1) |ULTIMATE.start_main_~n~0#1|)} assume !(main_~i~1#1 < main_~n~0#1); {741#false} is VALID [2022-02-20 18:18:18,153 INFO L290 TraceCheckUtils]: 28: Hoare triple {963#(<= (+ 2 |ULTIMATE.start_main_~i~1#1|) |ULTIMATE.start_main_~n~0#1|)} main_#t~post17#1 := main_~i~1#1;main_~i~1#1 := 1 + main_#t~post17#1;havoc main_#t~post17#1; {758#(<= (+ |ULTIMATE.start_main_~i~1#1| 1) |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:18,154 INFO L290 TraceCheckUtils]: 27: Hoare triple {963#(<= (+ 2 |ULTIMATE.start_main_~i~1#1|) |ULTIMATE.start_main_~n~0#1|)} assume !!(main_~i~1#1 < main_~n~0#1);call main_#t~mem18#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~1#1, 4);call write~int(main_#t~mem18#1, main_~a0~0#1.base, main_~a0~0#1.offset + 4 * main_~i~1#1, 4);havoc main_#t~mem18#1; {963#(<= (+ 2 |ULTIMATE.start_main_~i~1#1|) |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:18,154 INFO L290 TraceCheckUtils]: 26: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} main_~a0~0#1.base, main_~a0~0#1.offset := main_#t~malloc16#1.base, main_#t~malloc16#1.offset;havoc main_~i~1#1;main_~i~1#1 := 0; {963#(<= (+ 2 |ULTIMATE.start_main_~i~1#1|) |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:18,155 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {740#true} {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} #111#return; {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:18,155 INFO L290 TraceCheckUtils]: 24: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:18,155 INFO L290 TraceCheckUtils]: 23: Hoare triple {740#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {740#true} is VALID [2022-02-20 18:18:18,155 INFO L272 TraceCheckUtils]: 22: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} call #Ultimate.meminit(main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {740#true} is VALID [2022-02-20 18:18:18,155 INFO L290 TraceCheckUtils]: 21: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc15#1.base, main_#t~malloc15#1.offset;call main_#t~malloc16#1.base, main_#t~malloc16#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:18,156 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {740#true} {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} #109#return; {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:18,156 INFO L290 TraceCheckUtils]: 19: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:18,156 INFO L290 TraceCheckUtils]: 18: Hoare triple {740#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {740#true} is VALID [2022-02-20 18:18:18,157 INFO L272 TraceCheckUtils]: 17: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} call #Ultimate.meminit(main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {740#true} is VALID [2022-02-20 18:18:18,157 INFO L290 TraceCheckUtils]: 16: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} havoc main_#t~ret14#1;call main_#t~malloc15#1.base, main_#t~malloc15#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:18,157 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {740#true} {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} #107#return; {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:18,158 INFO L290 TraceCheckUtils]: 14: Hoare triple {740#true} assume true; {740#true} is VALID [2022-02-20 18:18:18,158 INFO L290 TraceCheckUtils]: 13: Hoare triple {740#true} assume !(0 == ~cond); {740#true} is VALID [2022-02-20 18:18:18,158 INFO L290 TraceCheckUtils]: 12: Hoare triple {740#true} ~cond := #in~cond; {740#true} is VALID [2022-02-20 18:18:18,158 INFO L272 TraceCheckUtils]: 11: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} call assume_abort_if_not(main_#t~ret14#1); {740#true} is VALID [2022-02-20 18:18:18,159 INFO L290 TraceCheckUtils]: 10: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} main_#t~ret14#1 := is_pow2_#res#1;assume { :end_inline_is_pow2 } true;assume -2147483648 <= main_#t~ret14#1 && main_#t~ret14#1 <= 2147483647; {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:18,159 INFO L290 TraceCheckUtils]: 9: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is_pow2_#res#1 := (if 1 == is_pow2_~x#1 % 4294967296 then 1 else 0); {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:18,159 INFO L290 TraceCheckUtils]: 8: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} assume !(0 == (if is_pow2_~x#1 % 4294967296 < 0 && 0 != is_pow2_~x#1 % 4294967296 % 2 then is_pow2_~x#1 % 4294967296 % 2 - 2 else is_pow2_~x#1 % 4294967296 % 2) % 4294967296 && is_pow2_~x#1 % 4294967296 > 1); {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:18,160 INFO L290 TraceCheckUtils]: 7: Hoare triple {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} assume { :begin_inline_is_pow2 } true;is_pow2_#in~x#1 := main_~n~0#1;havoc is_pow2_#res#1;havoc is_pow2_~x#1;is_pow2_~x#1 := is_pow2_#in~x#1; {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:18,161 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {769#(not (= |assume_abort_if_not_#in~cond| 0))} {740#true} #105#return; {746#(<= 2 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:18,161 INFO L290 TraceCheckUtils]: 5: Hoare triple {769#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {769#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 18:18:18,161 INFO L290 TraceCheckUtils]: 4: Hoare triple {1039#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} assume !(0 == ~cond); {769#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 18:18:18,162 INFO L290 TraceCheckUtils]: 3: Hoare triple {740#true} ~cond := #in~cond; {1039#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} is VALID [2022-02-20 18:18:18,162 INFO L272 TraceCheckUtils]: 2: Hoare triple {740#true} call assume_abort_if_not((if main_~n~0#1 > 1 && main_~n~0#1 < 1073741824 then 1 else 0)); {740#true} is VALID [2022-02-20 18:18:18,162 INFO L290 TraceCheckUtils]: 1: Hoare triple {740#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet13#1, main_#t~ret14#1, main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_#t~mem18#1, main_#t~post17#1, main_~n~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~a0~0#1.base, main_~a0~0#1.offset, main_~i~1#1;assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~n~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {740#true} is VALID [2022-02-20 18:18:18,162 INFO L290 TraceCheckUtils]: 0: Hoare triple {740#true} assume { :begin_inline_ULTIMATE.init } 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(16, 2);call #Ultimate.allocInit(12, 3); {740#true} is VALID [2022-02-20 18:18:18,163 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 0 proven. 4 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 18:18:18,164 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [690591959] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 18:18:18,164 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 18:18:18,164 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 7, 7] total 13 [2022-02-20 18:18:18,164 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1354670934] [2022-02-20 18:18:18,164 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 18:18:18,165 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 13 states have (on average 4.384615384615385) internal successors, (57), 12 states have internal predecessors, (57), 4 states have call successors, (15), 3 states have call predecessors, (15), 3 states have return successors, (12), 3 states have call predecessors, (12), 4 states have call successors, (12) Word has length 46 [2022-02-20 18:18:18,170 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 18:18:18,171 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 13 states, 13 states have (on average 4.384615384615385) internal successors, (57), 12 states have internal predecessors, (57), 4 states have call successors, (15), 3 states have call predecessors, (15), 3 states have return successors, (12), 3 states have call predecessors, (12), 4 states have call successors, (12) [2022-02-20 18:18:18,234 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 84 edges. 84 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:18:18,234 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-02-20 18:18:18,235 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 18:18:18,235 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-02-20 18:18:18,235 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=38, Invalid=118, Unknown=0, NotChecked=0, Total=156 [2022-02-20 18:18:18,236 INFO L87 Difference]: Start difference. First operand 46 states and 56 transitions. Second operand has 13 states, 13 states have (on average 4.384615384615385) internal successors, (57), 12 states have internal predecessors, (57), 4 states have call successors, (15), 3 states have call predecessors, (15), 3 states have return successors, (12), 3 states have call predecessors, (12), 4 states have call successors, (12) [2022-02-20 18:18:25,256 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:18:25,256 INFO L93 Difference]: Finished difference Result 73 states and 90 transitions. [2022-02-20 18:18:25,256 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-02-20 18:18:25,256 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 13 states have (on average 4.384615384615385) internal successors, (57), 12 states have internal predecessors, (57), 4 states have call successors, (15), 3 states have call predecessors, (15), 3 states have return successors, (12), 3 states have call predecessors, (12), 4 states have call successors, (12) Word has length 46 [2022-02-20 18:18:25,256 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 18:18:25,257 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 13 states have (on average 4.384615384615385) internal successors, (57), 12 states have internal predecessors, (57), 4 states have call successors, (15), 3 states have call predecessors, (15), 3 states have return successors, (12), 3 states have call predecessors, (12), 4 states have call successors, (12) [2022-02-20 18:18:25,259 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 90 transitions. [2022-02-20 18:18:25,259 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 13 states have (on average 4.384615384615385) internal successors, (57), 12 states have internal predecessors, (57), 4 states have call successors, (15), 3 states have call predecessors, (15), 3 states have return successors, (12), 3 states have call predecessors, (12), 4 states have call successors, (12) [2022-02-20 18:18:25,261 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 90 transitions. [2022-02-20 18:18:25,261 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 90 transitions. [2022-02-20 18:18:25,352 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 90 edges. 90 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 18:18:25,354 INFO L225 Difference]: With dead ends: 73 [2022-02-20 18:18:25,354 INFO L226 Difference]: Without dead ends: 50 [2022-02-20 18:18:25,355 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 112 GetRequests, 96 SyntacticMatches, 1 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 44 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=67, Invalid=205, Unknown=0, NotChecked=0, Total=272 [2022-02-20 18:18:25,356 INFO L933 BasicCegarLoop]: 41 mSDtfsCounter, 28 mSDsluCounter, 171 mSDsCounter, 0 mSdLazyCounter, 107 mSolverCounterSat, 14 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 30 SdHoareTripleChecker+Valid, 212 SdHoareTripleChecker+Invalid, 121 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 14 IncrementalHoareTripleChecker+Valid, 107 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 18:18:25,356 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [30 Valid, 212 Invalid, 121 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [14 Valid, 107 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 18:18:25,357 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 50 states. [2022-02-20 18:18:25,375 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 50 to 48. [2022-02-20 18:18:25,375 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 18:18:25,376 INFO L82 GeneralOperation]: Start isEquivalent. First operand 50 states. Second operand has 48 states, 33 states have (on average 1.1515151515151516) internal successors, (38), 35 states have internal predecessors, (38), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 18:18:25,380 INFO L74 IsIncluded]: Start isIncluded. First operand 50 states. Second operand has 48 states, 33 states have (on average 1.1515151515151516) internal successors, (38), 35 states have internal predecessors, (38), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 18:18:25,380 INFO L87 Difference]: Start difference. First operand 50 states. Second operand has 48 states, 33 states have (on average 1.1515151515151516) internal successors, (38), 35 states have internal predecessors, (38), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 18:18:25,384 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:18:25,384 INFO L93 Difference]: Finished difference Result 50 states and 60 transitions. [2022-02-20 18:18:25,384 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 60 transitions. [2022-02-20 18:18:25,385 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:18:25,385 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:18:25,385 INFO L74 IsIncluded]: Start isIncluded. First operand has 48 states, 33 states have (on average 1.1515151515151516) internal successors, (38), 35 states have internal predecessors, (38), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand 50 states. [2022-02-20 18:18:25,385 INFO L87 Difference]: Start difference. First operand has 48 states, 33 states have (on average 1.1515151515151516) internal successors, (38), 35 states have internal predecessors, (38), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand 50 states. [2022-02-20 18:18:25,389 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:18:25,389 INFO L93 Difference]: Finished difference Result 50 states and 60 transitions. [2022-02-20 18:18:25,389 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 60 transitions. [2022-02-20 18:18:25,393 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:18:25,393 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:18:25,393 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 18:18:25,393 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 18:18:25,394 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 48 states, 33 states have (on average 1.1515151515151516) internal successors, (38), 35 states have internal predecessors, (38), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 18:18:25,397 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 58 transitions. [2022-02-20 18:18:25,400 INFO L78 Accepts]: Start accepts. Automaton has 48 states and 58 transitions. Word has length 46 [2022-02-20 18:18:25,400 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 18:18:25,400 INFO L470 AbstractCegarLoop]: Abstraction has 48 states and 58 transitions. [2022-02-20 18:18:25,400 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 13 states, 13 states have (on average 4.384615384615385) internal successors, (57), 12 states have internal predecessors, (57), 4 states have call successors, (15), 3 states have call predecessors, (15), 3 states have return successors, (12), 3 states have call predecessors, (12), 4 states have call successors, (12) [2022-02-20 18:18:25,401 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 58 transitions. [2022-02-20 18:18:25,401 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-02-20 18:18:25,403 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 18:18:25,404 INFO L514 BasicCegarLoop]: 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] [2022-02-20 18:18:25,430 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Ended with exit code 0 [2022-02-20 18:18:25,623 WARN L452 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-02-20 18:18:25,624 INFO L402 AbstractCegarLoop]: === Iteration 4 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 18:18:25,624 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 18:18:25,624 INFO L85 PathProgramCache]: Analyzing trace with hash 1298139546, now seen corresponding path program 2 times [2022-02-20 18:18:25,624 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 18:18:25,624 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [953554801] [2022-02-20 18:18:25,624 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:18:25,625 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 18:18:25,682 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:25,915 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 18:18:25,916 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:25,921 INFO L290 TraceCheckUtils]: 0: Hoare triple {1326#true} ~cond := #in~cond; {1326#true} is VALID [2022-02-20 18:18:25,921 INFO L290 TraceCheckUtils]: 1: Hoare triple {1326#true} assume !(0 == ~cond); {1326#true} is VALID [2022-02-20 18:18:25,921 INFO L290 TraceCheckUtils]: 2: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:25,921 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1326#true} {1326#true} #105#return; {1326#true} is VALID [2022-02-20 18:18:25,921 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 18:18:25,922 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:25,928 INFO L290 TraceCheckUtils]: 0: Hoare triple {1326#true} ~cond := #in~cond; {1326#true} is VALID [2022-02-20 18:18:25,928 INFO L290 TraceCheckUtils]: 1: Hoare triple {1326#true} assume !(0 == ~cond); {1326#true} is VALID [2022-02-20 18:18:25,928 INFO L290 TraceCheckUtils]: 2: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:25,929 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1326#true} {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} #107#return; {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:18:25,936 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-02-20 18:18:25,939 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:25,945 INFO L290 TraceCheckUtils]: 0: Hoare triple {1358#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1326#true} is VALID [2022-02-20 18:18:25,946 INFO L290 TraceCheckUtils]: 1: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:25,947 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1326#true} {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} #109#return; {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:18:25,947 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 22 [2022-02-20 18:18:25,950 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:25,954 INFO L290 TraceCheckUtils]: 0: Hoare triple {1358#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1326#true} is VALID [2022-02-20 18:18:25,954 INFO L290 TraceCheckUtils]: 1: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:25,955 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1326#true} {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} #111#return; {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:18:25,955 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 32 [2022-02-20 18:18:25,961 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:25,968 INFO L290 TraceCheckUtils]: 0: Hoare triple {1358#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right; {1326#true} is VALID [2022-02-20 18:18:25,968 INFO L290 TraceCheckUtils]: 1: Hoare triple {1326#true} assume !(~right > 1 + ~left); {1326#true} is VALID [2022-02-20 18:18:25,968 INFO L290 TraceCheckUtils]: 2: Hoare triple {1326#true} call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem5;havoc #t~mem6; {1326#true} is VALID [2022-02-20 18:18:25,969 INFO L290 TraceCheckUtils]: 3: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:25,969 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {1326#true} {1327#false} #113#return; {1327#false} is VALID [2022-02-20 18:18:25,969 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 39 [2022-02-20 18:18:25,971 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:25,979 INFO L290 TraceCheckUtils]: 0: Hoare triple {1358#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right, 4);~tmp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~tmp~0, ~a.base, ~a.offset + 4 * ~left, 4); {1326#true} is VALID [2022-02-20 18:18:25,980 INFO L290 TraceCheckUtils]: 1: Hoare triple {1326#true} assume !(~right > 1 + ~left); {1326#true} is VALID [2022-02-20 18:18:25,980 INFO L290 TraceCheckUtils]: 2: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:25,980 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1326#true} {1327#false} #115#return; {1327#false} is VALID [2022-02-20 18:18:25,980 INFO L290 TraceCheckUtils]: 0: Hoare triple {1326#true} assume { :begin_inline_ULTIMATE.init } 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(16, 2);call #Ultimate.allocInit(12, 3); {1326#true} is VALID [2022-02-20 18:18:25,980 INFO L290 TraceCheckUtils]: 1: Hoare triple {1326#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet13#1, main_#t~ret14#1, main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_#t~mem18#1, main_#t~post17#1, main_~n~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~a0~0#1.base, main_~a0~0#1.offset, main_~i~1#1;assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~n~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {1326#true} is VALID [2022-02-20 18:18:25,980 INFO L272 TraceCheckUtils]: 2: Hoare triple {1326#true} call assume_abort_if_not((if main_~n~0#1 > 1 && main_~n~0#1 < 1073741824 then 1 else 0)); {1326#true} is VALID [2022-02-20 18:18:25,981 INFO L290 TraceCheckUtils]: 3: Hoare triple {1326#true} ~cond := #in~cond; {1326#true} is VALID [2022-02-20 18:18:25,981 INFO L290 TraceCheckUtils]: 4: Hoare triple {1326#true} assume !(0 == ~cond); {1326#true} is VALID [2022-02-20 18:18:25,981 INFO L290 TraceCheckUtils]: 5: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:25,981 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1326#true} {1326#true} #105#return; {1326#true} is VALID [2022-02-20 18:18:25,981 INFO L290 TraceCheckUtils]: 7: Hoare triple {1326#true} assume { :begin_inline_is_pow2 } true;is_pow2_#in~x#1 := main_~n~0#1;havoc is_pow2_#res#1;havoc is_pow2_~x#1;is_pow2_~x#1 := is_pow2_#in~x#1; {1332#(= (+ |ULTIMATE.start_main_~n~0#1| (* |ULTIMATE.start_is_pow2_~x#1| (- 1))) 0)} is VALID [2022-02-20 18:18:25,983 INFO L290 TraceCheckUtils]: 8: Hoare triple {1332#(= (+ |ULTIMATE.start_main_~n~0#1| (* |ULTIMATE.start_is_pow2_~x#1| (- 1))) 0)} assume !(0 == (if is_pow2_~x#1 % 4294967296 < 0 && 0 != is_pow2_~x#1 % 4294967296 % 2 then is_pow2_~x#1 % 4294967296 % 2 - 2 else is_pow2_~x#1 % 4294967296 % 2) % 4294967296 && is_pow2_~x#1 % 4294967296 > 1); {1333#(and (or (<= (div |ULTIMATE.start_is_pow2_~x#1| 2) 0) (not (<= |ULTIMATE.start_is_pow2_~x#1| (* 2 (div |ULTIMATE.start_is_pow2_~x#1| 2)))) (not (<= (div |ULTIMATE.start_is_pow2_~x#1| 4294967296) 0))) (= |ULTIMATE.start_is_pow2_~x#1| |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:25,984 INFO L290 TraceCheckUtils]: 9: Hoare triple {1333#(and (or (<= (div |ULTIMATE.start_is_pow2_~x#1| 2) 0) (not (<= |ULTIMATE.start_is_pow2_~x#1| (* 2 (div |ULTIMATE.start_is_pow2_~x#1| 2)))) (not (<= (div |ULTIMATE.start_is_pow2_~x#1| 4294967296) 0))) (= |ULTIMATE.start_is_pow2_~x#1| |ULTIMATE.start_main_~n~0#1|))} is_pow2_#res#1 := (if 1 == is_pow2_~x#1 % 4294967296 then 1 else 0); {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:18:25,984 INFO L290 TraceCheckUtils]: 10: Hoare triple {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} main_#t~ret14#1 := is_pow2_#res#1;assume { :end_inline_is_pow2 } true;assume -2147483648 <= main_#t~ret14#1 && main_#t~ret14#1 <= 2147483647; {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:18:25,984 INFO L272 TraceCheckUtils]: 11: Hoare triple {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} call assume_abort_if_not(main_#t~ret14#1); {1326#true} is VALID [2022-02-20 18:18:25,985 INFO L290 TraceCheckUtils]: 12: Hoare triple {1326#true} ~cond := #in~cond; {1326#true} is VALID [2022-02-20 18:18:25,985 INFO L290 TraceCheckUtils]: 13: Hoare triple {1326#true} assume !(0 == ~cond); {1326#true} is VALID [2022-02-20 18:18:25,985 INFO L290 TraceCheckUtils]: 14: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:25,986 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1326#true} {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} #107#return; {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:18:25,986 INFO L290 TraceCheckUtils]: 16: Hoare triple {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} havoc main_#t~ret14#1;call main_#t~malloc15#1.base, main_#t~malloc15#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:18:25,987 INFO L272 TraceCheckUtils]: 17: Hoare triple {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} call #Ultimate.meminit(main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {1358#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:25,987 INFO L290 TraceCheckUtils]: 18: Hoare triple {1358#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1326#true} is VALID [2022-02-20 18:18:25,987 INFO L290 TraceCheckUtils]: 19: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:25,988 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {1326#true} {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} #109#return; {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:18:25,988 INFO L290 TraceCheckUtils]: 21: Hoare triple {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc15#1.base, main_#t~malloc15#1.offset;call main_#t~malloc16#1.base, main_#t~malloc16#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:18:25,989 INFO L272 TraceCheckUtils]: 22: Hoare triple {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} call #Ultimate.meminit(main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {1358#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:25,989 INFO L290 TraceCheckUtils]: 23: Hoare triple {1358#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1326#true} is VALID [2022-02-20 18:18:25,990 INFO L290 TraceCheckUtils]: 24: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:25,990 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {1326#true} {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} #111#return; {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} is VALID [2022-02-20 18:18:25,991 INFO L290 TraceCheckUtils]: 26: Hoare triple {1334#(or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1))} main_~a0~0#1.base, main_~a0~0#1.offset := main_#t~malloc16#1.base, main_#t~malloc16#1.offset;havoc main_~i~1#1;main_~i~1#1 := 0; {1345#(and (or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1)) (= |ULTIMATE.start_main_~i~1#1| 0))} is VALID [2022-02-20 18:18:25,991 INFO L290 TraceCheckUtils]: 27: Hoare triple {1345#(and (or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1)) (= |ULTIMATE.start_main_~i~1#1| 0))} assume !!(main_~i~1#1 < main_~n~0#1);call main_#t~mem18#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~1#1, 4);call write~int(main_#t~mem18#1, main_~a0~0#1.base, main_~a0~0#1.offset + 4 * main_~i~1#1, 4);havoc main_#t~mem18#1; {1345#(and (or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1)) (= |ULTIMATE.start_main_~i~1#1| 0))} is VALID [2022-02-20 18:18:25,992 INFO L290 TraceCheckUtils]: 28: Hoare triple {1345#(and (or (<= 3 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1)) (= |ULTIMATE.start_main_~i~1#1| 0))} main_#t~post17#1 := main_~i~1#1;main_~i~1#1 := 1 + main_#t~post17#1;havoc main_#t~post17#1; {1346#(or (<= |ULTIMATE.start_main_~n~0#1| |ULTIMATE.start_main_~i~1#1|) (<= (+ 2 |ULTIMATE.start_main_~i~1#1|) |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:25,993 INFO L290 TraceCheckUtils]: 29: Hoare triple {1346#(or (<= |ULTIMATE.start_main_~n~0#1| |ULTIMATE.start_main_~i~1#1|) (<= (+ 2 |ULTIMATE.start_main_~i~1#1|) |ULTIMATE.start_main_~n~0#1|))} assume !!(main_~i~1#1 < main_~n~0#1);call main_#t~mem18#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~1#1, 4);call write~int(main_#t~mem18#1, main_~a0~0#1.base, main_~a0~0#1.offset + 4 * main_~i~1#1, 4);havoc main_#t~mem18#1; {1347#(<= (+ 2 |ULTIMATE.start_main_~i~1#1|) |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:25,993 INFO L290 TraceCheckUtils]: 30: Hoare triple {1347#(<= (+ 2 |ULTIMATE.start_main_~i~1#1|) |ULTIMATE.start_main_~n~0#1|)} main_#t~post17#1 := main_~i~1#1;main_~i~1#1 := 1 + main_#t~post17#1;havoc main_#t~post17#1; {1348#(<= (+ |ULTIMATE.start_main_~i~1#1| 1) |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:25,994 INFO L290 TraceCheckUtils]: 31: Hoare triple {1348#(<= (+ |ULTIMATE.start_main_~i~1#1| 1) |ULTIMATE.start_main_~n~0#1|)} assume !(main_~i~1#1 < main_~n~0#1); {1327#false} is VALID [2022-02-20 18:18:25,994 INFO L272 TraceCheckUtils]: 32: Hoare triple {1327#false} call upsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {1358#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:25,994 INFO L290 TraceCheckUtils]: 33: Hoare triple {1358#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right; {1326#true} is VALID [2022-02-20 18:18:25,994 INFO L290 TraceCheckUtils]: 34: Hoare triple {1326#true} assume !(~right > 1 + ~left); {1326#true} is VALID [2022-02-20 18:18:25,994 INFO L290 TraceCheckUtils]: 35: Hoare triple {1326#true} call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem5;havoc #t~mem6; {1326#true} is VALID [2022-02-20 18:18:25,995 INFO L290 TraceCheckUtils]: 36: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:25,995 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {1326#true} {1327#false} #113#return; {1327#false} is VALID [2022-02-20 18:18:25,995 INFO L290 TraceCheckUtils]: 38: Hoare triple {1327#false} call write~int(0, main_~a~0#1.base, main_~a~0#1.offset + 4 * (main_~n~0#1 - 1), 4); {1327#false} is VALID [2022-02-20 18:18:25,995 INFO L272 TraceCheckUtils]: 39: Hoare triple {1327#false} call downsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {1358#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:25,995 INFO L290 TraceCheckUtils]: 40: Hoare triple {1358#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right, 4);~tmp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~tmp~0, ~a.base, ~a.offset + 4 * ~left, 4); {1326#true} is VALID [2022-02-20 18:18:25,995 INFO L290 TraceCheckUtils]: 41: Hoare triple {1326#true} assume !(~right > 1 + ~left); {1326#true} is VALID [2022-02-20 18:18:25,995 INFO L290 TraceCheckUtils]: 42: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:25,996 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {1326#true} {1327#false} #115#return; {1327#false} is VALID [2022-02-20 18:18:25,996 INFO L290 TraceCheckUtils]: 44: Hoare triple {1327#false} assume { :begin_inline_check } true;check_#in~a0#1.base, check_#in~a0#1.offset, check_#in~a#1.base, check_#in~a#1.offset, check_#in~n#1 := main_~a0~0#1.base, main_~a0~0#1.offset, main_~a~0#1.base, main_~a~0#1.offset, main_~n~0#1;havoc check_#t~mem11#1, check_#t~mem12#1, check_#t~post10#1, check_~a0#1.base, check_~a0#1.offset, check_~a#1.base, check_~a#1.offset, check_~n#1, check_~i~0#1, check_~sum~0#1;check_~a0#1.base, check_~a0#1.offset := check_#in~a0#1.base, check_#in~a0#1.offset;check_~a#1.base, check_~a#1.offset := check_#in~a#1.base, check_#in~a#1.offset;check_~n#1 := check_#in~n#1;havoc check_~i~0#1;check_~sum~0#1 := 0;check_~i~0#1 := 0; {1327#false} is VALID [2022-02-20 18:18:25,996 INFO L290 TraceCheckUtils]: 45: Hoare triple {1327#false} assume !!(check_~i~0#1 < check_~n#1);call check_#t~mem11#1 := read~int(check_~a#1.base, check_~a#1.offset + 4 * check_~i~0#1, 4);assume { :begin_inline___VERIFIER_assert } true;__VERIFIER_assert_#in~cond#1 := (if check_~sum~0#1 == check_#t~mem11#1 then 1 else 0);havoc __VERIFIER_assert_~cond#1;__VERIFIER_assert_~cond#1 := __VERIFIER_assert_#in~cond#1; {1327#false} is VALID [2022-02-20 18:18:25,996 INFO L290 TraceCheckUtils]: 46: Hoare triple {1327#false} assume 0 == __VERIFIER_assert_~cond#1; {1327#false} is VALID [2022-02-20 18:18:25,996 INFO L290 TraceCheckUtils]: 47: Hoare triple {1327#false} assume !false; {1327#false} is VALID [2022-02-20 18:18:25,997 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 0 proven. 4 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2022-02-20 18:18:25,997 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 18:18:25,997 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [953554801] [2022-02-20 18:18:25,999 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [953554801] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 18:18:26,001 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2121884223] [2022-02-20 18:18:26,001 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-02-20 18:18:26,002 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 18:18:26,002 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 18:18:26,016 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-02-20 18:18:26,031 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-02-20 18:18:26,116 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-02-20 18:18:26,116 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-02-20 18:18:26,118 INFO L263 TraceCheckSpWp]: Trace formula consists of 229 conjuncts, 50 conjunts are in the unsatisfiable core [2022-02-20 18:18:26,142 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:26,145 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 18:18:26,318 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-02-20 18:18:29,859 INFO L356 Elim1Store]: treesize reduction 40, result has 23.1 percent of original size [2022-02-20 18:18:29,859 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 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 2 case distinctions, treesize of input 45 treesize of output 27 [2022-02-20 18:18:30,808 INFO L356 Elim1Store]: treesize reduction 9, result has 25.0 percent of original size [2022-02-20 18:18:30,808 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 36 treesize of output 23 [2022-02-20 18:18:30,880 INFO L290 TraceCheckUtils]: 0: Hoare triple {1326#true} assume { :begin_inline_ULTIMATE.init } 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(16, 2);call #Ultimate.allocInit(12, 3); {1326#true} is VALID [2022-02-20 18:18:30,881 INFO L290 TraceCheckUtils]: 1: Hoare triple {1326#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet13#1, main_#t~ret14#1, main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_#t~mem18#1, main_#t~post17#1, main_~n~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~a0~0#1.base, main_~a0~0#1.offset, main_~i~1#1;assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~n~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {1326#true} is VALID [2022-02-20 18:18:30,881 INFO L272 TraceCheckUtils]: 2: Hoare triple {1326#true} call assume_abort_if_not((if main_~n~0#1 > 1 && main_~n~0#1 < 1073741824 then 1 else 0)); {1326#true} is VALID [2022-02-20 18:18:30,881 INFO L290 TraceCheckUtils]: 3: Hoare triple {1326#true} ~cond := #in~cond; {1326#true} is VALID [2022-02-20 18:18:30,881 INFO L290 TraceCheckUtils]: 4: Hoare triple {1326#true} assume !(0 == ~cond); {1326#true} is VALID [2022-02-20 18:18:30,881 INFO L290 TraceCheckUtils]: 5: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:30,881 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1326#true} {1326#true} #105#return; {1326#true} is VALID [2022-02-20 18:18:30,881 INFO L290 TraceCheckUtils]: 7: Hoare triple {1326#true} assume { :begin_inline_is_pow2 } true;is_pow2_#in~x#1 := main_~n~0#1;havoc is_pow2_#res#1;havoc is_pow2_~x#1;is_pow2_~x#1 := is_pow2_#in~x#1; {1326#true} is VALID [2022-02-20 18:18:30,881 INFO L290 TraceCheckUtils]: 8: Hoare triple {1326#true} assume !(0 == (if is_pow2_~x#1 % 4294967296 < 0 && 0 != is_pow2_~x#1 % 4294967296 % 2 then is_pow2_~x#1 % 4294967296 % 2 - 2 else is_pow2_~x#1 % 4294967296 % 2) % 4294967296 && is_pow2_~x#1 % 4294967296 > 1); {1326#true} is VALID [2022-02-20 18:18:30,882 INFO L290 TraceCheckUtils]: 9: Hoare triple {1326#true} is_pow2_#res#1 := (if 1 == is_pow2_~x#1 % 4294967296 then 1 else 0); {1326#true} is VALID [2022-02-20 18:18:30,882 INFO L290 TraceCheckUtils]: 10: Hoare triple {1326#true} main_#t~ret14#1 := is_pow2_#res#1;assume { :end_inline_is_pow2 } true;assume -2147483648 <= main_#t~ret14#1 && main_#t~ret14#1 <= 2147483647; {1326#true} is VALID [2022-02-20 18:18:30,882 INFO L272 TraceCheckUtils]: 11: Hoare triple {1326#true} call assume_abort_if_not(main_#t~ret14#1); {1326#true} is VALID [2022-02-20 18:18:30,882 INFO L290 TraceCheckUtils]: 12: Hoare triple {1326#true} ~cond := #in~cond; {1326#true} is VALID [2022-02-20 18:18:30,882 INFO L290 TraceCheckUtils]: 13: Hoare triple {1326#true} assume !(0 == ~cond); {1326#true} is VALID [2022-02-20 18:18:30,882 INFO L290 TraceCheckUtils]: 14: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:30,882 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1326#true} {1326#true} #107#return; {1326#true} is VALID [2022-02-20 18:18:30,882 INFO L290 TraceCheckUtils]: 16: Hoare triple {1326#true} havoc main_#t~ret14#1;call main_#t~malloc15#1.base, main_#t~malloc15#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {1326#true} is VALID [2022-02-20 18:18:30,883 INFO L272 TraceCheckUtils]: 17: Hoare triple {1326#true} call #Ultimate.meminit(main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {1326#true} is VALID [2022-02-20 18:18:30,883 INFO L290 TraceCheckUtils]: 18: Hoare triple {1326#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1326#true} is VALID [2022-02-20 18:18:30,883 INFO L290 TraceCheckUtils]: 19: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:30,883 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {1326#true} {1326#true} #109#return; {1326#true} is VALID [2022-02-20 18:18:30,883 INFO L290 TraceCheckUtils]: 21: Hoare triple {1326#true} main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc15#1.base, main_#t~malloc15#1.offset;call main_#t~malloc16#1.base, main_#t~malloc16#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {1326#true} is VALID [2022-02-20 18:18:30,883 INFO L272 TraceCheckUtils]: 22: Hoare triple {1326#true} call #Ultimate.meminit(main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {1326#true} is VALID [2022-02-20 18:18:30,883 INFO L290 TraceCheckUtils]: 23: Hoare triple {1326#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1326#true} is VALID [2022-02-20 18:18:30,883 INFO L290 TraceCheckUtils]: 24: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:30,884 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {1326#true} {1326#true} #111#return; {1326#true} is VALID [2022-02-20 18:18:30,884 INFO L290 TraceCheckUtils]: 26: Hoare triple {1326#true} main_~a0~0#1.base, main_~a0~0#1.offset := main_#t~malloc16#1.base, main_#t~malloc16#1.offset;havoc main_~i~1#1;main_~i~1#1 := 0; {1440#(<= 0 |ULTIMATE.start_main_~i~1#1|)} is VALID [2022-02-20 18:18:30,884 INFO L290 TraceCheckUtils]: 27: Hoare triple {1440#(<= 0 |ULTIMATE.start_main_~i~1#1|)} assume !!(main_~i~1#1 < main_~n~0#1);call main_#t~mem18#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~1#1, 4);call write~int(main_#t~mem18#1, main_~a0~0#1.base, main_~a0~0#1.offset + 4 * main_~i~1#1, 4);havoc main_#t~mem18#1; {1440#(<= 0 |ULTIMATE.start_main_~i~1#1|)} is VALID [2022-02-20 18:18:30,885 INFO L290 TraceCheckUtils]: 28: Hoare triple {1440#(<= 0 |ULTIMATE.start_main_~i~1#1|)} main_#t~post17#1 := main_~i~1#1;main_~i~1#1 := 1 + main_#t~post17#1;havoc main_#t~post17#1; {1447#(<= 1 |ULTIMATE.start_main_~i~1#1|)} is VALID [2022-02-20 18:18:30,886 INFO L290 TraceCheckUtils]: 29: Hoare triple {1447#(<= 1 |ULTIMATE.start_main_~i~1#1|)} assume !!(main_~i~1#1 < main_~n~0#1);call main_#t~mem18#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~1#1, 4);call write~int(main_#t~mem18#1, main_~a0~0#1.base, main_~a0~0#1.offset + 4 * main_~i~1#1, 4);havoc main_#t~mem18#1; {1451#(< 1 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:30,886 INFO L290 TraceCheckUtils]: 30: Hoare triple {1451#(< 1 |ULTIMATE.start_main_~n~0#1|)} main_#t~post17#1 := main_~i~1#1;main_~i~1#1 := 1 + main_#t~post17#1;havoc main_#t~post17#1; {1451#(< 1 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:30,886 INFO L290 TraceCheckUtils]: 31: Hoare triple {1451#(< 1 |ULTIMATE.start_main_~n~0#1|)} assume !(main_~i~1#1 < main_~n~0#1); {1451#(< 1 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:30,886 INFO L272 TraceCheckUtils]: 32: Hoare triple {1451#(< 1 |ULTIMATE.start_main_~n~0#1|)} call upsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {1326#true} is VALID [2022-02-20 18:18:30,887 INFO L290 TraceCheckUtils]: 33: Hoare triple {1326#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right; {1326#true} is VALID [2022-02-20 18:18:30,887 INFO L290 TraceCheckUtils]: 34: Hoare triple {1326#true} assume !(~right > 1 + ~left); {1326#true} is VALID [2022-02-20 18:18:30,887 INFO L290 TraceCheckUtils]: 35: Hoare triple {1326#true} call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem5;havoc #t~mem6; {1326#true} is VALID [2022-02-20 18:18:30,887 INFO L290 TraceCheckUtils]: 36: Hoare triple {1326#true} assume true; {1326#true} is VALID [2022-02-20 18:18:30,888 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {1326#true} {1451#(< 1 |ULTIMATE.start_main_~n~0#1|)} #113#return; {1451#(< 1 |ULTIMATE.start_main_~n~0#1|)} is VALID [2022-02-20 18:18:30,888 INFO L290 TraceCheckUtils]: 38: Hoare triple {1451#(< 1 |ULTIMATE.start_main_~n~0#1|)} call write~int(0, main_~a~0#1.base, main_~a~0#1.offset + 4 * (main_~n~0#1 - 1), 4); {1479#(and (= (select (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) (+ |ULTIMATE.start_main_~a~0#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4))) 0) (< 1 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:30,889 INFO L272 TraceCheckUtils]: 39: Hoare triple {1479#(and (= (select (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) (+ |ULTIMATE.start_main_~a~0#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4))) 0) (< 1 |ULTIMATE.start_main_~n~0#1|))} call downsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {1358#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:30,890 INFO L290 TraceCheckUtils]: 40: Hoare triple {1358#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right, 4);~tmp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~tmp~0, ~a.base, ~a.offset + 4 * ~left, 4); {1486#(and (= |downsweep_#in~right| downsweep_~right) (<= downsweep_~left |downsweep_#in~left|) (exists ((v_ArrVal_123 Int)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* downsweep_~right 4) |downsweep_#in~a.offset|) v_ArrVal_123) (+ (* downsweep_~left 4) |downsweep_#in~a.offset|) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* downsweep_~right 4) |downsweep_#in~a.offset|)))))))} is VALID [2022-02-20 18:18:32,272 WARN L290 TraceCheckUtils]: 41: Hoare triple {1486#(and (= |downsweep_#in~right| downsweep_~right) (<= downsweep_~left |downsweep_#in~left|) (exists ((v_ArrVal_123 Int)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* downsweep_~right 4) |downsweep_#in~a.offset|) v_ArrVal_123) (+ (* downsweep_~left 4) |downsweep_#in~a.offset|) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* downsweep_~right 4) |downsweep_#in~a.offset|)))))))} assume !(~right > 1 + ~left); {1490#(exists ((v_ArrVal_123 Int) (downsweep_~left Int)) (and (not (< (+ downsweep_~left 1) |downsweep_#in~right|)) (<= downsweep_~left |downsweep_#in~left|) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) v_ArrVal_123) (+ (* downsweep_~left 4) |downsweep_#in~a.offset|) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)))))))} is UNKNOWN [2022-02-20 18:18:34,276 WARN L290 TraceCheckUtils]: 42: Hoare triple {1490#(exists ((v_ArrVal_123 Int) (downsweep_~left Int)) (and (not (< (+ downsweep_~left 1) |downsweep_#in~right|)) (<= downsweep_~left |downsweep_#in~left|) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) v_ArrVal_123) (+ (* downsweep_~left 4) |downsweep_#in~a.offset|) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)))))))} assume true; {1490#(exists ((v_ArrVal_123 Int) (downsweep_~left Int)) (and (not (< (+ downsweep_~left 1) |downsweep_#in~right|)) (<= downsweep_~left |downsweep_#in~left|) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) v_ArrVal_123) (+ (* downsweep_~left 4) |downsweep_#in~a.offset|) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)))))))} is UNKNOWN [2022-02-20 18:18:34,280 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {1490#(exists ((v_ArrVal_123 Int) (downsweep_~left Int)) (and (not (< (+ downsweep_~left 1) |downsweep_#in~right|)) (<= downsweep_~left |downsweep_#in~left|) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) v_ArrVal_123) (+ (* downsweep_~left 4) |downsweep_#in~a.offset|) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)))))))} {1479#(and (= (select (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) (+ |ULTIMATE.start_main_~a~0#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4))) 0) (< 1 |ULTIMATE.start_main_~n~0#1|))} #115#return; {1497#(and (< 1 |ULTIMATE.start_main_~n~0#1|) (exists ((downsweep_~left Int)) (and (not (< (+ downsweep_~left 2) |ULTIMATE.start_main_~n~0#1|)) (<= (+ downsweep_~left 1) (div |ULTIMATE.start_main_~n~0#1| 2)) (= 0 (select (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) (+ |ULTIMATE.start_main_~a~0#1.offset| (* downsweep_~left 4)))))))} is VALID [2022-02-20 18:18:34,281 INFO L290 TraceCheckUtils]: 44: Hoare triple {1497#(and (< 1 |ULTIMATE.start_main_~n~0#1|) (exists ((downsweep_~left Int)) (and (not (< (+ downsweep_~left 2) |ULTIMATE.start_main_~n~0#1|)) (<= (+ downsweep_~left 1) (div |ULTIMATE.start_main_~n~0#1| 2)) (= 0 (select (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) (+ |ULTIMATE.start_main_~a~0#1.offset| (* downsweep_~left 4)))))))} assume { :begin_inline_check } true;check_#in~a0#1.base, check_#in~a0#1.offset, check_#in~a#1.base, check_#in~a#1.offset, check_#in~n#1 := main_~a0~0#1.base, main_~a0~0#1.offset, main_~a~0#1.base, main_~a~0#1.offset, main_~n~0#1;havoc check_#t~mem11#1, check_#t~mem12#1, check_#t~post10#1, check_~a0#1.base, check_~a0#1.offset, check_~a#1.base, check_~a#1.offset, check_~n#1, check_~i~0#1, check_~sum~0#1;check_~a0#1.base, check_~a0#1.offset := check_#in~a0#1.base, check_#in~a0#1.offset;check_~a#1.base, check_~a#1.offset := check_#in~a#1.base, check_#in~a#1.offset;check_~n#1 := check_#in~n#1;havoc check_~i~0#1;check_~sum~0#1 := 0;check_~i~0#1 := 0; {1501#(and (exists ((downsweep_~left Int) (|aux_div_ULTIMATE.start_main_~n~0#1_36| Int)) (and (= (select (select |#memory_int| |ULTIMATE.start_check_~a#1.base|) (+ |ULTIMATE.start_check_~a#1.offset| (* downsweep_~left 4))) 0) (<= |ULTIMATE.start_check_~n#1| (+ downsweep_~left 2)) (<= (* 2 |aux_div_ULTIMATE.start_main_~n~0#1_36|) (+ downsweep_~left 2)) (<= (+ downsweep_~left 1) |aux_div_ULTIMATE.start_main_~n~0#1_36|) (< 0 (* 2 |aux_div_ULTIMATE.start_main_~n~0#1_36|)))) (= |ULTIMATE.start_check_~sum~0#1| 0) (= |ULTIMATE.start_check_~i~0#1| 0))} is VALID [2022-02-20 18:18:34,282 INFO L290 TraceCheckUtils]: 45: Hoare triple {1501#(and (exists ((downsweep_~left Int) (|aux_div_ULTIMATE.start_main_~n~0#1_36| Int)) (and (= (select (select |#memory_int| |ULTIMATE.start_check_~a#1.base|) (+ |ULTIMATE.start_check_~a#1.offset| (* downsweep_~left 4))) 0) (<= |ULTIMATE.start_check_~n#1| (+ downsweep_~left 2)) (<= (* 2 |aux_div_ULTIMATE.start_main_~n~0#1_36|) (+ downsweep_~left 2)) (<= (+ downsweep_~left 1) |aux_div_ULTIMATE.start_main_~n~0#1_36|) (< 0 (* 2 |aux_div_ULTIMATE.start_main_~n~0#1_36|)))) (= |ULTIMATE.start_check_~sum~0#1| 0) (= |ULTIMATE.start_check_~i~0#1| 0))} assume !!(check_~i~0#1 < check_~n#1);call check_#t~mem11#1 := read~int(check_~a#1.base, check_~a#1.offset + 4 * check_~i~0#1, 4);assume { :begin_inline___VERIFIER_assert } true;__VERIFIER_assert_#in~cond#1 := (if check_~sum~0#1 == check_#t~mem11#1 then 1 else 0);havoc __VERIFIER_assert_~cond#1;__VERIFIER_assert_~cond#1 := __VERIFIER_assert_#in~cond#1; {1505#(<= 1 |ULTIMATE.start___VERIFIER_assert_~cond#1|)} is VALID [2022-02-20 18:18:34,283 INFO L290 TraceCheckUtils]: 46: Hoare triple {1505#(<= 1 |ULTIMATE.start___VERIFIER_assert_~cond#1|)} assume 0 == __VERIFIER_assert_~cond#1; {1327#false} is VALID [2022-02-20 18:18:34,283 INFO L290 TraceCheckUtils]: 47: Hoare triple {1327#false} assume !false; {1327#false} is VALID [2022-02-20 18:18:34,283 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 1 proven. 3 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2022-02-20 18:18:34,283 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 18:18:34,974 WARN L756 TransFormulaUtils]: predicate-based correctness check returned UNKNOWN, hence correctness of interprocedural sequential composition was not checked. [2022-02-20 18:18:35,174 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2121884223] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 18:18:35,174 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 18:18:35,174 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 12] total 19 [2022-02-20 18:18:35,174 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1320258176] [2022-02-20 18:18:35,174 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 18:18:35,175 INFO L78 Accepts]: Start accepts. Automaton has has 19 states, 18 states have (on average 2.888888888888889) internal successors, (52), 17 states have internal predecessors, (52), 5 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 5 states have call predecessors, (11), 5 states have call successors, (11) Word has length 48 [2022-02-20 18:18:35,175 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 18:18:35,175 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 19 states, 18 states have (on average 2.888888888888889) internal successors, (52), 17 states have internal predecessors, (52), 5 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 5 states have call predecessors, (11), 5 states have call successors, (11) [2022-02-20 18:18:38,969 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 74 edges. 72 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2022-02-20 18:18:38,969 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 19 states [2022-02-20 18:18:38,969 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 18:18:38,969 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2022-02-20 18:18:38,969 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=53, Invalid=408, Unknown=1, NotChecked=0, Total=462 [2022-02-20 18:18:38,970 INFO L87 Difference]: Start difference. First operand 48 states and 58 transitions. Second operand has 19 states, 18 states have (on average 2.888888888888889) internal successors, (52), 17 states have internal predecessors, (52), 5 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 5 states have call predecessors, (11), 5 states have call successors, (11) [2022-02-20 18:18:41,086 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=false, quantifiers [] [2022-02-20 18:18:45,643 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:18:45,643 INFO L93 Difference]: Finished difference Result 99 states and 127 transitions. [2022-02-20 18:18:45,643 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 25 states. [2022-02-20 18:18:45,644 INFO L78 Accepts]: Start accepts. Automaton has has 19 states, 18 states have (on average 2.888888888888889) internal successors, (52), 17 states have internal predecessors, (52), 5 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 5 states have call predecessors, (11), 5 states have call successors, (11) Word has length 48 [2022-02-20 18:18:45,644 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 18:18:45,644 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 19 states, 18 states have (on average 2.888888888888889) internal successors, (52), 17 states have internal predecessors, (52), 5 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 5 states have call predecessors, (11), 5 states have call successors, (11) [2022-02-20 18:18:45,646 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 25 states to 25 states and 127 transitions. [2022-02-20 18:18:45,646 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 19 states, 18 states have (on average 2.888888888888889) internal successors, (52), 17 states have internal predecessors, (52), 5 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 5 states have call predecessors, (11), 5 states have call successors, (11) [2022-02-20 18:18:45,661 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 25 states to 25 states and 127 transitions. [2022-02-20 18:18:45,661 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 25 states and 127 transitions. [2022-02-20 18:18:49,859 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 127 edges. 125 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2022-02-20 18:18:49,860 INFO L225 Difference]: With dead ends: 99 [2022-02-20 18:18:49,860 INFO L226 Difference]: Without dead ends: 76 [2022-02-20 18:18:49,861 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 86 GetRequests, 52 SyntacticMatches, 1 SemanticMatches, 33 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 205 ImplicationChecksByTransitivity, 3.9s TimeCoverageRelationStatistics Valid=187, Invalid=1002, Unknown=1, NotChecked=0, Total=1190 [2022-02-20 18:18:49,862 INFO L933 BasicCegarLoop]: 45 mSDtfsCounter, 47 mSDsluCounter, 364 mSDsCounter, 0 mSdLazyCounter, 278 mSolverCounterSat, 35 mSolverCounterUnsat, 1 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 2.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 50 SdHoareTripleChecker+Valid, 409 SdHoareTripleChecker+Invalid, 462 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 35 IncrementalHoareTripleChecker+Valid, 278 IncrementalHoareTripleChecker+Invalid, 1 IncrementalHoareTripleChecker+Unknown, 148 IncrementalHoareTripleChecker+Unchecked, 2.4s IncrementalHoareTripleChecker+Time [2022-02-20 18:18:49,862 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [50 Valid, 409 Invalid, 462 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [35 Valid, 278 Invalid, 1 Unknown, 148 Unchecked, 2.4s Time] [2022-02-20 18:18:49,862 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 76 states. [2022-02-20 18:18:49,904 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 76 to 64. [2022-02-20 18:18:49,904 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 18:18:49,904 INFO L82 GeneralOperation]: Start isEquivalent. First operand 76 states. Second operand has 64 states, 45 states have (on average 1.1333333333333333) internal successors, (51), 46 states have internal predecessors, (51), 13 states have call successors, (13), 4 states have call predecessors, (13), 5 states have return successors, (16), 14 states have call predecessors, (16), 13 states have call successors, (16) [2022-02-20 18:18:49,904 INFO L74 IsIncluded]: Start isIncluded. First operand 76 states. Second operand has 64 states, 45 states have (on average 1.1333333333333333) internal successors, (51), 46 states have internal predecessors, (51), 13 states have call successors, (13), 4 states have call predecessors, (13), 5 states have return successors, (16), 14 states have call predecessors, (16), 13 states have call successors, (16) [2022-02-20 18:18:49,905 INFO L87 Difference]: Start difference. First operand 76 states. Second operand has 64 states, 45 states have (on average 1.1333333333333333) internal successors, (51), 46 states have internal predecessors, (51), 13 states have call successors, (13), 4 states have call predecessors, (13), 5 states have return successors, (16), 14 states have call predecessors, (16), 13 states have call successors, (16) [2022-02-20 18:18:49,907 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:18:49,907 INFO L93 Difference]: Finished difference Result 76 states and 96 transitions. [2022-02-20 18:18:49,907 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 96 transitions. [2022-02-20 18:18:49,907 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:18:49,907 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:18:49,908 INFO L74 IsIncluded]: Start isIncluded. First operand has 64 states, 45 states have (on average 1.1333333333333333) internal successors, (51), 46 states have internal predecessors, (51), 13 states have call successors, (13), 4 states have call predecessors, (13), 5 states have return successors, (16), 14 states have call predecessors, (16), 13 states have call successors, (16) Second operand 76 states. [2022-02-20 18:18:49,908 INFO L87 Difference]: Start difference. First operand has 64 states, 45 states have (on average 1.1333333333333333) internal successors, (51), 46 states have internal predecessors, (51), 13 states have call successors, (13), 4 states have call predecessors, (13), 5 states have return successors, (16), 14 states have call predecessors, (16), 13 states have call successors, (16) Second operand 76 states. [2022-02-20 18:18:49,910 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 18:18:49,910 INFO L93 Difference]: Finished difference Result 76 states and 96 transitions. [2022-02-20 18:18:49,910 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 96 transitions. [2022-02-20 18:18:49,911 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 18:18:49,911 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 18:18:49,911 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 18:18:49,911 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 18:18:49,911 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 64 states, 45 states have (on average 1.1333333333333333) internal successors, (51), 46 states have internal predecessors, (51), 13 states have call successors, (13), 4 states have call predecessors, (13), 5 states have return successors, (16), 14 states have call predecessors, (16), 13 states have call successors, (16) [2022-02-20 18:18:49,913 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 64 states to 64 states and 80 transitions. [2022-02-20 18:18:49,913 INFO L78 Accepts]: Start accepts. Automaton has 64 states and 80 transitions. Word has length 48 [2022-02-20 18:18:49,913 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 18:18:49,913 INFO L470 AbstractCegarLoop]: Abstraction has 64 states and 80 transitions. [2022-02-20 18:18:49,913 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 19 states, 18 states have (on average 2.888888888888889) internal successors, (52), 17 states have internal predecessors, (52), 5 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (11), 5 states have call predecessors, (11), 5 states have call successors, (11) [2022-02-20 18:18:49,913 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 80 transitions. [2022-02-20 18:18:49,914 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 54 [2022-02-20 18:18:49,914 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 18:18:49,914 INFO L514 BasicCegarLoop]: 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] [2022-02-20 18:18:49,942 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-02-20 18:18:50,142 WARN L452 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-02-20 18:18:50,144 INFO L402 AbstractCegarLoop]: === Iteration 5 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 18:18:50,145 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 18:18:50,145 INFO L85 PathProgramCache]: Analyzing trace with hash 1879560803, now seen corresponding path program 1 times [2022-02-20 18:18:50,145 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 18:18:50,145 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2120784539] [2022-02-20 18:18:50,145 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:18:50,145 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 18:18:50,280 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:51,549 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 18:18:51,550 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:51,553 INFO L290 TraceCheckUtils]: 0: Hoare triple {1939#true} ~cond := #in~cond; {1939#true} is VALID [2022-02-20 18:18:51,553 INFO L290 TraceCheckUtils]: 1: Hoare triple {1939#true} assume !(0 == ~cond); {1939#true} is VALID [2022-02-20 18:18:51,553 INFO L290 TraceCheckUtils]: 2: Hoare triple {1939#true} assume true; {1939#true} is VALID [2022-02-20 18:18:51,553 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1939#true} {1939#true} #105#return; {1939#true} is VALID [2022-02-20 18:18:51,553 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-02-20 18:18:51,554 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:51,557 INFO L290 TraceCheckUtils]: 0: Hoare triple {1939#true} ~cond := #in~cond; {1939#true} is VALID [2022-02-20 18:18:51,557 INFO L290 TraceCheckUtils]: 1: Hoare triple {1939#true} assume !(0 == ~cond); {1939#true} is VALID [2022-02-20 18:18:51,557 INFO L290 TraceCheckUtils]: 2: Hoare triple {1939#true} assume true; {1939#true} is VALID [2022-02-20 18:18:51,557 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1939#true} {1939#true} #107#return; {1939#true} is VALID [2022-02-20 18:18:51,573 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-02-20 18:18:51,575 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:51,600 INFO L290 TraceCheckUtils]: 0: Hoare triple {1979#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1980#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-02-20 18:18:51,600 INFO L290 TraceCheckUtils]: 1: Hoare triple {1980#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} assume true; {1980#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-02-20 18:18:51,601 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1980#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} {1949#(and (or (not (= (select |#valid| |ULTIMATE.start_main_#t~malloc15#1.base|) 0)) (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1)) (= |ULTIMATE.start_main_#t~malloc15#1.offset| 0))} #109#return; {1953#(and (or (not (= (select |#valid| |ULTIMATE.start_main_#t~malloc15#1.base|) 0)) (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc15#1.base|)) (= |ULTIMATE.start_main_#t~malloc15#1.offset| 0))} is VALID [2022-02-20 18:18:51,601 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 23 [2022-02-20 18:18:51,604 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:51,633 INFO L290 TraceCheckUtils]: 0: Hoare triple {1979#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1981#(and (= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-02-20 18:18:51,633 INFO L290 TraceCheckUtils]: 1: Hoare triple {1981#(and (= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} assume true; {1981#(and (= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-02-20 18:18:51,634 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1981#(and (= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} {1954#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= |ULTIMATE.start_main_#t~malloc16#1.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_#t~malloc16#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (<= |ULTIMATE.start_main_~n~0#1| 1)))} #111#return; {1958#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (or (= |ULTIMATE.start_main_#t~malloc16#1.base| |ULTIMATE.start_main_~a~0#1.base|) (and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc16#1.base|)) (= |ULTIMATE.start_main_#t~malloc16#1.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)))) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_#t~malloc16#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (<= |ULTIMATE.start_main_~n~0#1| 1)))} is VALID [2022-02-20 18:18:51,635 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 33 [2022-02-20 18:18:51,641 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:51,778 INFO L290 TraceCheckUtils]: 0: Hoare triple {1979#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right; {1982#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base))} is VALID [2022-02-20 18:18:51,779 INFO L290 TraceCheckUtils]: 1: Hoare triple {1982#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base))} assume !(~right > 1 + ~left); {1982#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base))} is VALID [2022-02-20 18:18:51,780 INFO L290 TraceCheckUtils]: 2: Hoare triple {1982#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base))} call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem5;havoc #t~mem6; {1983#(and (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)) (or (= |upsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)) (= |#memory_int| |old(#memory_int)|)) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))} is VALID [2022-02-20 18:18:51,781 INFO L290 TraceCheckUtils]: 3: Hoare triple {1983#(and (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)) (or (= |upsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)) (= |#memory_int| |old(#memory_int)|)) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))} assume true; {1983#(and (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)) (or (= |upsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)) (= |#memory_int| |old(#memory_int)|)) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))} is VALID [2022-02-20 18:18:51,785 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {1983#(and (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)) (or (= |upsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)) (= |#memory_int| |old(#memory_int)|)) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))} {1963#(and (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~n~0#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (or (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (<= 2 |ULTIMATE.start_main_~n~0#1|))} #113#return; {1969#(and (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~n~0#1| 2) (or (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= (@diff (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) ((as const (Array Int Int)) 0)) 4)) (= ((as const (Array Int Int)) 0) (store (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) ((as const (Array Int Int)) 0)) 0)) (or (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (<= 2 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:51,785 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 40 [2022-02-20 18:18:51,801 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:52,042 INFO L290 TraceCheckUtils]: 0: Hoare triple {1979#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right, 4);~tmp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~tmp~0, ~a.base, ~a.offset + 4 * ~left, 4); {1984#(and (or (<= 5 (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (<= (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) 3) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))) (and (<= (+ |downsweep_#in~right| downsweep_~left) (+ |downsweep_#in~left| downsweep_~right)) (= (+ (* (- 1) downsweep_~left) downsweep_~right) 0)) (not (= |downsweep_#in~a.offset| 0))) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|))))} is VALID [2022-02-20 18:18:52,044 INFO L290 TraceCheckUtils]: 1: Hoare triple {1984#(and (or (<= 5 (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (<= (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) 3) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))) (and (<= (+ |downsweep_#in~right| downsweep_~left) (+ |downsweep_#in~left| downsweep_~right)) (= (+ (* (- 1) downsweep_~left) downsweep_~right) 0)) (not (= |downsweep_#in~a.offset| 0))) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|))))} assume !(~right > 1 + ~left); {1985#(and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (<= 5 (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (not (<= |downsweep_#in~left| 0)) (<= (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) 3) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))) (not (= |downsweep_#in~a.offset| 0))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|))))} is VALID [2022-02-20 18:18:52,044 INFO L290 TraceCheckUtils]: 2: Hoare triple {1985#(and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (<= 5 (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (not (<= |downsweep_#in~left| 0)) (<= (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) 3) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))) (not (= |downsweep_#in~a.offset| 0))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|))))} assume true; {1985#(and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (<= 5 (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (not (<= |downsweep_#in~left| 0)) (<= (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) 3) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))) (not (= |downsweep_#in~a.offset| 0))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|))))} is VALID [2022-02-20 18:18:52,048 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1985#(and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (<= 5 (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (not (<= |downsweep_#in~left| 0)) (<= (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) 3) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))) (not (= |downsweep_#in~a.offset| 0))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|))))} {1963#(and (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~n~0#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (or (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (<= 2 |ULTIMATE.start_main_~n~0#1|))} #115#return; {1974#(and (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~n~0#1| 2) (or (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (= 0 (select (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) 4)) (<= 2 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:52,048 INFO L290 TraceCheckUtils]: 0: Hoare triple {1939#true} assume { :begin_inline_ULTIMATE.init } 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(16, 2);call #Ultimate.allocInit(12, 3); {1939#true} is VALID [2022-02-20 18:18:52,048 INFO L290 TraceCheckUtils]: 1: Hoare triple {1939#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet13#1, main_#t~ret14#1, main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_#t~mem18#1, main_#t~post17#1, main_~n~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~a0~0#1.base, main_~a0~0#1.offset, main_~i~1#1;assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~n~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {1939#true} is VALID [2022-02-20 18:18:52,048 INFO L272 TraceCheckUtils]: 2: Hoare triple {1939#true} call assume_abort_if_not((if main_~n~0#1 > 1 && main_~n~0#1 < 1073741824 then 1 else 0)); {1939#true} is VALID [2022-02-20 18:18:52,048 INFO L290 TraceCheckUtils]: 3: Hoare triple {1939#true} ~cond := #in~cond; {1939#true} is VALID [2022-02-20 18:18:52,048 INFO L290 TraceCheckUtils]: 4: Hoare triple {1939#true} assume !(0 == ~cond); {1939#true} is VALID [2022-02-20 18:18:52,048 INFO L290 TraceCheckUtils]: 5: Hoare triple {1939#true} assume true; {1939#true} is VALID [2022-02-20 18:18:52,048 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1939#true} {1939#true} #105#return; {1939#true} is VALID [2022-02-20 18:18:52,048 INFO L290 TraceCheckUtils]: 7: Hoare triple {1939#true} assume { :begin_inline_is_pow2 } true;is_pow2_#in~x#1 := main_~n~0#1;havoc is_pow2_#res#1;havoc is_pow2_~x#1;is_pow2_~x#1 := is_pow2_#in~x#1; {1939#true} is VALID [2022-02-20 18:18:52,048 INFO L290 TraceCheckUtils]: 8: Hoare triple {1939#true} assume !!(0 == (if is_pow2_~x#1 % 4294967296 < 0 && 0 != is_pow2_~x#1 % 4294967296 % 2 then is_pow2_~x#1 % 4294967296 % 2 - 2 else is_pow2_~x#1 % 4294967296 % 2) % 4294967296 && is_pow2_~x#1 % 4294967296 > 1);is_pow2_~x#1 := (if is_pow2_~x#1 % 4294967296 < 0 && 0 != is_pow2_~x#1 % 4294967296 % 2 then 1 + is_pow2_~x#1 % 4294967296 / 2 else is_pow2_~x#1 % 4294967296 / 2); {1939#true} is VALID [2022-02-20 18:18:52,048 INFO L290 TraceCheckUtils]: 9: Hoare triple {1939#true} assume !(0 == (if is_pow2_~x#1 % 4294967296 < 0 && 0 != is_pow2_~x#1 % 4294967296 % 2 then is_pow2_~x#1 % 4294967296 % 2 - 2 else is_pow2_~x#1 % 4294967296 % 2) % 4294967296 && is_pow2_~x#1 % 4294967296 > 1); {1939#true} is VALID [2022-02-20 18:18:52,049 INFO L290 TraceCheckUtils]: 10: Hoare triple {1939#true} is_pow2_#res#1 := (if 1 == is_pow2_~x#1 % 4294967296 then 1 else 0); {1939#true} is VALID [2022-02-20 18:18:52,049 INFO L290 TraceCheckUtils]: 11: Hoare triple {1939#true} main_#t~ret14#1 := is_pow2_#res#1;assume { :end_inline_is_pow2 } true;assume -2147483648 <= main_#t~ret14#1 && main_#t~ret14#1 <= 2147483647; {1939#true} is VALID [2022-02-20 18:18:52,049 INFO L272 TraceCheckUtils]: 12: Hoare triple {1939#true} call assume_abort_if_not(main_#t~ret14#1); {1939#true} is VALID [2022-02-20 18:18:52,049 INFO L290 TraceCheckUtils]: 13: Hoare triple {1939#true} ~cond := #in~cond; {1939#true} is VALID [2022-02-20 18:18:52,049 INFO L290 TraceCheckUtils]: 14: Hoare triple {1939#true} assume !(0 == ~cond); {1939#true} is VALID [2022-02-20 18:18:52,049 INFO L290 TraceCheckUtils]: 15: Hoare triple {1939#true} assume true; {1939#true} is VALID [2022-02-20 18:18:52,049 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1939#true} {1939#true} #107#return; {1939#true} is VALID [2022-02-20 18:18:52,050 INFO L290 TraceCheckUtils]: 17: Hoare triple {1939#true} havoc main_#t~ret14#1;call main_#t~malloc15#1.base, main_#t~malloc15#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {1949#(and (or (not (= (select |#valid| |ULTIMATE.start_main_#t~malloc15#1.base|) 0)) (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1)) (= |ULTIMATE.start_main_#t~malloc15#1.offset| 0))} is VALID [2022-02-20 18:18:52,051 INFO L272 TraceCheckUtils]: 18: Hoare triple {1949#(and (or (not (= (select |#valid| |ULTIMATE.start_main_#t~malloc15#1.base|) 0)) (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1)) (= |ULTIMATE.start_main_#t~malloc15#1.offset| 0))} call #Ultimate.meminit(main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {1979#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:52,051 INFO L290 TraceCheckUtils]: 19: Hoare triple {1979#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1980#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-02-20 18:18:52,051 INFO L290 TraceCheckUtils]: 20: Hoare triple {1980#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} assume true; {1980#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-02-20 18:18:52,052 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {1980#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} {1949#(and (or (not (= (select |#valid| |ULTIMATE.start_main_#t~malloc15#1.base|) 0)) (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1)) (= |ULTIMATE.start_main_#t~malloc15#1.offset| 0))} #109#return; {1953#(and (or (not (= (select |#valid| |ULTIMATE.start_main_#t~malloc15#1.base|) 0)) (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc15#1.base|)) (= |ULTIMATE.start_main_#t~malloc15#1.offset| 0))} is VALID [2022-02-20 18:18:52,053 INFO L290 TraceCheckUtils]: 22: Hoare triple {1953#(and (or (not (= (select |#valid| |ULTIMATE.start_main_#t~malloc15#1.base|) 0)) (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (<= |ULTIMATE.start_main_~n~0#1| 1)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc15#1.base|)) (= |ULTIMATE.start_main_#t~malloc15#1.offset| 0))} main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc15#1.base, main_#t~malloc15#1.offset;call main_#t~malloc16#1.base, main_#t~malloc16#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {1954#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= |ULTIMATE.start_main_#t~malloc16#1.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_#t~malloc16#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (<= |ULTIMATE.start_main_~n~0#1| 1)))} is VALID [2022-02-20 18:18:52,072 INFO L272 TraceCheckUtils]: 23: Hoare triple {1954#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= |ULTIMATE.start_main_#t~malloc16#1.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_#t~malloc16#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (<= |ULTIMATE.start_main_~n~0#1| 1)))} call #Ultimate.meminit(main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {1979#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:52,073 INFO L290 TraceCheckUtils]: 24: Hoare triple {1979#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1981#(and (= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-02-20 18:18:52,073 INFO L290 TraceCheckUtils]: 25: Hoare triple {1981#(and (= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} assume true; {1981#(and (= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-02-20 18:18:52,075 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {1981#(and (= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} {1954#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= |ULTIMATE.start_main_#t~malloc16#1.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_#t~malloc16#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (<= |ULTIMATE.start_main_~n~0#1| 1)))} #111#return; {1958#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (or (= |ULTIMATE.start_main_#t~malloc16#1.base| |ULTIMATE.start_main_~a~0#1.base|) (and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc16#1.base|)) (= |ULTIMATE.start_main_#t~malloc16#1.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)))) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_#t~malloc16#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (<= |ULTIMATE.start_main_~n~0#1| 1)))} is VALID [2022-02-20 18:18:52,075 INFO L290 TraceCheckUtils]: 27: Hoare triple {1958#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (or (= |ULTIMATE.start_main_#t~malloc16#1.base| |ULTIMATE.start_main_~a~0#1.base|) (and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc16#1.base|)) (= |ULTIMATE.start_main_#t~malloc16#1.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)))) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_#t~malloc16#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (<= |ULTIMATE.start_main_~n~0#1| 1)))} main_~a0~0#1.base, main_~a0~0#1.offset := main_#t~malloc16#1.base, main_#t~malloc16#1.offset;havoc main_~i~1#1;main_~i~1#1 := 0; {1959#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= |ULTIMATE.start_main_~i~1#1| 0) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (<= |ULTIMATE.start_main_~n~0#1| 1)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 18:18:52,076 INFO L290 TraceCheckUtils]: 28: Hoare triple {1959#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= |ULTIMATE.start_main_~i~1#1| 0) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (<= |ULTIMATE.start_main_~n~0#1| 1)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} assume !!(main_~i~1#1 < main_~n~0#1);call main_#t~mem18#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~1#1, 4);call write~int(main_#t~mem18#1, main_~a0~0#1.base, main_~a0~0#1.offset + 4 * main_~i~1#1, 4);havoc main_#t~mem18#1; {1959#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= |ULTIMATE.start_main_~i~1#1| 0) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (<= |ULTIMATE.start_main_~n~0#1| 1)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 18:18:52,077 INFO L290 TraceCheckUtils]: 29: Hoare triple {1959#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= |ULTIMATE.start_main_~i~1#1| 0) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (<= |ULTIMATE.start_main_~n~0#1| 1)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} main_#t~post17#1 := main_~i~1#1;main_~i~1#1 := 1 + main_#t~post17#1;havoc main_#t~post17#1; {1960#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~i~1#1| 1) (<= 1 |ULTIMATE.start_main_~i~1#1|) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (<= |ULTIMATE.start_main_~n~0#1| 1)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 18:18:52,078 INFO L290 TraceCheckUtils]: 30: Hoare triple {1960#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~i~1#1| 1) (<= 1 |ULTIMATE.start_main_~i~1#1|) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (<= |ULTIMATE.start_main_~n~0#1| 1)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} assume !!(main_~i~1#1 < main_~n~0#1);call main_#t~mem18#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~1#1, 4);call write~int(main_#t~mem18#1, main_~a0~0#1.base, main_~a0~0#1.offset + 4 * main_~i~1#1, 4);havoc main_#t~mem18#1; {1961#(and (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= ((as const (Array Int Int)) 0) (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (+ (* |ULTIMATE.start_main_~i~1#1| 4) |ULTIMATE.start_main_~a0~0#1.offset|) 0)) (<= 1 |ULTIMATE.start_main_~i~1#1|)) (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~i~1#1| 1) (<= 2 |ULTIMATE.start_main_~n~0#1|) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|))))} is VALID [2022-02-20 18:18:52,080 INFO L290 TraceCheckUtils]: 31: Hoare triple {1961#(and (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= ((as const (Array Int Int)) 0) (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (+ (* |ULTIMATE.start_main_~i~1#1| 4) |ULTIMATE.start_main_~a0~0#1.offset|) 0)) (<= 1 |ULTIMATE.start_main_~i~1#1|)) (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~i~1#1| 1) (<= 2 |ULTIMATE.start_main_~n~0#1|) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|))))} main_#t~post17#1 := main_~i~1#1;main_~i~1#1 := 1 + main_#t~post17#1;havoc main_#t~post17#1; {1962#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~i~1#1| 2) (or (and (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (or (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|)))) (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (<= 2 |ULTIMATE.start_main_~n~0#1|) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|))))} is VALID [2022-02-20 18:18:52,081 INFO L290 TraceCheckUtils]: 32: Hoare triple {1962#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~i~1#1| 2) (or (and (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (or (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|)))) (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (<= 2 |ULTIMATE.start_main_~n~0#1|) (or (<= 1073741824 |ULTIMATE.start_main_~n~0#1|) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|))))} assume !(main_~i~1#1 < main_~n~0#1); {1963#(and (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~n~0#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (or (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (<= 2 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:52,083 INFO L272 TraceCheckUtils]: 33: Hoare triple {1963#(and (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~n~0#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (or (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (<= 2 |ULTIMATE.start_main_~n~0#1|))} call upsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {1979#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:52,083 INFO L290 TraceCheckUtils]: 34: Hoare triple {1979#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right; {1982#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base))} is VALID [2022-02-20 18:18:52,083 INFO L290 TraceCheckUtils]: 35: Hoare triple {1982#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base))} assume !(~right > 1 + ~left); {1982#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base))} is VALID [2022-02-20 18:18:52,085 INFO L290 TraceCheckUtils]: 36: Hoare triple {1982#(and (= |#memory_int| |old(#memory_int)|) (= |upsweep_#in~a.base| upsweep_~a.base))} call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem5;havoc #t~mem6; {1983#(and (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)) (or (= |upsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)) (= |#memory_int| |old(#memory_int)|)) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))} is VALID [2022-02-20 18:18:52,086 INFO L290 TraceCheckUtils]: 37: Hoare triple {1983#(and (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)) (or (= |upsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)) (= |#memory_int| |old(#memory_int)|)) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))} assume true; {1983#(and (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)) (or (= |upsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)) (= |#memory_int| |old(#memory_int)|)) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))} is VALID [2022-02-20 18:18:52,089 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {1983#(and (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)) (or (= |upsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|)) (= |#memory_int| |old(#memory_int)|)) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|))} {1963#(and (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~n~0#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (or (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (<= 2 |ULTIMATE.start_main_~n~0#1|))} #113#return; {1969#(and (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~n~0#1| 2) (or (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= (@diff (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) ((as const (Array Int Int)) 0)) 4)) (= ((as const (Array Int Int)) 0) (store (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) ((as const (Array Int Int)) 0)) 0)) (or (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (<= 2 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:52,091 INFO L290 TraceCheckUtils]: 39: Hoare triple {1969#(and (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~n~0#1| 2) (or (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= (@diff (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) ((as const (Array Int Int)) 0)) 4)) (= ((as const (Array Int Int)) 0) (store (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) ((as const (Array Int Int)) 0)) 0)) (or (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (<= 2 |ULTIMATE.start_main_~n~0#1|))} call write~int(0, main_~a~0#1.base, main_~a~0#1.offset + 4 * (main_~n~0#1 - 1), 4); {1963#(and (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~n~0#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (or (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (<= 2 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:52,092 INFO L272 TraceCheckUtils]: 40: Hoare triple {1963#(and (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~n~0#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (or (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (<= 2 |ULTIMATE.start_main_~n~0#1|))} call downsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {1979#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:18:52,094 INFO L290 TraceCheckUtils]: 41: Hoare triple {1979#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right, 4);~tmp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~tmp~0, ~a.base, ~a.offset + 4 * ~left, 4); {1984#(and (or (<= 5 (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (<= (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) 3) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))) (and (<= (+ |downsweep_#in~right| downsweep_~left) (+ |downsweep_#in~left| downsweep_~right)) (= (+ (* (- 1) downsweep_~left) downsweep_~right) 0)) (not (= |downsweep_#in~a.offset| 0))) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|))))} is VALID [2022-02-20 18:18:52,095 INFO L290 TraceCheckUtils]: 42: Hoare triple {1984#(and (or (<= 5 (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (<= (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) 3) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))) (and (<= (+ |downsweep_#in~right| downsweep_~left) (+ |downsweep_#in~left| downsweep_~right)) (= (+ (* (- 1) downsweep_~left) downsweep_~right) 0)) (not (= |downsweep_#in~a.offset| 0))) (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|))))} assume !(~right > 1 + ~left); {1985#(and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (<= 5 (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (not (<= |downsweep_#in~left| 0)) (<= (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) 3) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))) (not (= |downsweep_#in~a.offset| 0))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|))))} is VALID [2022-02-20 18:18:52,096 INFO L290 TraceCheckUtils]: 43: Hoare triple {1985#(and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (<= 5 (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (not (<= |downsweep_#in~left| 0)) (<= (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) 3) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))) (not (= |downsweep_#in~a.offset| 0))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|))))} assume true; {1985#(and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (<= 5 (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (not (<= |downsweep_#in~left| 0)) (<= (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) 3) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))) (not (= |downsweep_#in~a.offset| 0))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|))))} is VALID [2022-02-20 18:18:52,099 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {1985#(and (= (store |old(#memory_int)| (@diff |old(#memory_int)| |#memory_int|) (select |#memory_int| (@diff |old(#memory_int)| |#memory_int|))) |#memory_int|) (or (<= 5 (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (= (select (select |#memory_int| |downsweep_#in~a.base|) 4) 0) (not (<= |downsweep_#in~left| 0)) (<= (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) 3) (not (= ((as const (Array Int Int)) 0) (select |old(#memory_int)| |downsweep_#in~a.base|))) (not (= |downsweep_#in~a.offset| 0))) (or (= |#memory_int| |old(#memory_int)|) (= |downsweep_#in~a.base| (@diff |old(#memory_int)| |#memory_int|))))} {1963#(and (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~n~0#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (or (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (<= 2 |ULTIMATE.start_main_~n~0#1|))} #115#return; {1974#(and (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~n~0#1| 2) (or (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (= 0 (select (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) 4)) (<= 2 |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 18:18:52,101 INFO L290 TraceCheckUtils]: 45: Hoare triple {1974#(and (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= |ULTIMATE.start_main_~n~0#1| 2) (or (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (= (select (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (store (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) 0)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (or (and (= |ULTIMATE.start_main_~a0~0#1.offset| 0) (<= (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) (@diff (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) ((as const (Array Int Int)) 0)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|))) (= 0 (select (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) 4)) (<= 2 |ULTIMATE.start_main_~n~0#1|))} assume { :begin_inline_check } true;check_#in~a0#1.base, check_#in~a0#1.offset, check_#in~a#1.base, check_#in~a#1.offset, check_#in~n#1 := main_~a0~0#1.base, main_~a0~0#1.offset, main_~a~0#1.base, main_~a~0#1.offset, main_~n~0#1;havoc check_#t~mem11#1, check_#t~mem12#1, check_#t~post10#1, check_~a0#1.base, check_~a0#1.offset, check_~a#1.base, check_~a#1.offset, check_~n#1, check_~i~0#1, check_~sum~0#1;check_~a0#1.base, check_~a0#1.offset := check_#in~a0#1.base, check_#in~a0#1.offset;check_~a#1.base, check_~a#1.offset := check_#in~a#1.base, check_#in~a#1.offset;check_~n#1 := check_#in~n#1;havoc check_~i~0#1;check_~sum~0#1 := 0;check_~i~0#1 := 0; {1975#(and (= |ULTIMATE.start_check_~sum~0#1| 0) (= |ULTIMATE.start_check_~i~0#1| 0) (= |ULTIMATE.start_check_~a#1.offset| 0) (= (select (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|) (+ (* |ULTIMATE.start_check_~i~0#1| 4) |ULTIMATE.start_check_~a0#1.offset|)) 0) (= 0 (select (select |#memory_int| |ULTIMATE.start_check_~a#1.base|) 4)))} is VALID [2022-02-20 18:18:52,101 INFO L290 TraceCheckUtils]: 46: Hoare triple {1975#(and (= |ULTIMATE.start_check_~sum~0#1| 0) (= |ULTIMATE.start_check_~i~0#1| 0) (= |ULTIMATE.start_check_~a#1.offset| 0) (= (select (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|) (+ (* |ULTIMATE.start_check_~i~0#1| 4) |ULTIMATE.start_check_~a0#1.offset|)) 0) (= 0 (select (select |#memory_int| |ULTIMATE.start_check_~a#1.base|) 4)))} assume !!(check_~i~0#1 < check_~n#1);call check_#t~mem11#1 := read~int(check_~a#1.base, check_~a#1.offset + 4 * check_~i~0#1, 4);assume { :begin_inline___VERIFIER_assert } true;__VERIFIER_assert_#in~cond#1 := (if check_~sum~0#1 == check_#t~mem11#1 then 1 else 0);havoc __VERIFIER_assert_~cond#1;__VERIFIER_assert_~cond#1 := __VERIFIER_assert_#in~cond#1; {1975#(and (= |ULTIMATE.start_check_~sum~0#1| 0) (= |ULTIMATE.start_check_~i~0#1| 0) (= |ULTIMATE.start_check_~a#1.offset| 0) (= (select (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|) (+ (* |ULTIMATE.start_check_~i~0#1| 4) |ULTIMATE.start_check_~a0#1.offset|)) 0) (= 0 (select (select |#memory_int| |ULTIMATE.start_check_~a#1.base|) 4)))} is VALID [2022-02-20 18:18:52,102 INFO L290 TraceCheckUtils]: 47: Hoare triple {1975#(and (= |ULTIMATE.start_check_~sum~0#1| 0) (= |ULTIMATE.start_check_~i~0#1| 0) (= |ULTIMATE.start_check_~a#1.offset| 0) (= (select (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|) (+ (* |ULTIMATE.start_check_~i~0#1| 4) |ULTIMATE.start_check_~a0#1.offset|)) 0) (= 0 (select (select |#memory_int| |ULTIMATE.start_check_~a#1.base|) 4)))} assume !(0 == __VERIFIER_assert_~cond#1); {1975#(and (= |ULTIMATE.start_check_~sum~0#1| 0) (= |ULTIMATE.start_check_~i~0#1| 0) (= |ULTIMATE.start_check_~a#1.offset| 0) (= (select (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|) (+ (* |ULTIMATE.start_check_~i~0#1| 4) |ULTIMATE.start_check_~a0#1.offset|)) 0) (= 0 (select (select |#memory_int| |ULTIMATE.start_check_~a#1.base|) 4)))} is VALID [2022-02-20 18:18:52,102 INFO L290 TraceCheckUtils]: 48: Hoare triple {1975#(and (= |ULTIMATE.start_check_~sum~0#1| 0) (= |ULTIMATE.start_check_~i~0#1| 0) (= |ULTIMATE.start_check_~a#1.offset| 0) (= (select (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|) (+ (* |ULTIMATE.start_check_~i~0#1| 4) |ULTIMATE.start_check_~a0#1.offset|)) 0) (= 0 (select (select |#memory_int| |ULTIMATE.start_check_~a#1.base|) 4)))} assume { :end_inline___VERIFIER_assert } true;havoc check_#t~mem11#1;call check_#t~mem12#1 := read~int(check_~a0#1.base, check_~a0#1.offset + 4 * check_~i~0#1, 4);check_~sum~0#1 := check_~sum~0#1 + check_#t~mem12#1;havoc check_#t~mem12#1; {1976#(and (= |ULTIMATE.start_check_~i~0#1| 0) (< 0 (+ |ULTIMATE.start_check_~sum~0#1| 1)) (= |ULTIMATE.start_check_~a#1.offset| 0) (= |ULTIMATE.start_check_~sum~0#1| (select (select |#memory_int| |ULTIMATE.start_check_~a#1.base|) 4)) (<= |ULTIMATE.start_check_~sum~0#1| 0))} is VALID [2022-02-20 18:18:52,103 INFO L290 TraceCheckUtils]: 49: Hoare triple {1976#(and (= |ULTIMATE.start_check_~i~0#1| 0) (< 0 (+ |ULTIMATE.start_check_~sum~0#1| 1)) (= |ULTIMATE.start_check_~a#1.offset| 0) (= |ULTIMATE.start_check_~sum~0#1| (select (select |#memory_int| |ULTIMATE.start_check_~a#1.base|) 4)) (<= |ULTIMATE.start_check_~sum~0#1| 0))} check_#t~post10#1 := check_~i~0#1;check_~i~0#1 := 1 + check_#t~post10#1;havoc check_#t~post10#1; {1977#(and (< 0 (+ |ULTIMATE.start_check_~sum~0#1| 1)) (= |ULTIMATE.start_check_~a#1.offset| 0) (= |ULTIMATE.start_check_~sum~0#1| (select (select |#memory_int| |ULTIMATE.start_check_~a#1.base|) (+ |ULTIMATE.start_check_~a#1.offset| (* |ULTIMATE.start_check_~i~0#1| 4)))) (<= |ULTIMATE.start_check_~sum~0#1| 0))} is VALID [2022-02-20 18:18:52,103 INFO L290 TraceCheckUtils]: 50: Hoare triple {1977#(and (< 0 (+ |ULTIMATE.start_check_~sum~0#1| 1)) (= |ULTIMATE.start_check_~a#1.offset| 0) (= |ULTIMATE.start_check_~sum~0#1| (select (select |#memory_int| |ULTIMATE.start_check_~a#1.base|) (+ |ULTIMATE.start_check_~a#1.offset| (* |ULTIMATE.start_check_~i~0#1| 4)))) (<= |ULTIMATE.start_check_~sum~0#1| 0))} assume !!(check_~i~0#1 < check_~n#1);call check_#t~mem11#1 := read~int(check_~a#1.base, check_~a#1.offset + 4 * check_~i~0#1, 4);assume { :begin_inline___VERIFIER_assert } true;__VERIFIER_assert_#in~cond#1 := (if check_~sum~0#1 == check_#t~mem11#1 then 1 else 0);havoc __VERIFIER_assert_~cond#1;__VERIFIER_assert_~cond#1 := __VERIFIER_assert_#in~cond#1; {1978#(not (= |ULTIMATE.start___VERIFIER_assert_~cond#1| 0))} is VALID [2022-02-20 18:18:52,104 INFO L290 TraceCheckUtils]: 51: Hoare triple {1978#(not (= |ULTIMATE.start___VERIFIER_assert_~cond#1| 0))} assume 0 == __VERIFIER_assert_~cond#1; {1940#false} is VALID [2022-02-20 18:18:52,104 INFO L290 TraceCheckUtils]: 52: Hoare triple {1940#false} assume !false; {1940#false} is VALID [2022-02-20 18:18:52,104 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 2 proven. 6 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-02-20 18:18:52,104 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 18:18:52,104 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2120784539] [2022-02-20 18:18:52,104 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2120784539] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 18:18:52,104 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [85838974] [2022-02-20 18:18:52,105 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 18:18:52,105 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 18:18:52,105 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 18:18:52,114 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-02-20 18:18:52,163 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-02-20 18:18:52,227 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:52,229 INFO L263 TraceCheckSpWp]: Trace formula consists of 246 conjuncts, 100 conjunts are in the unsatisfiable core [2022-02-20 18:18:52,251 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 18:18:52,253 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 18:18:52,294 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-02-20 18:18:52,371 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-02-20 18:18:52,473 INFO L356 Elim1Store]: treesize reduction 4, result has 50.0 percent of original size [2022-02-20 18:18:52,474 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-02-20 18:18:52,554 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 15 treesize of output 10 [2022-02-20 18:18:52,643 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-02-20 18:18:52,756 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-02-20 18:18:57,708 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 51 treesize of output 45 [2022-02-20 18:18:59,909 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 34 treesize of output 32 [2022-02-20 18:19:01,280 WARN L860 $PredicateComparison]: unable to prove that (exists ((v_ArrVal_181 Int)) (= (store |c_old(#memory_int)| |c_downsweep_#in~a.base| (let ((.cse2 (+ |c_downsweep_#in~a.offset| (* |c_downsweep_#in~left| 4)))) (store (let ((.cse1 (+ |c_downsweep_#in~a.offset| (* |c_downsweep_#in~right| 4))) (.cse0 (select |c_old(#memory_int)| |c_downsweep_#in~a.base|))) (store .cse0 .cse1 (+ (select .cse0 .cse1) (select .cse0 .cse2)))) .cse2 v_ArrVal_181))) |c_#memory_int|)) is different from true [2022-02-20 18:19:01,377 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 66 treesize of output 60 [2022-02-20 18:19:08,869 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 92 treesize of output 80 [2022-02-20 18:19:09,140 INFO L290 TraceCheckUtils]: 0: Hoare triple {1939#true} assume { :begin_inline_ULTIMATE.init } 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(16, 2);call #Ultimate.allocInit(12, 3); {1939#true} is VALID [2022-02-20 18:19:09,141 INFO L290 TraceCheckUtils]: 1: Hoare triple {1939#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet13#1, main_#t~ret14#1, main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_#t~mem18#1, main_#t~post17#1, main_~n~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~a0~0#1.base, main_~a0~0#1.offset, main_~i~1#1;assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~n~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {1939#true} is VALID [2022-02-20 18:19:09,141 INFO L272 TraceCheckUtils]: 2: Hoare triple {1939#true} call assume_abort_if_not((if main_~n~0#1 > 1 && main_~n~0#1 < 1073741824 then 1 else 0)); {1939#true} is VALID [2022-02-20 18:19:09,156 INFO L290 TraceCheckUtils]: 3: Hoare triple {1939#true} ~cond := #in~cond; {1939#true} is VALID [2022-02-20 18:19:09,156 INFO L290 TraceCheckUtils]: 4: Hoare triple {1939#true} assume !(0 == ~cond); {1939#true} is VALID [2022-02-20 18:19:09,156 INFO L290 TraceCheckUtils]: 5: Hoare triple {1939#true} assume true; {1939#true} is VALID [2022-02-20 18:19:09,156 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1939#true} {1939#true} #105#return; {1939#true} is VALID [2022-02-20 18:19:09,156 INFO L290 TraceCheckUtils]: 7: Hoare triple {1939#true} assume { :begin_inline_is_pow2 } true;is_pow2_#in~x#1 := main_~n~0#1;havoc is_pow2_#res#1;havoc is_pow2_~x#1;is_pow2_~x#1 := is_pow2_#in~x#1; {1939#true} is VALID [2022-02-20 18:19:09,156 INFO L290 TraceCheckUtils]: 8: Hoare triple {1939#true} assume !!(0 == (if is_pow2_~x#1 % 4294967296 < 0 && 0 != is_pow2_~x#1 % 4294967296 % 2 then is_pow2_~x#1 % 4294967296 % 2 - 2 else is_pow2_~x#1 % 4294967296 % 2) % 4294967296 && is_pow2_~x#1 % 4294967296 > 1);is_pow2_~x#1 := (if is_pow2_~x#1 % 4294967296 < 0 && 0 != is_pow2_~x#1 % 4294967296 % 2 then 1 + is_pow2_~x#1 % 4294967296 / 2 else is_pow2_~x#1 % 4294967296 / 2); {1939#true} is VALID [2022-02-20 18:19:09,157 INFO L290 TraceCheckUtils]: 9: Hoare triple {1939#true} assume !(0 == (if is_pow2_~x#1 % 4294967296 < 0 && 0 != is_pow2_~x#1 % 4294967296 % 2 then is_pow2_~x#1 % 4294967296 % 2 - 2 else is_pow2_~x#1 % 4294967296 % 2) % 4294967296 && is_pow2_~x#1 % 4294967296 > 1); {1939#true} is VALID [2022-02-20 18:19:09,157 INFO L290 TraceCheckUtils]: 10: Hoare triple {1939#true} is_pow2_#res#1 := (if 1 == is_pow2_~x#1 % 4294967296 then 1 else 0); {1939#true} is VALID [2022-02-20 18:19:09,157 INFO L290 TraceCheckUtils]: 11: Hoare triple {1939#true} main_#t~ret14#1 := is_pow2_#res#1;assume { :end_inline_is_pow2 } true;assume -2147483648 <= main_#t~ret14#1 && main_#t~ret14#1 <= 2147483647; {1939#true} is VALID [2022-02-20 18:19:09,157 INFO L272 TraceCheckUtils]: 12: Hoare triple {1939#true} call assume_abort_if_not(main_#t~ret14#1); {1939#true} is VALID [2022-02-20 18:19:09,157 INFO L290 TraceCheckUtils]: 13: Hoare triple {1939#true} ~cond := #in~cond; {1939#true} is VALID [2022-02-20 18:19:09,157 INFO L290 TraceCheckUtils]: 14: Hoare triple {1939#true} assume !(0 == ~cond); {1939#true} is VALID [2022-02-20 18:19:09,157 INFO L290 TraceCheckUtils]: 15: Hoare triple {1939#true} assume true; {1939#true} is VALID [2022-02-20 18:19:09,157 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1939#true} {1939#true} #107#return; {1939#true} is VALID [2022-02-20 18:19:09,159 INFO L290 TraceCheckUtils]: 17: Hoare triple {1939#true} havoc main_#t~ret14#1;call main_#t~malloc15#1.base, main_#t~malloc15#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {2040#(= (select |#valid| |ULTIMATE.start_main_#t~malloc15#1.base|) 1)} is VALID [2022-02-20 18:19:09,160 INFO L272 TraceCheckUtils]: 18: Hoare triple {2040#(= (select |#valid| |ULTIMATE.start_main_#t~malloc15#1.base|) 1)} call #Ultimate.meminit(main_#t~malloc15#1.base, main_#t~malloc15#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {2044#(exists ((|v_ULTIMATE.start_main_#t~malloc15#1.base_BEFORE_CALL_1| Int)) (= (select |#valid| |v_ULTIMATE.start_main_#t~malloc15#1.base_BEFORE_CALL_1|) 1))} is VALID [2022-02-20 18:19:09,161 INFO L290 TraceCheckUtils]: 19: Hoare triple {2044#(exists ((|v_ULTIMATE.start_main_#t~malloc15#1.base_BEFORE_CALL_1| Int)) (= (select |#valid| |v_ULTIMATE.start_main_#t~malloc15#1.base_BEFORE_CALL_1|) 1))} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2048#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)) (exists ((|v_ULTIMATE.start_main_#t~malloc15#1.base_BEFORE_CALL_1| Int)) (= (select |#valid| |v_ULTIMATE.start_main_#t~malloc15#1.base_BEFORE_CALL_1|) 1)))} is VALID [2022-02-20 18:19:09,161 INFO L290 TraceCheckUtils]: 20: Hoare triple {2048#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)) (exists ((|v_ULTIMATE.start_main_#t~malloc15#1.base_BEFORE_CALL_1| Int)) (= (select |#valid| |v_ULTIMATE.start_main_#t~malloc15#1.base_BEFORE_CALL_1|) 1)))} assume true; {2048#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)) (exists ((|v_ULTIMATE.start_main_#t~malloc15#1.base_BEFORE_CALL_1| Int)) (= (select |#valid| |v_ULTIMATE.start_main_#t~malloc15#1.base_BEFORE_CALL_1|) 1)))} is VALID [2022-02-20 18:19:09,162 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {2048#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)) (exists ((|v_ULTIMATE.start_main_#t~malloc15#1.base_BEFORE_CALL_1| Int)) (= (select |#valid| |v_ULTIMATE.start_main_#t~malloc15#1.base_BEFORE_CALL_1|) 1)))} {2040#(= (select |#valid| |ULTIMATE.start_main_#t~malloc15#1.base|) 1)} #109#return; {2055#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc15#1.base|)) (= (select |#valid| |ULTIMATE.start_main_#t~malloc15#1.base|) 1))} is VALID [2022-02-20 18:19:09,163 INFO L290 TraceCheckUtils]: 22: Hoare triple {2055#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc15#1.base|)) (= (select |#valid| |ULTIMATE.start_main_#t~malloc15#1.base|) 1))} main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc15#1.base, main_#t~malloc15#1.offset;call main_#t~malloc16#1.base, main_#t~malloc16#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1); {2059#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (not (= |ULTIMATE.start_main_#t~malloc16#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 18:19:09,164 INFO L272 TraceCheckUtils]: 23: Hoare triple {2059#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (not (= |ULTIMATE.start_main_#t~malloc16#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} call #Ultimate.meminit(main_#t~malloc16#1.base, main_#t~malloc16#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1); {1979#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:19:09,171 INFO L290 TraceCheckUtils]: 24: Hoare triple {1979#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1981#(and (= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-02-20 18:19:09,172 INFO L290 TraceCheckUtils]: 25: Hoare triple {1981#(and (= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} assume true; {1981#(and (= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} is VALID [2022-02-20 18:19:09,173 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {1981#(and (= |#memory_int| (store |old(#memory_int)| |#Ultimate.meminit_#ptr.base| (select |#memory_int| |#Ultimate.meminit_#ptr.base|))) (= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|)))} {2059#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (not (= |ULTIMATE.start_main_#t~malloc16#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} #111#return; {2072#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc16#1.base|)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (not (= |ULTIMATE.start_main_#t~malloc16#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 18:19:09,182 INFO L290 TraceCheckUtils]: 27: Hoare triple {2072#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc16#1.base|)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (not (= |ULTIMATE.start_main_#t~malloc16#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} main_~a0~0#1.base, main_~a0~0#1.offset := main_#t~malloc16#1.base, main_#t~malloc16#1.offset;havoc main_~i~1#1;main_~i~1#1 := 0; {2076#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= |ULTIMATE.start_main_~i~1#1| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 18:19:09,183 INFO L290 TraceCheckUtils]: 28: Hoare triple {2076#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= |ULTIMATE.start_main_~i~1#1| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} assume !!(main_~i~1#1 < main_~n~0#1);call main_#t~mem18#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~1#1, 4);call write~int(main_#t~mem18#1, main_~a0~0#1.base, main_~a0~0#1.offset + 4 * main_~i~1#1, 4);havoc main_#t~mem18#1; {2076#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= |ULTIMATE.start_main_~i~1#1| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 18:19:09,184 INFO L290 TraceCheckUtils]: 29: Hoare triple {2076#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= |ULTIMATE.start_main_~i~1#1| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} main_#t~post17#1 := main_~i~1#1;main_~i~1#1 := 1 + main_#t~post17#1;havoc main_#t~post17#1; {2083#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|)) (= |ULTIMATE.start_main_~i~1#1| 1) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 18:19:09,768 WARN L290 TraceCheckUtils]: 30: Hoare triple {2083#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|)) (= |ULTIMATE.start_main_~i~1#1| 1) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)))} assume !!(main_~i~1#1 < main_~n~0#1);call main_#t~mem18#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~1#1, 4);call write~int(main_#t~mem18#1, main_~a0~0#1.base, main_~a0~0#1.offset + 4 * main_~i~1#1, 4);havoc main_#t~mem18#1; {2087#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (< |ULTIMATE.start_main_~i~1#1| |ULTIMATE.start_main_~n~0#1|) (= |ULTIMATE.start_main_~i~1#1| 1) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (exists ((v_ArrVal_176 Int)) (= (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (store ((as const (Array Int Int)) 0) (+ (* |ULTIMATE.start_main_~i~1#1| 4) |ULTIMATE.start_main_~a0~0#1.offset|) v_ArrVal_176))))} is UNKNOWN [2022-02-20 18:19:09,769 INFO L290 TraceCheckUtils]: 31: Hoare triple {2087#(and (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (< |ULTIMATE.start_main_~i~1#1| |ULTIMATE.start_main_~n~0#1|) (= |ULTIMATE.start_main_~i~1#1| 1) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (exists ((v_ArrVal_176 Int)) (= (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (store ((as const (Array Int Int)) 0) (+ (* |ULTIMATE.start_main_~i~1#1| 4) |ULTIMATE.start_main_~a0~0#1.offset|) v_ArrVal_176))))} main_#t~post17#1 := main_~i~1#1;main_~i~1#1 := 1 + main_#t~post17#1;havoc main_#t~post17#1; {2091#(and (<= |ULTIMATE.start_main_~i~1#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|) (exists ((v_ArrVal_176 Int)) (= (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176))))} is VALID [2022-02-20 18:19:09,770 INFO L290 TraceCheckUtils]: 32: Hoare triple {2091#(and (<= |ULTIMATE.start_main_~i~1#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|) (exists ((v_ArrVal_176 Int)) (= (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176))))} assume !(main_~i~1#1 < main_~n~0#1); {2095#(and (<= |ULTIMATE.start_main_~n~0#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|) (exists ((v_ArrVal_176 Int)) (= (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176))))} is VALID [2022-02-20 18:19:09,771 INFO L272 TraceCheckUtils]: 33: Hoare triple {2095#(and (<= |ULTIMATE.start_main_~n~0#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|) (exists ((v_ArrVal_176 Int)) (= (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176))))} call upsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {1979#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:19:09,771 INFO L290 TraceCheckUtils]: 34: Hoare triple {1979#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right; {2102#(and (= |#memory_int| |old(#memory_int)|) (<= |upsweep_#in~right| upsweep_~right) (<= upsweep_~left |upsweep_#in~left|) (= |upsweep_#in~a.base| upsweep_~a.base))} is VALID [2022-02-20 18:19:09,772 INFO L290 TraceCheckUtils]: 35: Hoare triple {2102#(and (= |#memory_int| |old(#memory_int)|) (<= |upsweep_#in~right| upsweep_~right) (<= upsweep_~left |upsweep_#in~left|) (= |upsweep_#in~a.base| upsweep_~a.base))} assume !(~right > 1 + ~left); {2106#(and (= |#memory_int| |old(#memory_int)|) (<= |upsweep_#in~right| upsweep_~right) (<= upsweep_~left |upsweep_#in~left|) (not (< (+ upsweep_~left 1) upsweep_~right)) (= |upsweep_#in~a.base| upsweep_~a.base))} is VALID [2022-02-20 18:19:09,773 INFO L290 TraceCheckUtils]: 36: Hoare triple {2106#(and (= |#memory_int| |old(#memory_int)|) (<= |upsweep_#in~right| upsweep_~right) (<= upsweep_~left |upsweep_#in~left|) (not (< (+ upsweep_~left 1) upsweep_~right)) (= |upsweep_#in~a.base| upsweep_~a.base))} call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call write~int(#t~mem5 + #t~mem6, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem5;havoc #t~mem6; {2110#(exists ((upsweep_~left Int) (upsweep_~right Int) (upsweep_~a.offset Int)) (and (<= |upsweep_#in~right| upsweep_~right) (<= upsweep_~left |upsweep_#in~left|) (not (< (+ upsweep_~left 1) upsweep_~right)) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right 4) upsweep_~a.offset) (+ (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~left 4) upsweep_~a.offset)) (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right 4) upsweep_~a.offset))))))))} is VALID [2022-02-20 18:19:09,774 INFO L290 TraceCheckUtils]: 37: Hoare triple {2110#(exists ((upsweep_~left Int) (upsweep_~right Int) (upsweep_~a.offset Int)) (and (<= |upsweep_#in~right| upsweep_~right) (<= upsweep_~left |upsweep_#in~left|) (not (< (+ upsweep_~left 1) upsweep_~right)) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right 4) upsweep_~a.offset) (+ (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~left 4) upsweep_~a.offset)) (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right 4) upsweep_~a.offset))))))))} assume true; {2110#(exists ((upsweep_~left Int) (upsweep_~right Int) (upsweep_~a.offset Int)) (and (<= |upsweep_#in~right| upsweep_~right) (<= upsweep_~left |upsweep_#in~left|) (not (< (+ upsweep_~left 1) upsweep_~right)) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right 4) upsweep_~a.offset) (+ (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~left 4) upsweep_~a.offset)) (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right 4) upsweep_~a.offset))))))))} is VALID [2022-02-20 18:19:09,776 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {2110#(exists ((upsweep_~left Int) (upsweep_~right Int) (upsweep_~a.offset Int)) (and (<= |upsweep_#in~right| upsweep_~right) (<= upsweep_~left |upsweep_#in~left|) (not (< (+ upsweep_~left 1) upsweep_~right)) (= |#memory_int| (store |old(#memory_int)| |upsweep_#in~a.base| (store (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right 4) upsweep_~a.offset) (+ (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~left 4) upsweep_~a.offset)) (select (select |old(#memory_int)| |upsweep_#in~a.base|) (+ (* upsweep_~right 4) upsweep_~a.offset))))))))} {2095#(and (<= |ULTIMATE.start_main_~n~0#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|) (exists ((v_ArrVal_176 Int)) (= (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176))))} #113#return; {2095#(and (<= |ULTIMATE.start_main_~n~0#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|) (exists ((v_ArrVal_176 Int)) (= (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176))))} is VALID [2022-02-20 18:19:09,777 INFO L290 TraceCheckUtils]: 39: Hoare triple {2095#(and (<= |ULTIMATE.start_main_~n~0#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|) (exists ((v_ArrVal_176 Int)) (= (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176))))} call write~int(0, main_~a~0#1.base, main_~a~0#1.offset + 4 * (main_~n~0#1 - 1), 4); {2095#(and (<= |ULTIMATE.start_main_~n~0#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|) (exists ((v_ArrVal_176 Int)) (= (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176))))} is VALID [2022-02-20 18:19:09,777 INFO L272 TraceCheckUtils]: 40: Hoare triple {2095#(and (<= |ULTIMATE.start_main_~n~0#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|) (exists ((v_ArrVal_176 Int)) (= (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176))))} call downsweep(main_~a~0#1.base, main_~a~0#1.offset, (if main_~n~0#1 < 0 && 0 != main_~n~0#1 % 2 then 1 + main_~n~0#1 / 2 else main_~n~0#1 / 2) - 1, main_~n~0#1 - 1); {1979#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-02-20 18:19:09,778 INFO L290 TraceCheckUtils]: 41: Hoare triple {1979#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~left := #in~left;~right := #in~right;call #t~mem7 := read~int(~a.base, ~a.offset + 4 * ~right, 4);~tmp~0 := #t~mem7;havoc #t~mem7;call #t~mem8 := read~int(~a.base, ~a.offset + 4 * ~right, 4);call #t~mem9 := read~int(~a.base, ~a.offset + 4 * ~left, 4);call write~int(#t~mem8 + #t~mem9, ~a.base, ~a.offset + 4 * ~right, 4);havoc #t~mem8;havoc #t~mem9;call write~int(~tmp~0, ~a.base, ~a.offset + 4 * ~left, 4); {2126#(exists ((v_ArrVal_181 Int)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) (+ (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ |downsweep_#in~a.offset| (* |downsweep_#in~left| 4))))) (+ |downsweep_#in~a.offset| (* |downsweep_#in~left| 4)) v_ArrVal_181))))} is VALID [2022-02-20 18:19:09,779 INFO L290 TraceCheckUtils]: 42: Hoare triple {2126#(exists ((v_ArrVal_181 Int)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) (+ (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ |downsweep_#in~a.offset| (* |downsweep_#in~left| 4))))) (+ |downsweep_#in~a.offset| (* |downsweep_#in~left| 4)) v_ArrVal_181))))} assume !(~right > 1 + ~left); {2126#(exists ((v_ArrVal_181 Int)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) (+ (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ |downsweep_#in~a.offset| (* |downsweep_#in~left| 4))))) (+ |downsweep_#in~a.offset| (* |downsweep_#in~left| 4)) v_ArrVal_181))))} is VALID [2022-02-20 18:19:09,780 INFO L290 TraceCheckUtils]: 43: Hoare triple {2126#(exists ((v_ArrVal_181 Int)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) (+ (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ |downsweep_#in~a.offset| (* |downsweep_#in~left| 4))))) (+ |downsweep_#in~a.offset| (* |downsweep_#in~left| 4)) v_ArrVal_181))))} assume true; {2126#(exists ((v_ArrVal_181 Int)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) (+ (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ |downsweep_#in~a.offset| (* |downsweep_#in~left| 4))))) (+ |downsweep_#in~a.offset| (* |downsweep_#in~left| 4)) v_ArrVal_181))))} is VALID [2022-02-20 18:19:10,443 WARN L284 TraceCheckUtils]: 44: Hoare quadruple {2126#(exists ((v_ArrVal_181 Int)) (= |#memory_int| (store |old(#memory_int)| |downsweep_#in~a.base| (store (store (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|) (+ (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ (* |downsweep_#in~right| 4) |downsweep_#in~a.offset|)) (select (select |old(#memory_int)| |downsweep_#in~a.base|) (+ |downsweep_#in~a.offset| (* |downsweep_#in~left| 4))))) (+ |downsweep_#in~a.offset| (* |downsweep_#in~left| 4)) v_ArrVal_181))))} {2095#(and (<= |ULTIMATE.start_main_~n~0#1| 2) (= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|) (exists ((v_ArrVal_176 Int)) (= (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176))))} #115#return; {2136#(and (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (exists ((v_ArrVal_181 Int) (|ULTIMATE.start_main_~n~0#1| Int)) (and (<= |ULTIMATE.start_main_~n~0#1| 2) (= (store (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a~0#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a~0#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4))) (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a~0#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4))))) (+ |ULTIMATE.start_main_~a~0#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4)) v_ArrVal_181) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|))) (exists ((v_ArrVal_176 Int)) (= (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176))))} is UNKNOWN [2022-02-20 18:19:10,454 INFO L290 TraceCheckUtils]: 45: Hoare triple {2136#(and (not (= |ULTIMATE.start_main_~a0~0#1.base| |ULTIMATE.start_main_~a~0#1.base|)) (exists ((v_ArrVal_181 Int) (|ULTIMATE.start_main_~n~0#1| Int)) (and (<= |ULTIMATE.start_main_~n~0#1| 2) (= (store (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a~0#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a~0#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4))) (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a~0#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4))))) (+ |ULTIMATE.start_main_~a~0#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4)) v_ArrVal_181) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|))) (exists ((v_ArrVal_176 Int)) (= (select |#memory_int| |ULTIMATE.start_main_~a0~0#1.base|) (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176))))} assume { :begin_inline_check } true;check_#in~a0#1.base, check_#in~a0#1.offset, check_#in~a#1.base, check_#in~a#1.offset, check_#in~n#1 := main_~a0~0#1.base, main_~a0~0#1.offset, main_~a~0#1.base, main_~a~0#1.offset, main_~n~0#1;havoc check_#t~mem11#1, check_#t~mem12#1, check_#t~post10#1, check_~a0#1.base, check_~a0#1.offset, check_~a#1.base, check_~a#1.offset, check_~n#1, check_~i~0#1, check_~sum~0#1;check_~a0#1.base, check_~a0#1.offset := check_#in~a0#1.base, check_#in~a0#1.offset;check_~a#1.base, check_~a#1.offset := check_#in~a#1.base, check_#in~a#1.offset;check_~n#1 := check_#in~n#1;havoc check_~i~0#1;check_~sum~0#1 := 0;check_~i~0#1 := 0; {2140#(and (not (= |ULTIMATE.start_check_~a#1.base| |ULTIMATE.start_check_~a0#1.base|)) (exists ((v_ArrVal_181 Int) (|ULTIMATE.start_main_~n~0#1| Int)) (and (<= |ULTIMATE.start_main_~n~0#1| 2) (= (store (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4))) (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4))))) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4)) v_ArrVal_181) (select |#memory_int| |ULTIMATE.start_check_~a#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|))) (= |ULTIMATE.start_check_~sum~0#1| 0) (= |ULTIMATE.start_check_~i~0#1| 0) (exists ((v_ArrVal_176 Int) (|ULTIMATE.start_main_~a0~0#1.offset| Int)) (and (<= |ULTIMATE.start_check_~a0#1.offset| |ULTIMATE.start_main_~a0~0#1.offset|) (= (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176) (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|)))))} is VALID [2022-02-20 18:19:10,456 INFO L290 TraceCheckUtils]: 46: Hoare triple {2140#(and (not (= |ULTIMATE.start_check_~a#1.base| |ULTIMATE.start_check_~a0#1.base|)) (exists ((v_ArrVal_181 Int) (|ULTIMATE.start_main_~n~0#1| Int)) (and (<= |ULTIMATE.start_main_~n~0#1| 2) (= (store (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4))) (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4))))) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4)) v_ArrVal_181) (select |#memory_int| |ULTIMATE.start_check_~a#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|))) (= |ULTIMATE.start_check_~sum~0#1| 0) (= |ULTIMATE.start_check_~i~0#1| 0) (exists ((v_ArrVal_176 Int) (|ULTIMATE.start_main_~a0~0#1.offset| Int)) (and (<= |ULTIMATE.start_check_~a0#1.offset| |ULTIMATE.start_main_~a0~0#1.offset|) (= (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176) (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|)))))} assume !!(check_~i~0#1 < check_~n#1);call check_#t~mem11#1 := read~int(check_~a#1.base, check_~a#1.offset + 4 * check_~i~0#1, 4);assume { :begin_inline___VERIFIER_assert } true;__VERIFIER_assert_#in~cond#1 := (if check_~sum~0#1 == check_#t~mem11#1 then 1 else 0);havoc __VERIFIER_assert_~cond#1;__VERIFIER_assert_~cond#1 := __VERIFIER_assert_#in~cond#1; {2140#(and (not (= |ULTIMATE.start_check_~a#1.base| |ULTIMATE.start_check_~a0#1.base|)) (exists ((v_ArrVal_181 Int) (|ULTIMATE.start_main_~n~0#1| Int)) (and (<= |ULTIMATE.start_main_~n~0#1| 2) (= (store (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4))) (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4))))) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4)) v_ArrVal_181) (select |#memory_int| |ULTIMATE.start_check_~a#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|))) (= |ULTIMATE.start_check_~sum~0#1| 0) (= |ULTIMATE.start_check_~i~0#1| 0) (exists ((v_ArrVal_176 Int) (|ULTIMATE.start_main_~a0~0#1.offset| Int)) (and (<= |ULTIMATE.start_check_~a0#1.offset| |ULTIMATE.start_main_~a0~0#1.offset|) (= (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176) (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|)))))} is VALID [2022-02-20 18:19:10,457 INFO L290 TraceCheckUtils]: 47: Hoare triple {2140#(and (not (= |ULTIMATE.start_check_~a#1.base| |ULTIMATE.start_check_~a0#1.base|)) (exists ((v_ArrVal_181 Int) (|ULTIMATE.start_main_~n~0#1| Int)) (and (<= |ULTIMATE.start_main_~n~0#1| 2) (= (store (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4))) (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4))))) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4)) v_ArrVal_181) (select |#memory_int| |ULTIMATE.start_check_~a#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|))) (= |ULTIMATE.start_check_~sum~0#1| 0) (= |ULTIMATE.start_check_~i~0#1| 0) (exists ((v_ArrVal_176 Int) (|ULTIMATE.start_main_~a0~0#1.offset| Int)) (and (<= |ULTIMATE.start_check_~a0#1.offset| |ULTIMATE.start_main_~a0~0#1.offset|) (= (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176) (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|)))))} assume !(0 == __VERIFIER_assert_~cond#1); {2140#(and (not (= |ULTIMATE.start_check_~a#1.base| |ULTIMATE.start_check_~a0#1.base|)) (exists ((v_ArrVal_181 Int) (|ULTIMATE.start_main_~n~0#1| Int)) (and (<= |ULTIMATE.start_main_~n~0#1| 2) (= (store (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4))) (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4))))) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4)) v_ArrVal_181) (select |#memory_int| |ULTIMATE.start_check_~a#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|))) (= |ULTIMATE.start_check_~sum~0#1| 0) (= |ULTIMATE.start_check_~i~0#1| 0) (exists ((v_ArrVal_176 Int) (|ULTIMATE.start_main_~a0~0#1.offset| Int)) (and (<= |ULTIMATE.start_check_~a0#1.offset| |ULTIMATE.start_main_~a0~0#1.offset|) (= (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176) (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|)))))} is VALID [2022-02-20 18:19:10,460 INFO L290 TraceCheckUtils]: 48: Hoare triple {2140#(and (not (= |ULTIMATE.start_check_~a#1.base| |ULTIMATE.start_check_~a0#1.base|)) (exists ((v_ArrVal_181 Int) (|ULTIMATE.start_main_~n~0#1| Int)) (and (<= |ULTIMATE.start_main_~n~0#1| 2) (= (store (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4))) (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4))))) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4)) v_ArrVal_181) (select |#memory_int| |ULTIMATE.start_check_~a#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|))) (= |ULTIMATE.start_check_~sum~0#1| 0) (= |ULTIMATE.start_check_~i~0#1| 0) (exists ((v_ArrVal_176 Int) (|ULTIMATE.start_main_~a0~0#1.offset| Int)) (and (<= |ULTIMATE.start_check_~a0#1.offset| |ULTIMATE.start_main_~a0~0#1.offset|) (= (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176) (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|)))))} assume { :end_inline___VERIFIER_assert } true;havoc check_#t~mem11#1;call check_#t~mem12#1 := read~int(check_~a0#1.base, check_~a0#1.offset + 4 * check_~i~0#1, 4);check_~sum~0#1 := check_~sum~0#1 + check_#t~mem12#1;havoc check_#t~mem12#1; {2150#(and (exists ((|ULTIMATE.start_check_~a0#1.offset| Int) (v_ArrVal_176 Int) (|ULTIMATE.start_main_~a0~0#1.offset| Int) (|ULTIMATE.start_check_~a0#1.base| Int)) (and (<= |ULTIMATE.start_check_~a0#1.offset| |ULTIMATE.start_main_~a0~0#1.offset|) (not (= |ULTIMATE.start_check_~a#1.base| |ULTIMATE.start_check_~a0#1.base|)) (= (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176) (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|)) (= |ULTIMATE.start_check_~sum~0#1| (select (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|) (+ (* |ULTIMATE.start_check_~i~0#1| 4) |ULTIMATE.start_check_~a0#1.offset|))))) (exists ((v_ArrVal_181 Int) (|ULTIMATE.start_main_~n~0#1| Int)) (and (<= |ULTIMATE.start_main_~n~0#1| 2) (= (store (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4))) (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4))))) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4)) v_ArrVal_181) (select |#memory_int| |ULTIMATE.start_check_~a#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|))) (= |ULTIMATE.start_check_~i~0#1| 0))} is VALID [2022-02-20 18:19:10,462 INFO L290 TraceCheckUtils]: 49: Hoare triple {2150#(and (exists ((|ULTIMATE.start_check_~a0#1.offset| Int) (v_ArrVal_176 Int) (|ULTIMATE.start_main_~a0~0#1.offset| Int) (|ULTIMATE.start_check_~a0#1.base| Int)) (and (<= |ULTIMATE.start_check_~a0#1.offset| |ULTIMATE.start_main_~a0~0#1.offset|) (not (= |ULTIMATE.start_check_~a#1.base| |ULTIMATE.start_check_~a0#1.base|)) (= (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176) (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|)) (= |ULTIMATE.start_check_~sum~0#1| (select (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|) (+ (* |ULTIMATE.start_check_~i~0#1| 4) |ULTIMATE.start_check_~a0#1.offset|))))) (exists ((v_ArrVal_181 Int) (|ULTIMATE.start_main_~n~0#1| Int)) (and (<= |ULTIMATE.start_main_~n~0#1| 2) (= (store (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4))) (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4))))) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4)) v_ArrVal_181) (select |#memory_int| |ULTIMATE.start_check_~a#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|))) (= |ULTIMATE.start_check_~i~0#1| 0))} check_#t~post10#1 := check_~i~0#1;check_~i~0#1 := 1 + check_#t~post10#1;havoc check_#t~post10#1; {2154#(and (exists ((|ULTIMATE.start_check_~a0#1.offset| Int) (v_ArrVal_176 Int) (|ULTIMATE.start_main_~a0~0#1.offset| Int) (|ULTIMATE.start_check_~a0#1.base| Int)) (and (<= |ULTIMATE.start_check_~a0#1.offset| |ULTIMATE.start_main_~a0~0#1.offset|) (not (= |ULTIMATE.start_check_~a#1.base| |ULTIMATE.start_check_~a0#1.base|)) (= (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176) (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|)) (= (select (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|) (+ (- 4) (* |ULTIMATE.start_check_~i~0#1| 4) |ULTIMATE.start_check_~a0#1.offset|)) |ULTIMATE.start_check_~sum~0#1|))) (exists ((v_ArrVal_181 Int) (|ULTIMATE.start_main_~n~0#1| Int)) (and (<= |ULTIMATE.start_main_~n~0#1| 2) (= (store (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4))) (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4))))) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4)) v_ArrVal_181) (select |#memory_int| |ULTIMATE.start_check_~a#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|))) (= (+ (- 1) |ULTIMATE.start_check_~i~0#1|) 0))} is VALID [2022-02-20 18:19:10,463 INFO L290 TraceCheckUtils]: 50: Hoare triple {2154#(and (exists ((|ULTIMATE.start_check_~a0#1.offset| Int) (v_ArrVal_176 Int) (|ULTIMATE.start_main_~a0~0#1.offset| Int) (|ULTIMATE.start_check_~a0#1.base| Int)) (and (<= |ULTIMATE.start_check_~a0#1.offset| |ULTIMATE.start_main_~a0~0#1.offset|) (not (= |ULTIMATE.start_check_~a#1.base| |ULTIMATE.start_check_~a0#1.base|)) (= (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_main_~a0~0#1.offset| 4) v_ArrVal_176) (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|)) (= (select (select |#memory_int| |ULTIMATE.start_check_~a0#1.base|) (+ (- 4) (* |ULTIMATE.start_check_~i~0#1| 4) |ULTIMATE.start_check_~a0#1.offset|)) |ULTIMATE.start_check_~sum~0#1|))) (exists ((v_ArrVal_181 Int) (|ULTIMATE.start_main_~n~0#1| Int)) (and (<= |ULTIMATE.start_main_~n~0#1| 2) (= (store (store ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4)) (+ (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4))) (select ((as const (Array Int Int)) 0) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* |ULTIMATE.start_main_~n~0#1| 4))))) (+ |ULTIMATE.start_check_~a#1.offset| (- 4) (* (div |ULTIMATE.start_main_~n~0#1| 2) 4)) v_ArrVal_181) (select |#memory_int| |ULTIMATE.start_check_~a#1.base|)) (< 1 |ULTIMATE.start_main_~n~0#1|))) (= (+ (- 1) |ULTIMATE.start_check_~i~0#1|) 0))} assume !!(check_~i~0#1 < check_~n#1);call check_#t~mem11#1 := read~int(check_~a#1.base, check_~a#1.offset + 4 * check_~i~0#1, 4);assume { :begin_inline___VERIFIER_assert } true;__VERIFIER_assert_#in~cond#1 := (if check_~sum~0#1 == check_#t~mem11#1 then 1 else 0);havoc __VERIFIER_assert_~cond#1;__VERIFIER_assert_~cond#1 := __VERIFIER_assert_#in~cond#1; {2158#(<= 1 |ULTIMATE.start___VERIFIER_assert_~cond#1|)} is VALID [2022-02-20 18:19:10,464 INFO L290 TraceCheckUtils]: 51: Hoare triple {2158#(<= 1 |ULTIMATE.start___VERIFIER_assert_~cond#1|)} assume 0 == __VERIFIER_assert_~cond#1; {1940#false} is VALID [2022-02-20 18:19:10,464 INFO L290 TraceCheckUtils]: 52: Hoare triple {1940#false} assume !false; {1940#false} is VALID [2022-02-20 18:19:10,464 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2022-02-20 18:19:10,464 INFO L328 TraceCheckSpWp]: Computing backward predicates...