java -ea -Xmx8000000000 -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc ../../../trunk/examples/toolchains/AutomizerCInline_WitnessPrinter.xml -s ../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Bitvector.epf -i ../../../trunk/examples/svcomp/array-tiling/skipped_true-unreach-call.i -------------------------------------------------------------------------------- This is Ultimate 0.1.23-61f4311 [2018-11-23 10:32:35,053 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 10:32:35,056 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 10:32:35,068 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 10:32:35,068 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 10:32:35,069 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 10:32:35,071 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 10:32:35,073 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 10:32:35,074 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 10:32:35,075 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 10:32:35,076 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 10:32:35,076 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 10:32:35,077 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 10:32:35,078 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 10:32:35,080 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 10:32:35,080 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 10:32:35,081 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 10:32:35,083 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 10:32:35,085 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 10:32:35,086 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 10:32:35,088 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 10:32:35,089 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 10:32:35,091 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 10:32:35,091 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 10:32:35,091 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 10:32:35,092 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 10:32:35,093 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 10:32:35,094 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 10:32:35,095 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 10:32:35,096 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 10:32:35,096 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 10:32:35,097 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 10:32:35,097 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 10:32:35,097 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 10:32:35,098 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 10:32:35,099 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 10:32:35,099 INFO L98 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Bitvector.epf [2018-11-23 10:32:35,114 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 10:32:35,114 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 10:32:35,115 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 10:32:35,115 INFO L133 SettingsManager]: * ... calls to implemented procedures=ONLY_FOR_CONCURRENT_PROGRAMS [2018-11-23 10:32:35,115 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-23 10:32:35,116 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-23 10:32:35,116 INFO L133 SettingsManager]: * Use SBE=true [2018-11-23 10:32:35,116 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 10:32:35,116 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 10:32:35,117 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 10:32:35,117 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 10:32:35,117 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 10:32:35,117 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 10:32:35,117 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 10:32:35,118 INFO L133 SettingsManager]: * Use bitvectors instead of ints=true [2018-11-23 10:32:35,118 INFO L133 SettingsManager]: * Memory model=HoenickeLindenmann_4ByteResolution [2018-11-23 10:32:35,118 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 10:32:35,118 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 10:32:35,118 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 10:32:35,119 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 10:32:35,119 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 10:32:35,119 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-23 10:32:35,119 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 10:32:35,119 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-23 10:32:35,120 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 10:32:35,120 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 10:32:35,120 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 10:32:35,120 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 10:32:35,121 INFO L133 SettingsManager]: * Trace refinement strategy=WOLF [2018-11-23 10:32:35,121 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 10:32:35,121 INFO L133 SettingsManager]: * Command for external solver=cvc4nyu --tear-down-incremental --rewrite-divk --print-success --lang smt [2018-11-23 10:32:35,121 INFO L133 SettingsManager]: * Logic for external solver=AUFBV [2018-11-23 10:32:35,121 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-11-23 10:32:35,166 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 10:32:35,179 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 10:32:35,183 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 10:32:35,185 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 10:32:35,185 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 10:32:35,186 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/array-tiling/skipped_true-unreach-call.i [2018-11-23 10:32:35,248 INFO L221 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/4eb5f3e42/a0b99dd563d74a229f04593ef9219e06/FLAG58f87e729 [2018-11-23 10:32:35,732 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 10:32:35,733 INFO L161 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/array-tiling/skipped_true-unreach-call.i [2018-11-23 10:32:35,740 INFO L355 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/4eb5f3e42/a0b99dd563d74a229f04593ef9219e06/FLAG58f87e729 [2018-11-23 10:32:36,111 INFO L363 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/4eb5f3e42/a0b99dd563d74a229f04593ef9219e06 [2018-11-23 10:32:36,122 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 10:32:36,124 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 10:32:36,125 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 10:32:36,125 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 10:32:36,129 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 10:32:36,130 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 10:32:36" (1/1) ... [2018-11-23 10:32:36,133 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@6f93daa6 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:32:36, skipping insertion in model container [2018-11-23 10:32:36,133 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 10:32:36" (1/1) ... [2018-11-23 10:32:36,143 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 10:32:36,165 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 10:32:36,366 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 10:32:36,372 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 10:32:36,409 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 10:32:36,438 INFO L195 MainTranslator]: Completed translation [2018-11-23 10:32:36,439 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:32:36 WrapperNode [2018-11-23 10:32:36,439 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 10:32:36,440 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 10:32:36,440 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 10:32:36,440 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 10:32:36,450 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:32:36" (1/1) ... [2018-11-23 10:32:36,461 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:32:36" (1/1) ... [2018-11-23 10:32:36,469 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 10:32:36,470 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 10:32:36,470 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 10:32:36,470 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 10:32:36,480 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:32:36" (1/1) ... [2018-11-23 10:32:36,480 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:32:36" (1/1) ... [2018-11-23 10:32:36,483 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:32:36" (1/1) ... [2018-11-23 10:32:36,483 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:32:36" (1/1) ... [2018-11-23 10:32:36,497 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:32:36" (1/1) ... [2018-11-23 10:32:36,504 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:32:36" (1/1) ... [2018-11-23 10:32:36,508 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:32:36" (1/1) ... [2018-11-23 10:32:36,514 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 10:32:36,515 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 10:32:36,515 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 10:32:36,515 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 10:32:36,518 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:32:36" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 10:32:36,670 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-23 10:32:36,671 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-23 10:32:36,671 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-23 10:32:36,671 INFO L130 BoogieDeclarations]: Found specification of procedure read~intINTTYPE4 [2018-11-23 10:32:36,671 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 10:32:36,671 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 10:32:36,671 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-23 10:32:36,672 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-23 10:32:36,672 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2018-11-23 10:32:36,672 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2018-11-23 10:32:36,672 INFO L130 BoogieDeclarations]: Found specification of procedure write~intINTTYPE4 [2018-11-23 10:32:36,672 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-23 10:32:37,386 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 10:32:37,386 INFO L280 CfgBuilder]: Removed 2 assue(true) statements. [2018-11-23 10:32:37,386 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 10:32:37 BoogieIcfgContainer [2018-11-23 10:32:37,387 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 10:32:37,388 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-23 10:32:37,388 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-23 10:32:37,391 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-23 10:32:37,392 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 23.11 10:32:36" (1/3) ... [2018-11-23 10:32:37,392 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@16535ce8 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 10:32:37, skipping insertion in model container [2018-11-23 10:32:37,393 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 10:32:36" (2/3) ... [2018-11-23 10:32:37,393 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@16535ce8 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 10:32:37, skipping insertion in model container [2018-11-23 10:32:37,393 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 10:32:37" (3/3) ... [2018-11-23 10:32:37,396 INFO L112 eAbstractionObserver]: Analyzing ICFG skipped_true-unreach-call.i [2018-11-23 10:32:37,406 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-23 10:32:37,415 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-23 10:32:37,433 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-23 10:32:37,465 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-23 10:32:37,466 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-23 10:32:37,466 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-23 10:32:37,466 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-23 10:32:37,467 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-23 10:32:37,467 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-23 10:32:37,467 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-23 10:32:37,468 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-23 10:32:37,468 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-23 10:32:37,486 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states. [2018-11-23 10:32:37,493 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 16 [2018-11-23 10:32:37,493 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:32:37,494 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 10:32:37,496 INFO L423 AbstractCegarLoop]: === Iteration 1 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:32:37,502 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:32:37,503 INFO L82 PathProgramCache]: Analyzing trace with hash -1661916020, now seen corresponding path program 1 times [2018-11-23 10:32:37,508 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:32:37,508 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 2 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:32:37,532 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 10:32:37,597 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:32:37,630 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:32:37,641 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:32:38,064 INFO L256 TraceCheckUtils]: 0: Hoare triple {33#true} call ULTIMATE.init(); {33#true} is VALID [2018-11-23 10:32:38,067 INFO L273 TraceCheckUtils]: 1: Hoare triple {33#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {33#true} is VALID [2018-11-23 10:32:38,068 INFO L273 TraceCheckUtils]: 2: Hoare triple {33#true} assume true; {33#true} is VALID [2018-11-23 10:32:38,069 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {33#true} {33#true} #72#return; {33#true} is VALID [2018-11-23 10:32:38,069 INFO L256 TraceCheckUtils]: 4: Hoare triple {33#true} call #t~ret7 := main(); {33#true} is VALID [2018-11-23 10:32:38,069 INFO L273 TraceCheckUtils]: 5: Hoare triple {33#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {33#true} is VALID [2018-11-23 10:32:38,070 INFO L273 TraceCheckUtils]: 6: Hoare triple {33#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {56#(bvsgt ~SIZE~0 (_ bv1 32))} is VALID [2018-11-23 10:32:38,075 INFO L273 TraceCheckUtils]: 7: Hoare triple {56#(bvsgt ~SIZE~0 (_ bv1 32))} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {60#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:32:38,090 INFO L273 TraceCheckUtils]: 8: Hoare triple {60#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {34#false} is VALID [2018-11-23 10:32:38,091 INFO L273 TraceCheckUtils]: 9: Hoare triple {34#false} ~i~0 := 0bv32; {34#false} is VALID [2018-11-23 10:32:38,091 INFO L273 TraceCheckUtils]: 10: Hoare triple {34#false} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {34#false} is VALID [2018-11-23 10:32:38,091 INFO L256 TraceCheckUtils]: 11: Hoare triple {34#false} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {34#false} is VALID [2018-11-23 10:32:38,092 INFO L273 TraceCheckUtils]: 12: Hoare triple {34#false} ~cond := #in~cond; {34#false} is VALID [2018-11-23 10:32:38,092 INFO L273 TraceCheckUtils]: 13: Hoare triple {34#false} assume 0bv32 == ~cond; {34#false} is VALID [2018-11-23 10:32:38,092 INFO L273 TraceCheckUtils]: 14: Hoare triple {34#false} assume !false; {34#false} is VALID [2018-11-23 10:32:38,096 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 10:32:38,096 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 10:32:38,104 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 10:32:38,105 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-23 10:32:38,112 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 15 [2018-11-23 10:32:38,116 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:32:38,121 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2018-11-23 10:32:38,220 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 15 edges. 15 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:32:38,220 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 10:32:38,229 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 10:32:38,229 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2018-11-23 10:32:38,231 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 4 states. [2018-11-23 10:32:39,017 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:32:39,018 INFO L93 Difference]: Finished difference Result 57 states and 71 transitions. [2018-11-23 10:32:39,018 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2018-11-23 10:32:39,018 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 15 [2018-11-23 10:32:39,019 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:32:39,020 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2018-11-23 10:32:39,032 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 71 transitions. [2018-11-23 10:32:39,033 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2018-11-23 10:32:39,038 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 71 transitions. [2018-11-23 10:32:39,038 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 71 transitions. [2018-11-23 10:32:39,709 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 71 edges. 71 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:32:39,722 INFO L225 Difference]: With dead ends: 57 [2018-11-23 10:32:39,723 INFO L226 Difference]: Without dead ends: 29 [2018-11-23 10:32:39,726 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 12 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2018-11-23 10:32:39,746 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 29 states. [2018-11-23 10:32:39,907 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 29 to 25. [2018-11-23 10:32:39,907 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:32:39,908 INFO L82 GeneralOperation]: Start isEquivalent. First operand 29 states. Second operand 25 states. [2018-11-23 10:32:39,909 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand 25 states. [2018-11-23 10:32:39,909 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 25 states. [2018-11-23 10:32:39,922 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:32:39,922 INFO L93 Difference]: Finished difference Result 29 states and 34 transitions. [2018-11-23 10:32:39,923 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 34 transitions. [2018-11-23 10:32:39,924 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:32:39,924 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:32:39,924 INFO L74 IsIncluded]: Start isIncluded. First operand 25 states. Second operand 29 states. [2018-11-23 10:32:39,925 INFO L87 Difference]: Start difference. First operand 25 states. Second operand 29 states. [2018-11-23 10:32:39,933 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:32:39,933 INFO L93 Difference]: Finished difference Result 29 states and 34 transitions. [2018-11-23 10:32:39,935 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 34 transitions. [2018-11-23 10:32:39,936 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:32:39,936 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:32:39,937 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:32:39,937 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:32:39,937 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 25 states. [2018-11-23 10:32:39,941 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 25 states to 25 states and 28 transitions. [2018-11-23 10:32:39,948 INFO L78 Accepts]: Start accepts. Automaton has 25 states and 28 transitions. Word has length 15 [2018-11-23 10:32:39,949 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:32:39,949 INFO L480 AbstractCegarLoop]: Abstraction has 25 states and 28 transitions. [2018-11-23 10:32:39,950 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 10:32:39,950 INFO L276 IsEmpty]: Start isEmpty. Operand 25 states and 28 transitions. [2018-11-23 10:32:39,952 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 21 [2018-11-23 10:32:39,952 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:32:39,952 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 10:32:39,953 INFO L423 AbstractCegarLoop]: === Iteration 2 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:32:39,953 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:32:39,953 INFO L82 PathProgramCache]: Analyzing trace with hash 505215540, now seen corresponding path program 1 times [2018-11-23 10:32:39,954 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:32:39,954 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 3 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:32:39,982 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 10:32:40,044 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:32:40,077 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:32:40,080 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:32:40,280 INFO L478 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 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-23 10:32:40,289 INFO L478 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 8 treesize of output 7 [2018-11-23 10:32:40,293 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:32:40,301 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:32:40,309 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:32:40,309 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:15, output treesize:11 [2018-11-23 10:32:40,509 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 17 treesize of output 13 [2018-11-23 10:32:40,519 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 10:32:40,520 INFO L478 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 11 [2018-11-23 10:32:40,523 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:32:40,539 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:32:40,547 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:32:40,548 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:20, output treesize:9 [2018-11-23 10:32:40,554 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 10:32:40,554 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (= |main_#t~mem6| (select .cse0 (bvmul (_ bv4 32) main_~i~0))) (= (_ bv0 32) (select .cse0 (_ bv0 32))) (= main_~i~0 (_ bv0 32)))) [2018-11-23 10:32:40,555 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= (bvmul (_ bv4 32) main_~i~0) |main_#t~mem6|) (= main_~i~0 (_ bv0 32))) [2018-11-23 10:32:40,700 INFO L256 TraceCheckUtils]: 0: Hoare triple {242#true} call ULTIMATE.init(); {242#true} is VALID [2018-11-23 10:32:40,700 INFO L273 TraceCheckUtils]: 1: Hoare triple {242#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {242#true} is VALID [2018-11-23 10:32:40,701 INFO L273 TraceCheckUtils]: 2: Hoare triple {242#true} assume true; {242#true} is VALID [2018-11-23 10:32:40,701 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {242#true} {242#true} #72#return; {242#true} is VALID [2018-11-23 10:32:40,702 INFO L256 TraceCheckUtils]: 4: Hoare triple {242#true} call #t~ret7 := main(); {242#true} is VALID [2018-11-23 10:32:40,702 INFO L273 TraceCheckUtils]: 5: Hoare triple {242#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {242#true} is VALID [2018-11-23 10:32:40,703 INFO L273 TraceCheckUtils]: 6: Hoare triple {242#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {265#(= |main_~#a~0.offset| (_ bv0 32))} is VALID [2018-11-23 10:32:40,704 INFO L273 TraceCheckUtils]: 7: Hoare triple {265#(= |main_~#a~0.offset| (_ bv0 32))} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {269#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:32:40,705 INFO L273 TraceCheckUtils]: 8: Hoare triple {269#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {269#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:32:40,707 INFO L273 TraceCheckUtils]: 9: Hoare triple {269#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {276#(and (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= |main_~#a~0.offset| (_ bv0 32)))} is VALID [2018-11-23 10:32:40,707 INFO L273 TraceCheckUtils]: 10: Hoare triple {276#(and (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= |main_~#a~0.offset| (_ bv0 32)))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {276#(and (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= |main_~#a~0.offset| (_ bv0 32)))} is VALID [2018-11-23 10:32:40,710 INFO L273 TraceCheckUtils]: 11: Hoare triple {276#(and (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= |main_~#a~0.offset| (_ bv0 32)))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {276#(and (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= |main_~#a~0.offset| (_ bv0 32)))} is VALID [2018-11-23 10:32:40,711 INFO L273 TraceCheckUtils]: 12: Hoare triple {276#(and (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= |main_~#a~0.offset| (_ bv0 32)))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {276#(and (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= |main_~#a~0.offset| (_ bv0 32)))} is VALID [2018-11-23 10:32:40,712 INFO L273 TraceCheckUtils]: 13: Hoare triple {276#(and (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= |main_~#a~0.offset| (_ bv0 32)))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {276#(and (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= |main_~#a~0.offset| (_ bv0 32)))} is VALID [2018-11-23 10:32:40,713 INFO L273 TraceCheckUtils]: 14: Hoare triple {276#(and (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= |main_~#a~0.offset| (_ bv0 32)))} ~i~0 := 0bv32; {292#(and (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)))} is VALID [2018-11-23 10:32:40,715 INFO L273 TraceCheckUtils]: 15: Hoare triple {292#(and (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {296#(and (= (bvmul (_ bv4 32) main_~i~0) |main_#t~mem6|) (= main_~i~0 (_ bv0 32)))} is VALID [2018-11-23 10:32:40,717 INFO L256 TraceCheckUtils]: 16: Hoare triple {296#(and (= (bvmul (_ bv4 32) main_~i~0) |main_#t~mem6|) (= main_~i~0 (_ bv0 32)))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {300#(= (bvadd |__VERIFIER_assert_#in~cond| (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:32:40,717 INFO L273 TraceCheckUtils]: 17: Hoare triple {300#(= (bvadd |__VERIFIER_assert_#in~cond| (_ bv4294967295 32)) (_ bv0 32))} ~cond := #in~cond; {304#(= (bvadd __VERIFIER_assert_~cond (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:32:40,719 INFO L273 TraceCheckUtils]: 18: Hoare triple {304#(= (bvadd __VERIFIER_assert_~cond (_ bv4294967295 32)) (_ bv0 32))} assume 0bv32 == ~cond; {243#false} is VALID [2018-11-23 10:32:40,719 INFO L273 TraceCheckUtils]: 19: Hoare triple {243#false} assume !false; {243#false} is VALID [2018-11-23 10:32:40,721 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 10:32:40,722 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 10:32:41,000 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 19 treesize of output 17 [2018-11-23 10:32:41,109 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 5 treesize of output 3 [2018-11-23 10:32:41,113 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:32:41,150 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 10:32:41,178 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 10:32:41,178 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:19, output treesize:13 [2018-11-23 10:32:41,183 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 10:32:41,184 WARN L384 uantifierElimination]: Input elimination task: ∀ [|#memory_int|, |main_~#a~0.base|]. (bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) |main_~#a~0.offset|) (_ bv0 32)) [2018-11-23 10:32:41,184 WARN L385 uantifierElimination]: ElimStorePlain result: ∀ []. (and (= (_ bv8 32) (bvmul (_ bv8 32) main_~i~0)) (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)) (_ bv0 32))) [2018-11-23 10:32:41,252 INFO L273 TraceCheckUtils]: 19: Hoare triple {243#false} assume !false; {243#false} is VALID [2018-11-23 10:32:41,253 INFO L273 TraceCheckUtils]: 18: Hoare triple {314#(not (= (_ bv0 32) __VERIFIER_assert_~cond))} assume 0bv32 == ~cond; {243#false} is VALID [2018-11-23 10:32:41,253 INFO L273 TraceCheckUtils]: 17: Hoare triple {318#(not (= |__VERIFIER_assert_#in~cond| (_ bv0 32)))} ~cond := #in~cond; {314#(not (= (_ bv0 32) __VERIFIER_assert_~cond))} is VALID [2018-11-23 10:32:41,254 INFO L256 TraceCheckUtils]: 16: Hoare triple {322#(bvsle |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {318#(not (= |__VERIFIER_assert_#in~cond| (_ bv0 32)))} is VALID [2018-11-23 10:32:41,255 INFO L273 TraceCheckUtils]: 15: Hoare triple {326#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0))) main_~i~0)} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {322#(bvsle |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 10:32:41,257 INFO L273 TraceCheckUtils]: 14: Hoare triple {330#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} ~i~0 := 0bv32; {326#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0))) main_~i~0)} is VALID [2018-11-23 10:32:41,257 INFO L273 TraceCheckUtils]: 13: Hoare triple {330#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {330#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:41,258 INFO L273 TraceCheckUtils]: 12: Hoare triple {330#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {330#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:41,259 INFO L273 TraceCheckUtils]: 11: Hoare triple {330#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {330#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:41,260 INFO L273 TraceCheckUtils]: 10: Hoare triple {330#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {330#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:41,264 INFO L273 TraceCheckUtils]: 9: Hoare triple {346#(and (= (_ bv8 32) (bvmul (_ bv8 32) main_~i~0)) (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)) (_ bv0 32)))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {330#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:41,265 INFO L273 TraceCheckUtils]: 8: Hoare triple {346#(and (= (_ bv8 32) (bvmul (_ bv8 32) main_~i~0)) (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)) (_ bv0 32)))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {346#(and (= (_ bv8 32) (bvmul (_ bv8 32) main_~i~0)) (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)) (_ bv0 32)))} is VALID [2018-11-23 10:32:41,266 INFO L273 TraceCheckUtils]: 7: Hoare triple {242#true} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {346#(and (= (_ bv8 32) (bvmul (_ bv8 32) main_~i~0)) (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)) (_ bv0 32)))} is VALID [2018-11-23 10:32:41,266 INFO L273 TraceCheckUtils]: 6: Hoare triple {242#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {242#true} is VALID [2018-11-23 10:32:41,267 INFO L273 TraceCheckUtils]: 5: Hoare triple {242#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {242#true} is VALID [2018-11-23 10:32:41,267 INFO L256 TraceCheckUtils]: 4: Hoare triple {242#true} call #t~ret7 := main(); {242#true} is VALID [2018-11-23 10:32:41,267 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {242#true} {242#true} #72#return; {242#true} is VALID [2018-11-23 10:32:41,267 INFO L273 TraceCheckUtils]: 2: Hoare triple {242#true} assume true; {242#true} is VALID [2018-11-23 10:32:41,268 INFO L273 TraceCheckUtils]: 1: Hoare triple {242#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {242#true} is VALID [2018-11-23 10:32:41,268 INFO L256 TraceCheckUtils]: 0: Hoare triple {242#true} call ULTIMATE.init(); {242#true} is VALID [2018-11-23 10:32:41,271 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [MP cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (3)] Exception during sending of exit command (exit): Broken pipe [2018-11-23 10:32:41,274 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 10:32:41,274 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 8] total 15 [2018-11-23 10:32:41,276 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 20 [2018-11-23 10:32:41,276 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:32:41,277 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 15 states. [2018-11-23 10:32:41,421 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:32:41,421 INFO L459 AbstractCegarLoop]: Interpolant automaton has 15 states [2018-11-23 10:32:41,421 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2018-11-23 10:32:41,422 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=38, Invalid=172, Unknown=0, NotChecked=0, Total=210 [2018-11-23 10:32:41,422 INFO L87 Difference]: Start difference. First operand 25 states and 28 transitions. Second operand 15 states. [2018-11-23 10:32:44,507 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:32:44,508 INFO L93 Difference]: Finished difference Result 58 states and 69 transitions. [2018-11-23 10:32:44,508 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2018-11-23 10:32:44,508 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 20 [2018-11-23 10:32:44,509 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:32:44,509 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2018-11-23 10:32:44,513 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 69 transitions. [2018-11-23 10:32:44,514 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2018-11-23 10:32:44,518 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 69 transitions. [2018-11-23 10:32:44,518 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states and 69 transitions. [2018-11-23 10:32:44,725 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 69 edges. 69 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:32:44,729 INFO L225 Difference]: With dead ends: 58 [2018-11-23 10:32:44,729 INFO L226 Difference]: Without dead ends: 56 [2018-11-23 10:32:44,731 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 44 GetRequests, 26 SyntacticMatches, 0 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 55 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=76, Invalid=304, Unknown=0, NotChecked=0, Total=380 [2018-11-23 10:32:44,731 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 56 states. [2018-11-23 10:32:44,775 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 56 to 38. [2018-11-23 10:32:44,775 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:32:44,775 INFO L82 GeneralOperation]: Start isEquivalent. First operand 56 states. Second operand 38 states. [2018-11-23 10:32:44,776 INFO L74 IsIncluded]: Start isIncluded. First operand 56 states. Second operand 38 states. [2018-11-23 10:32:44,776 INFO L87 Difference]: Start difference. First operand 56 states. Second operand 38 states. [2018-11-23 10:32:44,784 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:32:44,784 INFO L93 Difference]: Finished difference Result 56 states and 67 transitions. [2018-11-23 10:32:44,784 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 67 transitions. [2018-11-23 10:32:44,786 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:32:44,786 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:32:44,786 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 56 states. [2018-11-23 10:32:44,786 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 56 states. [2018-11-23 10:32:44,792 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:32:44,792 INFO L93 Difference]: Finished difference Result 56 states and 67 transitions. [2018-11-23 10:32:44,793 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 67 transitions. [2018-11-23 10:32:44,794 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:32:44,794 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:32:44,794 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:32:44,794 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:32:44,795 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 38 states. [2018-11-23 10:32:44,797 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 38 states to 38 states and 45 transitions. [2018-11-23 10:32:44,798 INFO L78 Accepts]: Start accepts. Automaton has 38 states and 45 transitions. Word has length 20 [2018-11-23 10:32:44,798 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:32:44,798 INFO L480 AbstractCegarLoop]: Abstraction has 38 states and 45 transitions. [2018-11-23 10:32:44,798 INFO L481 AbstractCegarLoop]: Interpolant automaton has 15 states. [2018-11-23 10:32:44,798 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 45 transitions. [2018-11-23 10:32:44,799 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 21 [2018-11-23 10:32:44,799 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:32:44,800 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 10:32:44,800 INFO L423 AbstractCegarLoop]: === Iteration 3 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:32:44,800 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:32:44,801 INFO L82 PathProgramCache]: Analyzing trace with hash 1206280118, now seen corresponding path program 1 times [2018-11-23 10:32:44,805 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:32:44,805 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 4 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:32:44,823 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 10:32:44,866 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:32:44,880 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:32:44,882 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:32:45,076 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 14 [2018-11-23 10:32:45,084 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 10:32:45,086 INFO L478 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 14 treesize of output 10 [2018-11-23 10:32:45,087 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:32:45,110 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:32:45,117 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:32:45,118 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:21, output treesize:8 [2018-11-23 10:32:45,129 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 10:32:45,129 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (= |main_#t~mem6| (select .cse0 (bvmul (_ bv4 32) main_~i~0))) (not (bvsgt (select .cse0 (_ bv0 32)) (_ bv0 32))) (= main_~i~0 (_ bv0 32)))) [2018-11-23 10:32:45,129 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (not (bvsgt |main_#t~mem6| (_ bv0 32))) (= main_~i~0 (_ bv0 32))) [2018-11-23 10:32:45,186 INFO L256 TraceCheckUtils]: 0: Hoare triple {624#true} call ULTIMATE.init(); {624#true} is VALID [2018-11-23 10:32:45,186 INFO L273 TraceCheckUtils]: 1: Hoare triple {624#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {624#true} is VALID [2018-11-23 10:32:45,187 INFO L273 TraceCheckUtils]: 2: Hoare triple {624#true} assume true; {624#true} is VALID [2018-11-23 10:32:45,187 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {624#true} {624#true} #72#return; {624#true} is VALID [2018-11-23 10:32:45,188 INFO L256 TraceCheckUtils]: 4: Hoare triple {624#true} call #t~ret7 := main(); {624#true} is VALID [2018-11-23 10:32:45,188 INFO L273 TraceCheckUtils]: 5: Hoare triple {624#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {624#true} is VALID [2018-11-23 10:32:45,189 INFO L273 TraceCheckUtils]: 6: Hoare triple {624#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {647#(= |main_~#a~0.offset| (_ bv0 32))} is VALID [2018-11-23 10:32:45,191 INFO L273 TraceCheckUtils]: 7: Hoare triple {647#(= |main_~#a~0.offset| (_ bv0 32))} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {651#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:32:45,192 INFO L273 TraceCheckUtils]: 8: Hoare triple {651#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {655#(and (= (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) |main_#t~mem3|) (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:32:45,194 INFO L273 TraceCheckUtils]: 9: Hoare triple {655#(and (= (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) |main_#t~mem3|) (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3; {659#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= |main_~#a~0.offset| (_ bv0 32)))} is VALID [2018-11-23 10:32:45,196 INFO L273 TraceCheckUtils]: 10: Hoare triple {659#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= |main_~#a~0.offset| (_ bv0 32)))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {659#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= |main_~#a~0.offset| (_ bv0 32)))} is VALID [2018-11-23 10:32:45,198 INFO L273 TraceCheckUtils]: 11: Hoare triple {659#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= |main_~#a~0.offset| (_ bv0 32)))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {659#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= |main_~#a~0.offset| (_ bv0 32)))} is VALID [2018-11-23 10:32:45,200 INFO L273 TraceCheckUtils]: 12: Hoare triple {659#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= |main_~#a~0.offset| (_ bv0 32)))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {659#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= |main_~#a~0.offset| (_ bv0 32)))} is VALID [2018-11-23 10:32:45,214 INFO L273 TraceCheckUtils]: 13: Hoare triple {659#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= |main_~#a~0.offset| (_ bv0 32)))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {659#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= |main_~#a~0.offset| (_ bv0 32)))} is VALID [2018-11-23 10:32:45,215 INFO L273 TraceCheckUtils]: 14: Hoare triple {659#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= |main_~#a~0.offset| (_ bv0 32)))} ~i~0 := 0bv32; {675#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)))} is VALID [2018-11-23 10:32:45,217 INFO L273 TraceCheckUtils]: 15: Hoare triple {675#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {679#(and (not (bvsgt |main_#t~mem6| (_ bv0 32))) (= main_~i~0 (_ bv0 32)))} is VALID [2018-11-23 10:32:45,218 INFO L256 TraceCheckUtils]: 16: Hoare triple {679#(and (not (bvsgt |main_#t~mem6| (_ bv0 32))) (= main_~i~0 (_ bv0 32)))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {683#(= (bvadd |__VERIFIER_assert_#in~cond| (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:32:45,218 INFO L273 TraceCheckUtils]: 17: Hoare triple {683#(= (bvadd |__VERIFIER_assert_#in~cond| (_ bv4294967295 32)) (_ bv0 32))} ~cond := #in~cond; {687#(= (bvadd __VERIFIER_assert_~cond (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:32:45,219 INFO L273 TraceCheckUtils]: 18: Hoare triple {687#(= (bvadd __VERIFIER_assert_~cond (_ bv4294967295 32)) (_ bv0 32))} assume 0bv32 == ~cond; {625#false} is VALID [2018-11-23 10:32:45,220 INFO L273 TraceCheckUtils]: 19: Hoare triple {625#false} assume !false; {625#false} is VALID [2018-11-23 10:32:45,223 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 10:32:45,223 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 10:32:45,463 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 24 treesize of output 20 [2018-11-23 10:32:45,498 INFO L478 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 20 treesize of output 24 [2018-11-23 10:32:45,507 INFO L267 ElimStorePlain]: Start of recursive call 3: 2 dim-0 vars, End of recursive call: 2 dim-0 vars, and 2 xjuncts. [2018-11-23 10:32:45,534 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 2 xjuncts. [2018-11-23 10:32:45,560 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: 2 dim-0 vars, and 2 xjuncts. [2018-11-23 10:32:45,561 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:24, output treesize:28 [2018-11-23 10:32:45,568 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 10:32:45,569 WARN L384 uantifierElimination]: Input elimination task: ∀ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (or (bvsgt (select .cse0 (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) (bvsle (select .cse0 |main_~#a~0.offset|) (_ bv0 32)))) [2018-11-23 10:32:45,569 WARN L385 uantifierElimination]: ElimStorePlain result: ∀ [v_arrayElimCell_7, v_prenex_1]. (let ((.cse0 (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)))) (and (or (bvsle v_prenex_1 (_ bv0 32)) (bvsgt v_prenex_1 .cse0)) (or (bvsgt v_arrayElimCell_7 .cse0) (= |main_~#a~0.offset| (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)))))) [2018-11-23 10:32:45,698 INFO L273 TraceCheckUtils]: 19: Hoare triple {625#false} assume !false; {625#false} is VALID [2018-11-23 10:32:45,699 INFO L273 TraceCheckUtils]: 18: Hoare triple {697#(not (= (_ bv0 32) __VERIFIER_assert_~cond))} assume 0bv32 == ~cond; {625#false} is VALID [2018-11-23 10:32:45,699 INFO L273 TraceCheckUtils]: 17: Hoare triple {701#(not (= |__VERIFIER_assert_#in~cond| (_ bv0 32)))} ~cond := #in~cond; {697#(not (= (_ bv0 32) __VERIFIER_assert_~cond))} is VALID [2018-11-23 10:32:45,700 INFO L256 TraceCheckUtils]: 16: Hoare triple {705#(bvsle |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {701#(not (= |__VERIFIER_assert_#in~cond| (_ bv0 32)))} is VALID [2018-11-23 10:32:45,703 INFO L273 TraceCheckUtils]: 15: Hoare triple {709#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0))) main_~i~0)} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {705#(bvsle |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 10:32:45,704 INFO L273 TraceCheckUtils]: 14: Hoare triple {713#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} ~i~0 := 0bv32; {709#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0))) main_~i~0)} is VALID [2018-11-23 10:32:45,705 INFO L273 TraceCheckUtils]: 13: Hoare triple {713#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {713#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:45,706 INFO L273 TraceCheckUtils]: 12: Hoare triple {713#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {713#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:45,706 INFO L273 TraceCheckUtils]: 11: Hoare triple {713#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {713#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:45,707 INFO L273 TraceCheckUtils]: 10: Hoare triple {713#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {713#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:45,708 INFO L273 TraceCheckUtils]: 9: Hoare triple {729#(or (bvsgt |main_#t~mem3| (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) (bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)))} assume !~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3; {713#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:45,729 INFO L273 TraceCheckUtils]: 8: Hoare triple {733#(and (= (_ bv8 32) (bvmul (_ bv8 32) main_~i~0)) (forall ((v_prenex_1 (_ BitVec 32))) (or (bvsle v_prenex_1 (_ bv0 32)) (bvsgt v_prenex_1 (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))))))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {729#(or (bvsgt |main_#t~mem3| (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) (bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)))} is VALID [2018-11-23 10:32:45,730 INFO L273 TraceCheckUtils]: 7: Hoare triple {624#true} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {733#(and (= (_ bv8 32) (bvmul (_ bv8 32) main_~i~0)) (forall ((v_prenex_1 (_ BitVec 32))) (or (bvsle v_prenex_1 (_ bv0 32)) (bvsgt v_prenex_1 (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))))))} is VALID [2018-11-23 10:32:45,730 INFO L273 TraceCheckUtils]: 6: Hoare triple {624#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {624#true} is VALID [2018-11-23 10:32:45,730 INFO L273 TraceCheckUtils]: 5: Hoare triple {624#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {624#true} is VALID [2018-11-23 10:32:45,731 INFO L256 TraceCheckUtils]: 4: Hoare triple {624#true} call #t~ret7 := main(); {624#true} is VALID [2018-11-23 10:32:45,731 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {624#true} {624#true} #72#return; {624#true} is VALID [2018-11-23 10:32:45,731 INFO L273 TraceCheckUtils]: 2: Hoare triple {624#true} assume true; {624#true} is VALID [2018-11-23 10:32:45,732 INFO L273 TraceCheckUtils]: 1: Hoare triple {624#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {624#true} is VALID [2018-11-23 10:32:45,732 INFO L256 TraceCheckUtils]: 0: Hoare triple {624#true} call ULTIMATE.init(); {624#true} is VALID [2018-11-23 10:32:45,733 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 10:32:45,736 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 10:32:45,736 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 9] total 17 [2018-11-23 10:32:45,737 INFO L78 Accepts]: Start accepts. Automaton has 17 states. Word has length 20 [2018-11-23 10:32:45,738 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:32:45,738 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 17 states. [2018-11-23 10:32:47,844 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 32 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2018-11-23 10:32:47,845 INFO L459 AbstractCegarLoop]: Interpolant automaton has 17 states [2018-11-23 10:32:47,845 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2018-11-23 10:32:47,845 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=49, Invalid=223, Unknown=0, NotChecked=0, Total=272 [2018-11-23 10:32:47,846 INFO L87 Difference]: Start difference. First operand 38 states and 45 transitions. Second operand 17 states. [2018-11-23 10:32:51,246 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:32:51,247 INFO L93 Difference]: Finished difference Result 70 states and 84 transitions. [2018-11-23 10:32:51,247 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2018-11-23 10:32:51,247 INFO L78 Accepts]: Start accepts. Automaton has 17 states. Word has length 20 [2018-11-23 10:32:51,247 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:32:51,248 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2018-11-23 10:32:51,252 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 64 transitions. [2018-11-23 10:32:51,252 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2018-11-23 10:32:51,257 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 64 transitions. [2018-11-23 10:32:51,258 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states and 64 transitions. [2018-11-23 10:32:51,470 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:32:51,474 INFO L225 Difference]: With dead ends: 70 [2018-11-23 10:32:51,475 INFO L226 Difference]: Without dead ends: 68 [2018-11-23 10:32:51,475 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 43 GetRequests, 24 SyntacticMatches, 0 SemanticMatches, 19 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 73 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=83, Invalid=337, Unknown=0, NotChecked=0, Total=420 [2018-11-23 10:32:51,476 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 68 states. [2018-11-23 10:32:51,528 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 68 to 38. [2018-11-23 10:32:51,528 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:32:51,528 INFO L82 GeneralOperation]: Start isEquivalent. First operand 68 states. Second operand 38 states. [2018-11-23 10:32:51,528 INFO L74 IsIncluded]: Start isIncluded. First operand 68 states. Second operand 38 states. [2018-11-23 10:32:51,529 INFO L87 Difference]: Start difference. First operand 68 states. Second operand 38 states. [2018-11-23 10:32:51,533 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:32:51,534 INFO L93 Difference]: Finished difference Result 68 states and 82 transitions. [2018-11-23 10:32:51,534 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 82 transitions. [2018-11-23 10:32:51,535 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:32:51,535 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:32:51,536 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 68 states. [2018-11-23 10:32:51,536 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 68 states. [2018-11-23 10:32:51,541 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:32:51,541 INFO L93 Difference]: Finished difference Result 68 states and 82 transitions. [2018-11-23 10:32:51,542 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 82 transitions. [2018-11-23 10:32:51,543 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:32:51,543 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:32:51,543 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:32:51,543 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:32:51,543 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 38 states. [2018-11-23 10:32:51,546 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 38 states to 38 states and 45 transitions. [2018-11-23 10:32:51,546 INFO L78 Accepts]: Start accepts. Automaton has 38 states and 45 transitions. Word has length 20 [2018-11-23 10:32:51,546 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:32:51,546 INFO L480 AbstractCegarLoop]: Abstraction has 38 states and 45 transitions. [2018-11-23 10:32:51,547 INFO L481 AbstractCegarLoop]: Interpolant automaton has 17 states. [2018-11-23 10:32:51,547 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 45 transitions. [2018-11-23 10:32:51,548 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 26 [2018-11-23 10:32:51,548 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:32:51,548 INFO L402 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 10:32:51,548 INFO L423 AbstractCegarLoop]: === Iteration 4 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:32:51,549 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:32:51,549 INFO L82 PathProgramCache]: Analyzing trace with hash -1879607924, now seen corresponding path program 2 times [2018-11-23 10:32:51,549 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:32:51,549 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 5 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:32:51,581 INFO L101 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2018-11-23 10:32:51,672 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-23 10:32:51,672 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 10:32:51,693 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:32:51,695 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:32:51,773 INFO L478 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 0 case distinctions, treesize of input 20 treesize of output 17 [2018-11-23 10:32:51,782 INFO L478 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 17 treesize of output 16 [2018-11-23 10:32:51,785 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:32:51,790 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:32:51,805 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:32:51,805 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:29, output treesize:25 [2018-11-23 10:32:51,930 INFO L478 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 0 case distinctions, treesize of input 23 treesize of output 18 [2018-11-23 10:32:51,990 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:32:51,995 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:32:51,996 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 33 [2018-11-23 10:32:52,003 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:32:52,013 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:32:52,025 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:32:52,025 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:26, output treesize:22 [2018-11-23 10:32:52,204 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 24 treesize of output 18 [2018-11-23 10:32:52,212 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:32:52,213 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 10:32:52,214 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:32:52,216 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 2 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 23 [2018-11-23 10:32:52,218 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:32:52,224 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:32:52,232 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:32:52,232 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:27, output treesize:9 [2018-11-23 10:32:52,238 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 10:32:52,238 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (= |main_#t~mem6| (select .cse0 (bvmul (_ bv4 32) main_~i~0))) (= (_ bv0 32) (select .cse0 (_ bv0 32))) (= (_ bv2 32) (select .cse0 (_ bv8 32))) (= main_~i~0 (_ bv0 32)))) [2018-11-23 10:32:52,239 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= (bvmul (_ bv4 32) main_~i~0) |main_#t~mem6|) (= main_~i~0 (_ bv0 32))) [2018-11-23 10:32:52,286 INFO L256 TraceCheckUtils]: 0: Hoare triple {1046#true} call ULTIMATE.init(); {1046#true} is VALID [2018-11-23 10:32:52,286 INFO L273 TraceCheckUtils]: 1: Hoare triple {1046#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {1046#true} is VALID [2018-11-23 10:32:52,286 INFO L273 TraceCheckUtils]: 2: Hoare triple {1046#true} assume true; {1046#true} is VALID [2018-11-23 10:32:52,286 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1046#true} {1046#true} #72#return; {1046#true} is VALID [2018-11-23 10:32:52,287 INFO L256 TraceCheckUtils]: 4: Hoare triple {1046#true} call #t~ret7 := main(); {1046#true} is VALID [2018-11-23 10:32:52,287 INFO L273 TraceCheckUtils]: 5: Hoare triple {1046#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {1046#true} is VALID [2018-11-23 10:32:52,287 INFO L273 TraceCheckUtils]: 6: Hoare triple {1046#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {1069#(= |main_~#a~0.offset| (_ bv0 32))} is VALID [2018-11-23 10:32:52,288 INFO L273 TraceCheckUtils]: 7: Hoare triple {1069#(= |main_~#a~0.offset| (_ bv0 32))} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {1073#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:32:52,289 INFO L273 TraceCheckUtils]: 8: Hoare triple {1073#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {1073#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:32:52,293 INFO L273 TraceCheckUtils]: 9: Hoare triple {1073#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {1080#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:32:52,295 INFO L273 TraceCheckUtils]: 10: Hoare triple {1080#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {1080#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:32:52,299 INFO L273 TraceCheckUtils]: 11: Hoare triple {1080#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {1080#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:32:52,300 INFO L273 TraceCheckUtils]: 12: Hoare triple {1080#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {1090#(and (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32))) (_ bv4 32)) (bvmul (_ bv2 32) main_~i~0)) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv2 32) main_~i~0))} is VALID [2018-11-23 10:32:52,301 INFO L273 TraceCheckUtils]: 13: Hoare triple {1090#(and (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32))) (_ bv4 32)) (bvmul (_ bv2 32) main_~i~0)) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv2 32) main_~i~0))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {1090#(and (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32))) (_ bv4 32)) (bvmul (_ bv2 32) main_~i~0)) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv2 32) main_~i~0))} is VALID [2018-11-23 10:32:52,302 INFO L273 TraceCheckUtils]: 14: Hoare triple {1090#(and (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32))) (_ bv4 32)) (bvmul (_ bv2 32) main_~i~0)) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv2 32) main_~i~0))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {1097#(and (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} is VALID [2018-11-23 10:32:52,303 INFO L273 TraceCheckUtils]: 15: Hoare triple {1097#(and (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {1097#(and (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} is VALID [2018-11-23 10:32:52,304 INFO L273 TraceCheckUtils]: 16: Hoare triple {1097#(and (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {1097#(and (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} is VALID [2018-11-23 10:32:52,305 INFO L273 TraceCheckUtils]: 17: Hoare triple {1097#(and (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {1097#(and (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} is VALID [2018-11-23 10:32:52,306 INFO L273 TraceCheckUtils]: 18: Hoare triple {1097#(and (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {1097#(and (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} is VALID [2018-11-23 10:32:52,306 INFO L273 TraceCheckUtils]: 19: Hoare triple {1097#(and (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} ~i~0 := 0bv32; {1113#(and (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} is VALID [2018-11-23 10:32:52,309 INFO L273 TraceCheckUtils]: 20: Hoare triple {1113#(and (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {1117#(and (= (bvmul (_ bv4 32) main_~i~0) |main_#t~mem6|) (= main_~i~0 (_ bv0 32)))} is VALID [2018-11-23 10:32:52,310 INFO L256 TraceCheckUtils]: 21: Hoare triple {1117#(and (= (bvmul (_ bv4 32) main_~i~0) |main_#t~mem6|) (= main_~i~0 (_ bv0 32)))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {1121#(= (bvadd |__VERIFIER_assert_#in~cond| (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:32:52,311 INFO L273 TraceCheckUtils]: 22: Hoare triple {1121#(= (bvadd |__VERIFIER_assert_#in~cond| (_ bv4294967295 32)) (_ bv0 32))} ~cond := #in~cond; {1125#(= (bvadd __VERIFIER_assert_~cond (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:32:52,312 INFO L273 TraceCheckUtils]: 23: Hoare triple {1125#(= (bvadd __VERIFIER_assert_~cond (_ bv4294967295 32)) (_ bv0 32))} assume 0bv32 == ~cond; {1047#false} is VALID [2018-11-23 10:32:52,312 INFO L273 TraceCheckUtils]: 24: Hoare triple {1047#false} assume !false; {1047#false} is VALID [2018-11-23 10:32:52,314 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 10:32:52,314 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 10:32:52,617 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 26 [2018-11-23 10:32:52,628 INFO L478 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 30 [2018-11-23 10:32:52,722 INFO L478 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 1 new quantified variables, introduced 1 case distinctions, treesize of input 21 treesize of output 21 [2018-11-23 10:32:52,726 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 2 xjuncts. [2018-11-23 10:32:52,734 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 6 [2018-11-23 10:32:52,736 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 10:32:52,758 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 4 xjuncts. [2018-11-23 10:32:52,791 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 10:32:52,819 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 10:32:52,820 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:28, output treesize:28 [2018-11-23 10:32:52,826 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 10:32:52,826 WARN L384 uantifierElimination]: Input elimination task: ∀ [|#memory_int|, |main_~#a~0.base|]. (bvsle (select (let ((.cse0 (bvmul (_ bv8 32) main_~i~0)) (.cse1 (bvmul (_ bv2 32) main_~i~0))) (store (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| .cse0 (_ bv4294967288 32)) (bvadd .cse1 (_ bv4294967294 32))) (bvadd |main_~#a~0.offset| .cse0) .cse1)) |main_~#a~0.offset|) (_ bv0 32)) [2018-11-23 10:32:52,827 WARN L385 uantifierElimination]: ElimStorePlain result: ∀ []. (and (let ((.cse0 (bvmul (_ bv8 32) main_~i~0))) (or (= |main_~#a~0.offset| (bvadd |main_~#a~0.offset| .cse0 (_ bv4294967288 32))) (= (_ bv0 32) .cse0))) (let ((.cse1 (bvmul (_ bv2 32) main_~i~0))) (or (bvsle (bvadd .cse1 (_ bv4294967294 32)) (_ bv0 32)) (bvsle .cse1 (_ bv0 32))))) [2018-11-23 10:32:52,903 INFO L273 TraceCheckUtils]: 24: Hoare triple {1047#false} assume !false; {1047#false} is VALID [2018-11-23 10:32:52,918 INFO L273 TraceCheckUtils]: 23: Hoare triple {1135#(not (= (_ bv0 32) __VERIFIER_assert_~cond))} assume 0bv32 == ~cond; {1047#false} is VALID [2018-11-23 10:32:52,918 INFO L273 TraceCheckUtils]: 22: Hoare triple {1139#(not (= |__VERIFIER_assert_#in~cond| (_ bv0 32)))} ~cond := #in~cond; {1135#(not (= (_ bv0 32) __VERIFIER_assert_~cond))} is VALID [2018-11-23 10:32:52,919 INFO L256 TraceCheckUtils]: 21: Hoare triple {1143#(bvsle |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {1139#(not (= |__VERIFIER_assert_#in~cond| (_ bv0 32)))} is VALID [2018-11-23 10:32:52,920 INFO L273 TraceCheckUtils]: 20: Hoare triple {1147#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0))) main_~i~0)} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {1143#(bvsle |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 10:32:52,921 INFO L273 TraceCheckUtils]: 19: Hoare triple {1151#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} ~i~0 := 0bv32; {1147#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0))) main_~i~0)} is VALID [2018-11-23 10:32:52,922 INFO L273 TraceCheckUtils]: 18: Hoare triple {1151#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {1151#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:52,923 INFO L273 TraceCheckUtils]: 17: Hoare triple {1151#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {1151#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:52,926 INFO L273 TraceCheckUtils]: 16: Hoare triple {1151#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {1151#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:52,927 INFO L273 TraceCheckUtils]: 15: Hoare triple {1151#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {1151#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:52,956 INFO L273 TraceCheckUtils]: 14: Hoare triple {1167#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) |main_~#a~0.offset|) (_ bv0 32))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {1151#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:52,957 INFO L273 TraceCheckUtils]: 13: Hoare triple {1167#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) |main_~#a~0.offset|) (_ bv0 32))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {1167#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:52,975 INFO L273 TraceCheckUtils]: 12: Hoare triple {1174#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0)) (bvmul (_ bv2 32) main_~i~0)) |main_~#a~0.offset|) (_ bv0 32))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {1167#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:52,990 INFO L273 TraceCheckUtils]: 11: Hoare triple {1174#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0)) (bvmul (_ bv2 32) main_~i~0)) |main_~#a~0.offset|) (_ bv0 32))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {1174#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0)) (bvmul (_ bv2 32) main_~i~0)) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:52,998 INFO L273 TraceCheckUtils]: 10: Hoare triple {1174#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0)) (bvmul (_ bv2 32) main_~i~0)) |main_~#a~0.offset|) (_ bv0 32))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {1174#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0)) (bvmul (_ bv2 32) main_~i~0)) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:53,011 INFO L273 TraceCheckUtils]: 9: Hoare triple {1184#(and (or (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)) (_ bv0 32)) (bvsle (bvmul (_ bv2 32) main_~i~0) (_ bv0 32))) (or (= (_ bv8 32) (bvmul (_ bv8 32) main_~i~0)) (= (_ bv0 32) (bvmul (_ bv8 32) main_~i~0))))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {1174#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0)) (bvmul (_ bv2 32) main_~i~0)) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:32:53,012 INFO L273 TraceCheckUtils]: 8: Hoare triple {1184#(and (or (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)) (_ bv0 32)) (bvsle (bvmul (_ bv2 32) main_~i~0) (_ bv0 32))) (or (= (_ bv8 32) (bvmul (_ bv8 32) main_~i~0)) (= (_ bv0 32) (bvmul (_ bv8 32) main_~i~0))))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {1184#(and (or (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)) (_ bv0 32)) (bvsle (bvmul (_ bv2 32) main_~i~0) (_ bv0 32))) (or (= (_ bv8 32) (bvmul (_ bv8 32) main_~i~0)) (= (_ bv0 32) (bvmul (_ bv8 32) main_~i~0))))} is VALID [2018-11-23 10:32:53,012 INFO L273 TraceCheckUtils]: 7: Hoare triple {1046#true} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {1184#(and (or (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)) (_ bv0 32)) (bvsle (bvmul (_ bv2 32) main_~i~0) (_ bv0 32))) (or (= (_ bv8 32) (bvmul (_ bv8 32) main_~i~0)) (= (_ bv0 32) (bvmul (_ bv8 32) main_~i~0))))} is VALID [2018-11-23 10:32:53,012 INFO L273 TraceCheckUtils]: 6: Hoare triple {1046#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {1046#true} is VALID [2018-11-23 10:32:53,013 INFO L273 TraceCheckUtils]: 5: Hoare triple {1046#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {1046#true} is VALID [2018-11-23 10:32:53,013 INFO L256 TraceCheckUtils]: 4: Hoare triple {1046#true} call #t~ret7 := main(); {1046#true} is VALID [2018-11-23 10:32:53,013 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1046#true} {1046#true} #72#return; {1046#true} is VALID [2018-11-23 10:32:53,013 INFO L273 TraceCheckUtils]: 2: Hoare triple {1046#true} assume true; {1046#true} is VALID [2018-11-23 10:32:53,014 INFO L273 TraceCheckUtils]: 1: Hoare triple {1046#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {1046#true} is VALID [2018-11-23 10:32:53,014 INFO L256 TraceCheckUtils]: 0: Hoare triple {1046#true} call ULTIMATE.init(); {1046#true} is VALID [2018-11-23 10:32:53,016 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 10:32:53,020 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 10:32:53,020 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 10] total 19 [2018-11-23 10:32:53,021 INFO L78 Accepts]: Start accepts. Automaton has 19 states. Word has length 25 [2018-11-23 10:32:53,021 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:32:53,021 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 19 states. [2018-11-23 10:32:53,218 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 43 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:32:53,218 INFO L459 AbstractCegarLoop]: Interpolant automaton has 19 states [2018-11-23 10:32:53,219 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2018-11-23 10:32:53,219 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=62, Invalid=280, Unknown=0, NotChecked=0, Total=342 [2018-11-23 10:32:53,219 INFO L87 Difference]: Start difference. First operand 38 states and 45 transitions. Second operand 19 states. [2018-11-23 10:32:56,003 WARN L180 SmtUtils]: Spent 108.00 ms on a formula simplification. DAG size of input: 38 DAG size of output: 29 [2018-11-23 10:33:01,426 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:33:01,427 INFO L93 Difference]: Finished difference Result 166 states and 215 transitions. [2018-11-23 10:33:01,427 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2018-11-23 10:33:01,427 INFO L78 Accepts]: Start accepts. Automaton has 19 states. Word has length 25 [2018-11-23 10:33:01,427 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:33:01,427 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 19 states. [2018-11-23 10:33:01,439 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 172 transitions. [2018-11-23 10:33:01,440 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 19 states. [2018-11-23 10:33:01,453 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 172 transitions. [2018-11-23 10:33:01,453 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 26 states and 172 transitions. [2018-11-23 10:33:02,987 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 172 edges. 172 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:33:02,994 INFO L225 Difference]: With dead ends: 166 [2018-11-23 10:33:02,994 INFO L226 Difference]: Without dead ends: 164 [2018-11-23 10:33:02,995 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 65 GetRequests, 32 SyntacticMatches, 0 SemanticMatches, 33 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 236 ImplicationChecksByTransitivity, 1.5s TimeCoverageRelationStatistics Valid=260, Invalid=930, Unknown=0, NotChecked=0, Total=1190 [2018-11-23 10:33:02,996 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 164 states. [2018-11-23 10:33:03,138 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 164 to 94. [2018-11-23 10:33:03,139 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:33:03,139 INFO L82 GeneralOperation]: Start isEquivalent. First operand 164 states. Second operand 94 states. [2018-11-23 10:33:03,139 INFO L74 IsIncluded]: Start isIncluded. First operand 164 states. Second operand 94 states. [2018-11-23 10:33:03,139 INFO L87 Difference]: Start difference. First operand 164 states. Second operand 94 states. [2018-11-23 10:33:03,149 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:33:03,149 INFO L93 Difference]: Finished difference Result 164 states and 213 transitions. [2018-11-23 10:33:03,149 INFO L276 IsEmpty]: Start isEmpty. Operand 164 states and 213 transitions. [2018-11-23 10:33:03,151 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:33:03,152 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:33:03,152 INFO L74 IsIncluded]: Start isIncluded. First operand 94 states. Second operand 164 states. [2018-11-23 10:33:03,152 INFO L87 Difference]: Start difference. First operand 94 states. Second operand 164 states. [2018-11-23 10:33:03,162 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:33:03,162 INFO L93 Difference]: Finished difference Result 164 states and 213 transitions. [2018-11-23 10:33:03,162 INFO L276 IsEmpty]: Start isEmpty. Operand 164 states and 213 transitions. [2018-11-23 10:33:03,163 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:33:03,164 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:33:03,164 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:33:03,164 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:33:03,164 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 94 states. [2018-11-23 10:33:03,169 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 94 states to 94 states and 127 transitions. [2018-11-23 10:33:03,169 INFO L78 Accepts]: Start accepts. Automaton has 94 states and 127 transitions. Word has length 25 [2018-11-23 10:33:03,169 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:33:03,169 INFO L480 AbstractCegarLoop]: Abstraction has 94 states and 127 transitions. [2018-11-23 10:33:03,169 INFO L481 AbstractCegarLoop]: Interpolant automaton has 19 states. [2018-11-23 10:33:03,170 INFO L276 IsEmpty]: Start isEmpty. Operand 94 states and 127 transitions. [2018-11-23 10:33:03,170 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 26 [2018-11-23 10:33:03,170 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:33:03,171 INFO L402 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 10:33:03,171 INFO L423 AbstractCegarLoop]: === Iteration 5 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:33:03,171 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:33:03,171 INFO L82 PathProgramCache]: Analyzing trace with hash 1394291018, now seen corresponding path program 1 times [2018-11-23 10:33:03,172 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:33:03,172 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 6 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:33:03,198 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 10:33:03,267 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:33:03,290 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:33:03,291 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:33:03,454 INFO L478 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 0 case distinctions, treesize of input 22 treesize of output 17 [2018-11-23 10:33:03,462 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:03,463 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:03,464 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 17 treesize of output 32 [2018-11-23 10:33:03,468 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:33:03,479 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:33:03,492 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:33:03,493 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:25, output treesize:21 [2018-11-23 10:33:03,606 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 19 [2018-11-23 10:33:03,658 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:03,658 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 10:33:03,660 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:03,661 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 2 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 19 treesize of output 20 [2018-11-23 10:33:03,663 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:33:03,670 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:33:03,676 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:33:03,676 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:28, output treesize:8 [2018-11-23 10:33:03,683 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 10:33:03,683 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (= |main_#t~mem6| (select .cse0 (bvmul (_ bv4 32) main_~i~0))) (not (bvsgt (select .cse0 (_ bv0 32)) (_ bv0 32))) (= (_ bv2 32) (select .cse0 (_ bv8 32))) (= main_~i~0 (_ bv0 32)))) [2018-11-23 10:33:03,683 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (not (bvsgt |main_#t~mem6| (_ bv0 32))) (= main_~i~0 (_ bv0 32))) [2018-11-23 10:33:03,769 INFO L256 TraceCheckUtils]: 0: Hoare triple {1912#true} call ULTIMATE.init(); {1912#true} is VALID [2018-11-23 10:33:03,769 INFO L273 TraceCheckUtils]: 1: Hoare triple {1912#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {1912#true} is VALID [2018-11-23 10:33:03,769 INFO L273 TraceCheckUtils]: 2: Hoare triple {1912#true} assume true; {1912#true} is VALID [2018-11-23 10:33:03,769 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1912#true} {1912#true} #72#return; {1912#true} is VALID [2018-11-23 10:33:03,770 INFO L256 TraceCheckUtils]: 4: Hoare triple {1912#true} call #t~ret7 := main(); {1912#true} is VALID [2018-11-23 10:33:03,770 INFO L273 TraceCheckUtils]: 5: Hoare triple {1912#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {1912#true} is VALID [2018-11-23 10:33:03,771 INFO L273 TraceCheckUtils]: 6: Hoare triple {1912#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {1935#(= |main_~#a~0.offset| (_ bv0 32))} is VALID [2018-11-23 10:33:03,772 INFO L273 TraceCheckUtils]: 7: Hoare triple {1935#(= |main_~#a~0.offset| (_ bv0 32))} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {1939#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:03,772 INFO L273 TraceCheckUtils]: 8: Hoare triple {1939#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {1943#(and (= (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) |main_#t~mem3|) (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:03,773 INFO L273 TraceCheckUtils]: 9: Hoare triple {1943#(and (= (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) |main_#t~mem3|) (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3; {1947#(and (= |main_~#a~0.offset| (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:03,774 INFO L273 TraceCheckUtils]: 10: Hoare triple {1947#(and (= |main_~#a~0.offset| (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {1947#(and (= |main_~#a~0.offset| (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:03,774 INFO L273 TraceCheckUtils]: 11: Hoare triple {1947#(and (= |main_~#a~0.offset| (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {1947#(and (= |main_~#a~0.offset| (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:03,776 INFO L273 TraceCheckUtils]: 12: Hoare triple {1947#(and (= |main_~#a~0.offset| (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {1957#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967292 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv2 32) main_~i~0))} is VALID [2018-11-23 10:33:03,791 INFO L273 TraceCheckUtils]: 13: Hoare triple {1957#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967292 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv2 32) main_~i~0))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {1957#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967292 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv2 32) main_~i~0))} is VALID [2018-11-23 10:33:03,794 INFO L273 TraceCheckUtils]: 14: Hoare triple {1957#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967292 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv2 32) main_~i~0))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {1964#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)))} is VALID [2018-11-23 10:33:03,794 INFO L273 TraceCheckUtils]: 15: Hoare triple {1964#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {1964#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)))} is VALID [2018-11-23 10:33:03,795 INFO L273 TraceCheckUtils]: 16: Hoare triple {1964#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {1964#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)))} is VALID [2018-11-23 10:33:03,795 INFO L273 TraceCheckUtils]: 17: Hoare triple {1964#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {1964#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)))} is VALID [2018-11-23 10:33:03,796 INFO L273 TraceCheckUtils]: 18: Hoare triple {1964#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {1964#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)))} is VALID [2018-11-23 10:33:03,797 INFO L273 TraceCheckUtils]: 19: Hoare triple {1964#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)))} ~i~0 := 0bv32; {1980#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)))} is VALID [2018-11-23 10:33:03,799 INFO L273 TraceCheckUtils]: 20: Hoare triple {1980#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {1984#(and (not (bvsgt |main_#t~mem6| (_ bv0 32))) (= main_~i~0 (_ bv0 32)))} is VALID [2018-11-23 10:33:03,801 INFO L256 TraceCheckUtils]: 21: Hoare triple {1984#(and (not (bvsgt |main_#t~mem6| (_ bv0 32))) (= main_~i~0 (_ bv0 32)))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {1988#(= (bvadd |__VERIFIER_assert_#in~cond| (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:33:03,802 INFO L273 TraceCheckUtils]: 22: Hoare triple {1988#(= (bvadd |__VERIFIER_assert_#in~cond| (_ bv4294967295 32)) (_ bv0 32))} ~cond := #in~cond; {1992#(= (bvadd __VERIFIER_assert_~cond (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:33:03,803 INFO L273 TraceCheckUtils]: 23: Hoare triple {1992#(= (bvadd __VERIFIER_assert_~cond (_ bv4294967295 32)) (_ bv0 32))} assume 0bv32 == ~cond; {1913#false} is VALID [2018-11-23 10:33:03,803 INFO L273 TraceCheckUtils]: 24: Hoare triple {1913#false} assume !false; {1913#false} is VALID [2018-11-23 10:33:03,807 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 10:33:03,807 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 10:33:04,280 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 29 [2018-11-23 10:33:04,357 INFO L478 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 20 treesize of output 24 [2018-11-23 10:33:04,363 INFO L267 ElimStorePlain]: Start of recursive call 3: 2 dim-0 vars, End of recursive call: 2 dim-0 vars, and 2 xjuncts. [2018-11-23 10:33:04,369 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 14 [2018-11-23 10:33:04,371 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-0 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 10:33:04,423 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: 5 dim-0 vars, and 5 xjuncts. [2018-11-23 10:33:04,512 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: 5 dim-0 vars, and 5 xjuncts. [2018-11-23 10:33:04,512 INFO L202 ElimStorePlain]: Needed 4 recursive calls to eliminate 2 variables, input treesize:33, output treesize:94 [2018-11-23 10:33:04,533 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 10:33:04,533 WARN L384 uantifierElimination]: Input elimination task: ∀ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|)) (.cse1 (bvmul (_ bv8 32) main_~i~0)) (.cse2 (bvmul (_ bv2 32) main_~i~0))) (or (bvsgt (select .cse0 (bvadd |main_~#a~0.offset| .cse1 (_ bv4294967288 32))) (bvadd .cse2 (_ bv4294967294 32))) (bvsle (select (store .cse0 (bvadd |main_~#a~0.offset| .cse1) .cse2) |main_~#a~0.offset|) (_ bv0 32)))) [2018-11-23 10:33:04,533 WARN L385 uantifierElimination]: ElimStorePlain result: ∀ [v_arrayElimCell_17, v_prenex_2, v_arrayElimCell_18, v_arrayElimCell_19, v_prenex_3]. (let ((.cse4 (bvmul (_ bv8 32) main_~i~0)) (.cse5 (bvmul (_ bv2 32) main_~i~0))) (let ((.cse2 (bvsle .cse5 (_ bv0 32))) (.cse3 (= |main_~#a~0.offset| (bvadd |main_~#a~0.offset| .cse4 (_ bv4294967288 32)))) (.cse0 (bvadd .cse5 (_ bv4294967294 32))) (.cse1 (= (_ bv0 32) .cse4))) (and (or (bvsgt v_prenex_2 .cse0) (bvsle v_prenex_2 (_ bv0 32)) .cse1) (or (bvsle v_arrayElimCell_18 (_ bv0 32)) (bvsgt v_arrayElimCell_18 .cse0) .cse2) (or .cse3 (bvsgt v_arrayElimCell_17 .cse0) .cse2) (or (not .cse1) (bvsgt v_arrayElimCell_19 .cse0) .cse2) (or .cse3 (bvsgt v_prenex_3 .cse0) .cse1)))) [2018-11-23 10:33:04,727 WARN L180 SmtUtils]: Spent 106.00 ms on a formula simplification. DAG size of input: 37 DAG size of output: 21 [2018-11-23 10:33:04,758 INFO L273 TraceCheckUtils]: 24: Hoare triple {1913#false} assume !false; {1913#false} is VALID [2018-11-23 10:33:04,759 INFO L273 TraceCheckUtils]: 23: Hoare triple {2002#(not (= (_ bv0 32) __VERIFIER_assert_~cond))} assume 0bv32 == ~cond; {1913#false} is VALID [2018-11-23 10:33:04,760 INFO L273 TraceCheckUtils]: 22: Hoare triple {2006#(not (= |__VERIFIER_assert_#in~cond| (_ bv0 32)))} ~cond := #in~cond; {2002#(not (= (_ bv0 32) __VERIFIER_assert_~cond))} is VALID [2018-11-23 10:33:04,762 INFO L256 TraceCheckUtils]: 21: Hoare triple {2010#(bvsle |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {2006#(not (= |__VERIFIER_assert_#in~cond| (_ bv0 32)))} is VALID [2018-11-23 10:33:04,763 INFO L273 TraceCheckUtils]: 20: Hoare triple {2014#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0))) main_~i~0)} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {2010#(bvsle |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 10:33:04,764 INFO L273 TraceCheckUtils]: 19: Hoare triple {2018#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} ~i~0 := 0bv32; {2014#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0))) main_~i~0)} is VALID [2018-11-23 10:33:04,764 INFO L273 TraceCheckUtils]: 18: Hoare triple {2018#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {2018#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:33:04,765 INFO L273 TraceCheckUtils]: 17: Hoare triple {2018#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {2018#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:33:04,766 INFO L273 TraceCheckUtils]: 16: Hoare triple {2018#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {2018#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:33:04,766 INFO L273 TraceCheckUtils]: 15: Hoare triple {2018#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {2018#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:33:04,795 INFO L273 TraceCheckUtils]: 14: Hoare triple {2034#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) |main_~#a~0.offset|) (_ bv0 32))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {2018#(bvsle (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:33:04,796 INFO L273 TraceCheckUtils]: 13: Hoare triple {2034#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) |main_~#a~0.offset|) (_ bv0 32))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {2034#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:33:04,803 INFO L273 TraceCheckUtils]: 12: Hoare triple {2041#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0)) (bvmul (_ bv2 32) main_~i~0)) |main_~#a~0.offset|) (_ bv0 32))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {2034#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:33:04,804 INFO L273 TraceCheckUtils]: 11: Hoare triple {2041#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0)) (bvmul (_ bv2 32) main_~i~0)) |main_~#a~0.offset|) (_ bv0 32))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {2041#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0)) (bvmul (_ bv2 32) main_~i~0)) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:33:04,804 INFO L273 TraceCheckUtils]: 10: Hoare triple {2041#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0)) (bvmul (_ bv2 32) main_~i~0)) |main_~#a~0.offset|) (_ bv0 32))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {2041#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0)) (bvmul (_ bv2 32) main_~i~0)) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:33:04,805 INFO L273 TraceCheckUtils]: 9: Hoare triple {2051#(or (bvsgt |main_#t~mem3| (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) (bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0)) (bvmul (_ bv2 32) main_~i~0)) |main_~#a~0.offset|) (_ bv0 32)))} assume !~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3; {2041#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0)) (bvmul (_ bv2 32) main_~i~0)) |main_~#a~0.offset|) (_ bv0 32))} is VALID [2018-11-23 10:33:06,812 INFO L273 TraceCheckUtils]: 8: Hoare triple {2055#(and (or (= (_ bv0 32) (bvmul (_ bv8 32) main_~i~0)) (forall ((v_prenex_2 (_ BitVec 32))) (or (bvsgt v_prenex_2 (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) (bvsle v_prenex_2 (_ bv0 32))))) (or (not (= (_ bv0 32) (bvmul (_ bv8 32) main_~i~0))) (bvsle (bvmul (_ bv2 32) main_~i~0) (_ bv0 32))) (or (= (_ bv8 32) (bvmul (_ bv8 32) main_~i~0)) (= (_ bv0 32) (bvmul (_ bv8 32) main_~i~0))))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {2051#(or (bvsgt |main_#t~mem3| (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) (bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0)) (bvmul (_ bv2 32) main_~i~0)) |main_~#a~0.offset|) (_ bv0 32)))} is UNKNOWN [2018-11-23 10:33:06,813 INFO L273 TraceCheckUtils]: 7: Hoare triple {1912#true} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {2055#(and (or (= (_ bv0 32) (bvmul (_ bv8 32) main_~i~0)) (forall ((v_prenex_2 (_ BitVec 32))) (or (bvsgt v_prenex_2 (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) (bvsle v_prenex_2 (_ bv0 32))))) (or (not (= (_ bv0 32) (bvmul (_ bv8 32) main_~i~0))) (bvsle (bvmul (_ bv2 32) main_~i~0) (_ bv0 32))) (or (= (_ bv8 32) (bvmul (_ bv8 32) main_~i~0)) (= (_ bv0 32) (bvmul (_ bv8 32) main_~i~0))))} is VALID [2018-11-23 10:33:06,813 INFO L273 TraceCheckUtils]: 6: Hoare triple {1912#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {1912#true} is VALID [2018-11-23 10:33:06,814 INFO L273 TraceCheckUtils]: 5: Hoare triple {1912#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {1912#true} is VALID [2018-11-23 10:33:06,814 INFO L256 TraceCheckUtils]: 4: Hoare triple {1912#true} call #t~ret7 := main(); {1912#true} is VALID [2018-11-23 10:33:06,814 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1912#true} {1912#true} #72#return; {1912#true} is VALID [2018-11-23 10:33:06,814 INFO L273 TraceCheckUtils]: 2: Hoare triple {1912#true} assume true; {1912#true} is VALID [2018-11-23 10:33:06,815 INFO L273 TraceCheckUtils]: 1: Hoare triple {1912#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {1912#true} is VALID [2018-11-23 10:33:06,815 INFO L256 TraceCheckUtils]: 0: Hoare triple {1912#true} call ULTIMATE.init(); {1912#true} is VALID [2018-11-23 10:33:06,818 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 10:33:06,820 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 10:33:06,820 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 11] total 21 [2018-11-23 10:33:06,820 INFO L78 Accepts]: Start accepts. Automaton has 21 states. Word has length 25 [2018-11-23 10:33:06,821 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:33:06,822 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 21 states. [2018-11-23 10:33:09,014 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 42 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2018-11-23 10:33:09,014 INFO L459 AbstractCegarLoop]: Interpolant automaton has 21 states [2018-11-23 10:33:09,014 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2018-11-23 10:33:09,015 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=76, Invalid=344, Unknown=0, NotChecked=0, Total=420 [2018-11-23 10:33:09,015 INFO L87 Difference]: Start difference. First operand 94 states and 127 transitions. Second operand 21 states. [2018-11-23 10:33:11,309 WARN L180 SmtUtils]: Spent 184.00 ms on a formula simplification. DAG size of input: 42 DAG size of output: 33 [2018-11-23 10:33:11,737 WARN L180 SmtUtils]: Spent 216.00 ms on a formula simplification. DAG size of input: 31 DAG size of output: 23 [2018-11-23 10:33:12,114 WARN L180 SmtUtils]: Spent 158.00 ms on a formula simplification. DAG size of input: 44 DAG size of output: 35 [2018-11-23 10:33:18,836 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:33:18,836 INFO L93 Difference]: Finished difference Result 218 states and 292 transitions. [2018-11-23 10:33:18,836 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2018-11-23 10:33:18,836 INFO L78 Accepts]: Start accepts. Automaton has 21 states. Word has length 25 [2018-11-23 10:33:18,837 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:33:18,837 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 21 states. [2018-11-23 10:33:18,842 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 167 transitions. [2018-11-23 10:33:18,842 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 21 states. [2018-11-23 10:33:18,847 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 167 transitions. [2018-11-23 10:33:18,847 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 26 states and 167 transitions. [2018-11-23 10:33:19,576 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 167 edges. 167 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:33:19,583 INFO L225 Difference]: With dead ends: 218 [2018-11-23 10:33:19,583 INFO L226 Difference]: Without dead ends: 216 [2018-11-23 10:33:19,584 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 64 GetRequests, 30 SyntacticMatches, 0 SemanticMatches, 34 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 267 ImplicationChecksByTransitivity, 2.4s TimeCoverageRelationStatistics Valid=276, Invalid=984, Unknown=0, NotChecked=0, Total=1260 [2018-11-23 10:33:19,585 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 216 states. [2018-11-23 10:33:19,760 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 216 to 94. [2018-11-23 10:33:19,761 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:33:19,761 INFO L82 GeneralOperation]: Start isEquivalent. First operand 216 states. Second operand 94 states. [2018-11-23 10:33:19,761 INFO L74 IsIncluded]: Start isIncluded. First operand 216 states. Second operand 94 states. [2018-11-23 10:33:19,761 INFO L87 Difference]: Start difference. First operand 216 states. Second operand 94 states. [2018-11-23 10:33:19,771 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:33:19,771 INFO L93 Difference]: Finished difference Result 216 states and 290 transitions. [2018-11-23 10:33:19,771 INFO L276 IsEmpty]: Start isEmpty. Operand 216 states and 290 transitions. [2018-11-23 10:33:19,772 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:33:19,773 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:33:19,773 INFO L74 IsIncluded]: Start isIncluded. First operand 94 states. Second operand 216 states. [2018-11-23 10:33:19,773 INFO L87 Difference]: Start difference. First operand 94 states. Second operand 216 states. [2018-11-23 10:33:19,783 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:33:19,783 INFO L93 Difference]: Finished difference Result 216 states and 290 transitions. [2018-11-23 10:33:19,783 INFO L276 IsEmpty]: Start isEmpty. Operand 216 states and 290 transitions. [2018-11-23 10:33:19,784 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:33:19,784 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:33:19,785 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:33:19,785 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:33:19,785 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 94 states. [2018-11-23 10:33:19,788 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 94 states to 94 states and 127 transitions. [2018-11-23 10:33:19,789 INFO L78 Accepts]: Start accepts. Automaton has 94 states and 127 transitions. Word has length 25 [2018-11-23 10:33:19,789 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:33:19,789 INFO L480 AbstractCegarLoop]: Abstraction has 94 states and 127 transitions. [2018-11-23 10:33:19,789 INFO L481 AbstractCegarLoop]: Interpolant automaton has 21 states. [2018-11-23 10:33:19,789 INFO L276 IsEmpty]: Start isEmpty. Operand 94 states and 127 transitions. [2018-11-23 10:33:19,790 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 29 [2018-11-23 10:33:19,790 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:33:19,790 INFO L402 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 10:33:19,790 INFO L423 AbstractCegarLoop]: === Iteration 6 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:33:19,791 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:33:19,791 INFO L82 PathProgramCache]: Analyzing trace with hash -114237849, now seen corresponding path program 1 times [2018-11-23 10:33:19,791 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:33:19,791 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 7 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:33:19,816 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 10:33:19,885 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:33:19,908 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:33:19,909 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:33:19,985 INFO L478 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 0 case distinctions, treesize of input 20 treesize of output 17 [2018-11-23 10:33:19,989 INFO L478 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 17 treesize of output 16 [2018-11-23 10:33:19,995 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:33:19,998 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:33:20,011 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:33:20,012 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:29, output treesize:25 [2018-11-23 10:33:20,421 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 19 [2018-11-23 10:33:20,429 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 10:33:20,433 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 19 treesize of output 10 [2018-11-23 10:33:20,435 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:33:20,439 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:33:20,445 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:33:20,446 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:30, output treesize:10 [2018-11-23 10:33:20,452 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 10:33:20,452 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (= |main_#t~mem6| (select .cse0 (bvmul (_ bv4 32) main_~i~0))) (= (_ bv0 32) (select .cse0 (_ bv0 32))) (not (bvsgt (select .cse0 (_ bv4 32)) (_ bv1 32))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))) [2018-11-23 10:33:20,452 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (not (bvsgt |main_#t~mem6| (_ bv1 32))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32))) [2018-11-23 10:33:20,509 INFO L256 TraceCheckUtils]: 0: Hoare triple {2947#true} call ULTIMATE.init(); {2947#true} is VALID [2018-11-23 10:33:20,509 INFO L273 TraceCheckUtils]: 1: Hoare triple {2947#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {2947#true} is VALID [2018-11-23 10:33:20,509 INFO L273 TraceCheckUtils]: 2: Hoare triple {2947#true} assume true; {2947#true} is VALID [2018-11-23 10:33:20,509 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2947#true} {2947#true} #72#return; {2947#true} is VALID [2018-11-23 10:33:20,510 INFO L256 TraceCheckUtils]: 4: Hoare triple {2947#true} call #t~ret7 := main(); {2947#true} is VALID [2018-11-23 10:33:20,510 INFO L273 TraceCheckUtils]: 5: Hoare triple {2947#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {2947#true} is VALID [2018-11-23 10:33:20,510 INFO L273 TraceCheckUtils]: 6: Hoare triple {2947#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {2970#(= |main_~#a~0.offset| (_ bv0 32))} is VALID [2018-11-23 10:33:20,511 INFO L273 TraceCheckUtils]: 7: Hoare triple {2970#(= |main_~#a~0.offset| (_ bv0 32))} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {2974#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:20,516 INFO L273 TraceCheckUtils]: 8: Hoare triple {2974#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {2974#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:20,519 INFO L273 TraceCheckUtils]: 9: Hoare triple {2974#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {2981#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:20,525 INFO L273 TraceCheckUtils]: 10: Hoare triple {2981#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {2985#(and (= (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32))) |main_#t~mem4|) (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:20,530 INFO L273 TraceCheckUtils]: 11: Hoare triple {2985#(and (= (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32))) |main_#t~mem4|) (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {2989#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} is VALID [2018-11-23 10:33:20,531 INFO L273 TraceCheckUtils]: 12: Hoare triple {2989#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {2989#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} is VALID [2018-11-23 10:33:20,545 INFO L273 TraceCheckUtils]: 13: Hoare triple {2989#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {2989#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} is VALID [2018-11-23 10:33:20,546 INFO L273 TraceCheckUtils]: 14: Hoare triple {2989#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} ~i~0 := 0bv32; {2999#(and (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} is VALID [2018-11-23 10:33:20,547 INFO L273 TraceCheckUtils]: 15: Hoare triple {2999#(and (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {2999#(and (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} is VALID [2018-11-23 10:33:20,549 INFO L256 TraceCheckUtils]: 16: Hoare triple {2999#(and (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {3006#(exists ((|v_main_~#a~0.base_BEFORE_CALL_1| (_ BitVec 32))) (and (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) (_ bv4 32)) (_ bv1 32))) (= (_ bv0 32) (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) (_ bv0 32)))))} is VALID [2018-11-23 10:33:20,550 INFO L273 TraceCheckUtils]: 17: Hoare triple {3006#(exists ((|v_main_~#a~0.base_BEFORE_CALL_1| (_ BitVec 32))) (and (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) (_ bv4 32)) (_ bv1 32))) (= (_ bv0 32) (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) (_ bv0 32)))))} ~cond := #in~cond; {3006#(exists ((|v_main_~#a~0.base_BEFORE_CALL_1| (_ BitVec 32))) (and (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) (_ bv4 32)) (_ bv1 32))) (= (_ bv0 32) (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) (_ bv0 32)))))} is VALID [2018-11-23 10:33:20,550 INFO L273 TraceCheckUtils]: 18: Hoare triple {3006#(exists ((|v_main_~#a~0.base_BEFORE_CALL_1| (_ BitVec 32))) (and (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) (_ bv4 32)) (_ bv1 32))) (= (_ bv0 32) (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) (_ bv0 32)))))} assume !(0bv32 == ~cond); {3006#(exists ((|v_main_~#a~0.base_BEFORE_CALL_1| (_ BitVec 32))) (and (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) (_ bv4 32)) (_ bv1 32))) (= (_ bv0 32) (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) (_ bv0 32)))))} is VALID [2018-11-23 10:33:20,550 INFO L273 TraceCheckUtils]: 19: Hoare triple {3006#(exists ((|v_main_~#a~0.base_BEFORE_CALL_1| (_ BitVec 32))) (and (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) (_ bv4 32)) (_ bv1 32))) (= (_ bv0 32) (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) (_ bv0 32)))))} assume true; {3006#(exists ((|v_main_~#a~0.base_BEFORE_CALL_1| (_ BitVec 32))) (and (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) (_ bv4 32)) (_ bv1 32))) (= (_ bv0 32) (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) (_ bv0 32)))))} is VALID [2018-11-23 10:33:20,551 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {3006#(exists ((|v_main_~#a~0.base_BEFORE_CALL_1| (_ BitVec 32))) (and (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) (_ bv4 32)) (_ bv1 32))) (= (_ bv0 32) (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) (_ bv0 32)))))} {2999#(and (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} #76#return; {2999#(and (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} is VALID [2018-11-23 10:33:20,552 INFO L273 TraceCheckUtils]: 21: Hoare triple {2999#(and (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} havoc #t~mem6; {2999#(and (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} is VALID [2018-11-23 10:33:20,552 INFO L273 TraceCheckUtils]: 22: Hoare triple {2999#(and (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} #t~post5 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post5);havoc #t~post5; {3025#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:20,554 INFO L273 TraceCheckUtils]: 23: Hoare triple {3025#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {3029#(and (not (bvsgt |main_#t~mem6| (_ bv1 32))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:20,556 INFO L256 TraceCheckUtils]: 24: Hoare triple {3029#(and (not (bvsgt |main_#t~mem6| (_ bv1 32))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {3033#(= (bvadd |__VERIFIER_assert_#in~cond| (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:33:20,556 INFO L273 TraceCheckUtils]: 25: Hoare triple {3033#(= (bvadd |__VERIFIER_assert_#in~cond| (_ bv4294967295 32)) (_ bv0 32))} ~cond := #in~cond; {3037#(= (bvadd __VERIFIER_assert_~cond (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:33:20,557 INFO L273 TraceCheckUtils]: 26: Hoare triple {3037#(= (bvadd __VERIFIER_assert_~cond (_ bv4294967295 32)) (_ bv0 32))} assume 0bv32 == ~cond; {2948#false} is VALID [2018-11-23 10:33:20,557 INFO L273 TraceCheckUtils]: 27: Hoare triple {2948#false} assume !false; {2948#false} is VALID [2018-11-23 10:33:20,559 INFO L134 CoverageAnalysis]: Checked inductivity of 5 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 10:33:20,559 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 10:33:21,128 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 50 treesize of output 46 [2018-11-23 10:33:21,314 WARN L180 SmtUtils]: Spent 152.00 ms on a formula simplification. DAG size of input: 27 DAG size of output: 19 [2018-11-23 10:33:21,344 INFO L478 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 22 treesize of output 26 [2018-11-23 10:33:21,350 INFO L267 ElimStorePlain]: Start of recursive call 3: 2 dim-0 vars, End of recursive call: 2 dim-0 vars, and 2 xjuncts. [2018-11-23 10:33:21,376 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 2 xjuncts. [2018-11-23 10:33:21,403 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: 2 dim-0 vars, and 2 xjuncts. [2018-11-23 10:33:21,404 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:50, output treesize:30 [2018-11-23 10:33:21,414 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 10:33:21,414 WARN L384 uantifierElimination]: Input elimination task: ∀ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse1 (bvmul (_ bv8 32) main_~i~0)) (.cse2 (bvmul (_ bv2 32) main_~i~0))) (let ((.cse0 (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| .cse1 (_ bv4294967288 32)) (bvadd .cse2 (_ bv4294967294 32))))) (or (bvsgt (select .cse0 (bvadd |main_~#a~0.offset| .cse1 (_ bv4294967292 32))) (bvadd .cse2 (_ bv4294967295 32))) (bvsle (select .cse0 (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))) [2018-11-23 10:33:21,415 WARN L385 uantifierElimination]: ElimStorePlain result: ∀ [v_arrayElimCell_24, v_arrayElimCell_23]. (let ((.cse0 (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32)))) (and (or (bvsgt v_arrayElimCell_24 .cse0) (= (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32)) (bvadd |main_~#a~0.offset| (_ bv4 32)))) (or (bvsgt v_arrayElimCell_23 .cse0) (bvsle v_arrayElimCell_23 (_ bv1 32))))) [2018-11-23 10:33:23,604 INFO L273 TraceCheckUtils]: 27: Hoare triple {2948#false} assume !false; {2948#false} is VALID [2018-11-23 10:33:23,604 INFO L273 TraceCheckUtils]: 26: Hoare triple {3047#(not (= (_ bv0 32) __VERIFIER_assert_~cond))} assume 0bv32 == ~cond; {2948#false} is VALID [2018-11-23 10:33:23,605 INFO L273 TraceCheckUtils]: 25: Hoare triple {3051#(not (= |__VERIFIER_assert_#in~cond| (_ bv0 32)))} ~cond := #in~cond; {3047#(not (= (_ bv0 32) __VERIFIER_assert_~cond))} is VALID [2018-11-23 10:33:23,606 INFO L256 TraceCheckUtils]: 24: Hoare triple {3055#(bvsle |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {3051#(not (= |__VERIFIER_assert_#in~cond| (_ bv0 32)))} is VALID [2018-11-23 10:33:23,607 INFO L273 TraceCheckUtils]: 23: Hoare triple {3059#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0))) main_~i~0)} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {3055#(bvsle |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 10:33:25,622 INFO L273 TraceCheckUtils]: 22: Hoare triple {3063#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} #t~post5 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post5);havoc #t~post5; {3059#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0))) main_~i~0)} is UNKNOWN [2018-11-23 10:33:25,623 INFO L273 TraceCheckUtils]: 21: Hoare triple {3063#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} havoc #t~mem6; {3063#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} is VALID [2018-11-23 10:33:25,624 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {2947#true} {3063#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} #76#return; {3063#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} is VALID [2018-11-23 10:33:25,624 INFO L273 TraceCheckUtils]: 19: Hoare triple {2947#true} assume true; {2947#true} is VALID [2018-11-23 10:33:25,625 INFO L273 TraceCheckUtils]: 18: Hoare triple {2947#true} assume !(0bv32 == ~cond); {2947#true} is VALID [2018-11-23 10:33:25,625 INFO L273 TraceCheckUtils]: 17: Hoare triple {2947#true} ~cond := #in~cond; {2947#true} is VALID [2018-11-23 10:33:25,625 INFO L256 TraceCheckUtils]: 16: Hoare triple {3063#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {2947#true} is VALID [2018-11-23 10:33:25,625 INFO L273 TraceCheckUtils]: 15: Hoare triple {3063#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {3063#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} is VALID [2018-11-23 10:33:25,626 INFO L273 TraceCheckUtils]: 14: Hoare triple {3088#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} ~i~0 := 0bv32; {3063#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} is VALID [2018-11-23 10:33:25,626 INFO L273 TraceCheckUtils]: 13: Hoare triple {3088#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {3088#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} is VALID [2018-11-23 10:33:25,627 INFO L273 TraceCheckUtils]: 12: Hoare triple {3088#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {3088#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} is VALID [2018-11-23 10:33:25,627 INFO L273 TraceCheckUtils]: 11: Hoare triple {3098#(or (bvsgt |main_#t~mem4| (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32)))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {3088#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} is VALID [2018-11-23 10:33:25,628 INFO L273 TraceCheckUtils]: 10: Hoare triple {3102#(or (bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32)) (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {3098#(or (bvsgt |main_#t~mem4| (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32)))} is VALID [2018-11-23 10:33:25,635 INFO L273 TraceCheckUtils]: 9: Hoare triple {3106#(and (= (bvadd (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (_ bv0 32)) (forall ((v_arrayElimCell_23 (_ BitVec 32))) (or (bvsgt v_arrayElimCell_23 (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvsle v_arrayElimCell_23 (_ bv1 32)))))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {3102#(or (bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32)) (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))))} is VALID [2018-11-23 10:33:25,635 INFO L273 TraceCheckUtils]: 8: Hoare triple {3106#(and (= (bvadd (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (_ bv0 32)) (forall ((v_arrayElimCell_23 (_ BitVec 32))) (or (bvsgt v_arrayElimCell_23 (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvsle v_arrayElimCell_23 (_ bv1 32)))))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {3106#(and (= (bvadd (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (_ bv0 32)) (forall ((v_arrayElimCell_23 (_ BitVec 32))) (or (bvsgt v_arrayElimCell_23 (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvsle v_arrayElimCell_23 (_ bv1 32)))))} is VALID [2018-11-23 10:33:25,636 INFO L273 TraceCheckUtils]: 7: Hoare triple {2947#true} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {3106#(and (= (bvadd (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (_ bv0 32)) (forall ((v_arrayElimCell_23 (_ BitVec 32))) (or (bvsgt v_arrayElimCell_23 (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvsle v_arrayElimCell_23 (_ bv1 32)))))} is VALID [2018-11-23 10:33:25,636 INFO L273 TraceCheckUtils]: 6: Hoare triple {2947#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {2947#true} is VALID [2018-11-23 10:33:25,636 INFO L273 TraceCheckUtils]: 5: Hoare triple {2947#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {2947#true} is VALID [2018-11-23 10:33:25,637 INFO L256 TraceCheckUtils]: 4: Hoare triple {2947#true} call #t~ret7 := main(); {2947#true} is VALID [2018-11-23 10:33:25,637 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2947#true} {2947#true} #72#return; {2947#true} is VALID [2018-11-23 10:33:25,637 INFO L273 TraceCheckUtils]: 2: Hoare triple {2947#true} assume true; {2947#true} is VALID [2018-11-23 10:33:25,637 INFO L273 TraceCheckUtils]: 1: Hoare triple {2947#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {2947#true} is VALID [2018-11-23 10:33:25,637 INFO L256 TraceCheckUtils]: 0: Hoare triple {2947#true} call ULTIMATE.init(); {2947#true} is VALID [2018-11-23 10:33:25,639 INFO L134 CoverageAnalysis]: Checked inductivity of 5 backedges. 2 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 10:33:25,642 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 10:33:25,642 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 11] total 22 [2018-11-23 10:33:25,643 INFO L78 Accepts]: Start accepts. Automaton has 22 states. Word has length 28 [2018-11-23 10:33:25,643 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:33:25,643 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 22 states. [2018-11-23 10:33:27,846 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 48 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2018-11-23 10:33:27,846 INFO L459 AbstractCegarLoop]: Interpolant automaton has 22 states [2018-11-23 10:33:27,846 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 22 interpolants. [2018-11-23 10:33:27,847 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=84, Invalid=377, Unknown=1, NotChecked=0, Total=462 [2018-11-23 10:33:27,847 INFO L87 Difference]: Start difference. First operand 94 states and 127 transitions. Second operand 22 states. [2018-11-23 10:33:35,709 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:33:35,709 INFO L93 Difference]: Finished difference Result 218 states and 296 transitions. [2018-11-23 10:33:35,709 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 24 states. [2018-11-23 10:33:35,709 INFO L78 Accepts]: Start accepts. Automaton has 22 states. Word has length 28 [2018-11-23 10:33:35,709 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:33:35,710 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2018-11-23 10:33:35,712 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 24 states to 24 states and 100 transitions. [2018-11-23 10:33:35,713 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2018-11-23 10:33:35,715 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 24 states to 24 states and 100 transitions. [2018-11-23 10:33:35,715 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 24 states and 100 transitions. [2018-11-23 10:33:40,118 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 100 edges. 98 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2018-11-23 10:33:40,126 INFO L225 Difference]: With dead ends: 218 [2018-11-23 10:33:40,126 INFO L226 Difference]: Without dead ends: 216 [2018-11-23 10:33:40,127 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 68 GetRequests, 35 SyntacticMatches, 1 SemanticMatches, 32 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 239 ImplicationChecksByTransitivity, 3.5s TimeCoverageRelationStatistics Valid=205, Invalid=916, Unknown=1, NotChecked=0, Total=1122 [2018-11-23 10:33:40,127 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 216 states. [2018-11-23 10:33:40,551 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 216 to 202. [2018-11-23 10:33:40,552 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:33:40,552 INFO L82 GeneralOperation]: Start isEquivalent. First operand 216 states. Second operand 202 states. [2018-11-23 10:33:40,552 INFO L74 IsIncluded]: Start isIncluded. First operand 216 states. Second operand 202 states. [2018-11-23 10:33:40,552 INFO L87 Difference]: Start difference. First operand 216 states. Second operand 202 states. [2018-11-23 10:33:40,561 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:33:40,561 INFO L93 Difference]: Finished difference Result 216 states and 293 transitions. [2018-11-23 10:33:40,561 INFO L276 IsEmpty]: Start isEmpty. Operand 216 states and 293 transitions. [2018-11-23 10:33:40,562 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:33:40,562 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:33:40,563 INFO L74 IsIncluded]: Start isIncluded. First operand 202 states. Second operand 216 states. [2018-11-23 10:33:40,563 INFO L87 Difference]: Start difference. First operand 202 states. Second operand 216 states. [2018-11-23 10:33:40,572 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:33:40,572 INFO L93 Difference]: Finished difference Result 216 states and 293 transitions. [2018-11-23 10:33:40,572 INFO L276 IsEmpty]: Start isEmpty. Operand 216 states and 293 transitions. [2018-11-23 10:33:40,573 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:33:40,573 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:33:40,573 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:33:40,574 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:33:40,574 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 202 states. [2018-11-23 10:33:40,582 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 202 states to 202 states and 278 transitions. [2018-11-23 10:33:40,582 INFO L78 Accepts]: Start accepts. Automaton has 202 states and 278 transitions. Word has length 28 [2018-11-23 10:33:40,582 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:33:40,582 INFO L480 AbstractCegarLoop]: Abstraction has 202 states and 278 transitions. [2018-11-23 10:33:40,583 INFO L481 AbstractCegarLoop]: Interpolant automaton has 22 states. [2018-11-23 10:33:40,583 INFO L276 IsEmpty]: Start isEmpty. Operand 202 states and 278 transitions. [2018-11-23 10:33:40,584 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 34 [2018-11-23 10:33:40,584 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:33:40,584 INFO L402 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] [2018-11-23 10:33:40,584 INFO L423 AbstractCegarLoop]: === Iteration 7 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:33:40,585 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:33:40,585 INFO L82 PathProgramCache]: Analyzing trace with hash 680707517, now seen corresponding path program 1 times [2018-11-23 10:33:40,585 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:33:40,585 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 8 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:33:40,613 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 10:33:40,745 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:33:40,790 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:33:40,792 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:33:41,144 INFO L478 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 0 case distinctions, treesize of input 20 treesize of output 17 [2018-11-23 10:33:41,149 INFO L478 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 17 treesize of output 16 [2018-11-23 10:33:41,150 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:33:41,154 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:33:41,168 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:33:41,168 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:29, output treesize:25 [2018-11-23 10:33:41,454 INFO L478 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 0 case distinctions, treesize of input 54 treesize of output 47 [2018-11-23 10:33:41,463 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:41,466 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:41,469 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:41,474 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:41,477 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:41,478 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 5 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 47 treesize of output 126 [2018-11-23 10:33:41,481 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:33:41,500 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:33:41,528 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:33:41,528 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:60, output treesize:56 [2018-11-23 10:33:41,637 INFO L478 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 0 case distinctions, treesize of input 42 treesize of output 33 [2018-11-23 10:33:41,648 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:41,650 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:41,652 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:41,655 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:41,657 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:41,659 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:41,661 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:41,664 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:41,667 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:41,673 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:41,675 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:41,676 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 11 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 138 [2018-11-23 10:33:41,679 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:33:41,716 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:33:41,735 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:33:41,736 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:45, output treesize:41 [2018-11-23 10:33:42,072 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 39 treesize of output 29 [2018-11-23 10:33:42,080 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 10:33:42,081 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:42,082 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:42,084 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:42,085 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:42,088 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:33:42,089 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 29 treesize of output 18 [2018-11-23 10:33:42,091 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:33:42,098 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:33:42,104 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:33:42,105 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:44, output treesize:10 [2018-11-23 10:33:42,112 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 10:33:42,112 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (= |main_#t~mem6| (select .cse0 (bvmul (_ bv4 32) main_~i~0))) (= (_ bv0 32) (select .cse0 (_ bv0 32))) (= (_ bv3 32) (select .cse0 (_ bv12 32))) (= (_ bv2 32) (select .cse0 (_ bv8 32))) (not (bvsgt (select .cse0 (_ bv4 32)) (_ bv1 32))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))) [2018-11-23 10:33:42,112 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (not (bvsgt |main_#t~mem6| (_ bv1 32))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32))) [2018-11-23 10:33:42,178 INFO L256 TraceCheckUtils]: 0: Hoare triple {4143#true} call ULTIMATE.init(); {4143#true} is VALID [2018-11-23 10:33:42,178 INFO L273 TraceCheckUtils]: 1: Hoare triple {4143#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {4143#true} is VALID [2018-11-23 10:33:42,179 INFO L273 TraceCheckUtils]: 2: Hoare triple {4143#true} assume true; {4143#true} is VALID [2018-11-23 10:33:42,179 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {4143#true} {4143#true} #72#return; {4143#true} is VALID [2018-11-23 10:33:42,179 INFO L256 TraceCheckUtils]: 4: Hoare triple {4143#true} call #t~ret7 := main(); {4143#true} is VALID [2018-11-23 10:33:42,179 INFO L273 TraceCheckUtils]: 5: Hoare triple {4143#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {4143#true} is VALID [2018-11-23 10:33:42,180 INFO L273 TraceCheckUtils]: 6: Hoare triple {4143#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {4166#(= |main_~#a~0.offset| (_ bv0 32))} is VALID [2018-11-23 10:33:42,181 INFO L273 TraceCheckUtils]: 7: Hoare triple {4166#(= |main_~#a~0.offset| (_ bv0 32))} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {4170#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:42,181 INFO L273 TraceCheckUtils]: 8: Hoare triple {4170#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {4170#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:42,184 INFO L273 TraceCheckUtils]: 9: Hoare triple {4170#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {4177#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:42,185 INFO L273 TraceCheckUtils]: 10: Hoare triple {4177#(and (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {4181#(and (= (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32))) |main_#t~mem4|) (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:42,189 INFO L273 TraceCheckUtils]: 11: Hoare triple {4181#(and (= (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32))) |main_#t~mem4|) (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {4185#(and (= |main_~#a~0.offset| (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32)))) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:42,190 INFO L273 TraceCheckUtils]: 12: Hoare triple {4185#(and (= |main_~#a~0.offset| (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32)))) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4189#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967284 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967293 32)))) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32))) (_ bv4 32)) (bvmul (_ bv2 32) main_~i~0)) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv2 32) main_~i~0))} is VALID [2018-11-23 10:33:42,190 INFO L273 TraceCheckUtils]: 13: Hoare triple {4189#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967284 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967293 32)))) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32))) (_ bv4 32)) (bvmul (_ bv2 32) main_~i~0)) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv2 32) main_~i~0))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {4189#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967284 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967293 32)))) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32))) (_ bv4 32)) (bvmul (_ bv2 32) main_~i~0)) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv2 32) main_~i~0))} is VALID [2018-11-23 10:33:42,193 INFO L273 TraceCheckUtils]: 14: Hoare triple {4189#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967284 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967293 32)))) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32))) (_ bv4 32)) (bvmul (_ bv2 32) main_~i~0)) (= |main_~#a~0.offset| (_ bv0 32)) (= (_ bv2 32) main_~i~0))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {4196#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967284 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967293 32)))) (= (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967292 32)) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (_ bv2 32) main_~i~0))} is VALID [2018-11-23 10:33:42,197 INFO L273 TraceCheckUtils]: 15: Hoare triple {4196#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967284 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967293 32)))) (= (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967292 32)) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (_ bv2 32) main_~i~0))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {4196#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967284 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967293 32)))) (= (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967292 32)) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (_ bv2 32) main_~i~0))} is VALID [2018-11-23 10:33:42,204 INFO L273 TraceCheckUtils]: 16: Hoare triple {4196#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967284 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967293 32)))) (= (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967292 32)) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (_ bv2 32) main_~i~0))} assume ~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {4203#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} is VALID [2018-11-23 10:33:42,206 INFO L273 TraceCheckUtils]: 17: Hoare triple {4203#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4203#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} is VALID [2018-11-23 10:33:42,222 INFO L273 TraceCheckUtils]: 18: Hoare triple {4203#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {4203#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} is VALID [2018-11-23 10:33:42,224 INFO L273 TraceCheckUtils]: 19: Hoare triple {4203#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} ~i~0 := 0bv32; {4213#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} is VALID [2018-11-23 10:33:42,225 INFO L273 TraceCheckUtils]: 20: Hoare triple {4213#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {4213#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} is VALID [2018-11-23 10:33:42,227 INFO L256 TraceCheckUtils]: 21: Hoare triple {4213#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {4220#(exists ((|v_main_~#a~0.base_BEFORE_CALL_3| (_ BitVec 32))) (and (= (bvadd (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv8 32)) (_ bv4294967294 32)) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv4 32)) (_ bv1 32))) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv0 32)) (_ bv0 32)) (= (bvadd (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv12 32)) (_ bv4294967293 32)) (_ bv0 32))))} is VALID [2018-11-23 10:33:42,227 INFO L273 TraceCheckUtils]: 22: Hoare triple {4220#(exists ((|v_main_~#a~0.base_BEFORE_CALL_3| (_ BitVec 32))) (and (= (bvadd (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv8 32)) (_ bv4294967294 32)) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv4 32)) (_ bv1 32))) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv0 32)) (_ bv0 32)) (= (bvadd (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv12 32)) (_ bv4294967293 32)) (_ bv0 32))))} ~cond := #in~cond; {4220#(exists ((|v_main_~#a~0.base_BEFORE_CALL_3| (_ BitVec 32))) (and (= (bvadd (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv8 32)) (_ bv4294967294 32)) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv4 32)) (_ bv1 32))) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv0 32)) (_ bv0 32)) (= (bvadd (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv12 32)) (_ bv4294967293 32)) (_ bv0 32))))} is VALID [2018-11-23 10:33:42,228 INFO L273 TraceCheckUtils]: 23: Hoare triple {4220#(exists ((|v_main_~#a~0.base_BEFORE_CALL_3| (_ BitVec 32))) (and (= (bvadd (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv8 32)) (_ bv4294967294 32)) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv4 32)) (_ bv1 32))) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv0 32)) (_ bv0 32)) (= (bvadd (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv12 32)) (_ bv4294967293 32)) (_ bv0 32))))} assume !(0bv32 == ~cond); {4220#(exists ((|v_main_~#a~0.base_BEFORE_CALL_3| (_ BitVec 32))) (and (= (bvadd (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv8 32)) (_ bv4294967294 32)) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv4 32)) (_ bv1 32))) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv0 32)) (_ bv0 32)) (= (bvadd (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv12 32)) (_ bv4294967293 32)) (_ bv0 32))))} is VALID [2018-11-23 10:33:42,229 INFO L273 TraceCheckUtils]: 24: Hoare triple {4220#(exists ((|v_main_~#a~0.base_BEFORE_CALL_3| (_ BitVec 32))) (and (= (bvadd (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv8 32)) (_ bv4294967294 32)) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv4 32)) (_ bv1 32))) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv0 32)) (_ bv0 32)) (= (bvadd (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv12 32)) (_ bv4294967293 32)) (_ bv0 32))))} assume true; {4220#(exists ((|v_main_~#a~0.base_BEFORE_CALL_3| (_ BitVec 32))) (and (= (bvadd (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv8 32)) (_ bv4294967294 32)) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv4 32)) (_ bv1 32))) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv0 32)) (_ bv0 32)) (= (bvadd (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv12 32)) (_ bv4294967293 32)) (_ bv0 32))))} is VALID [2018-11-23 10:33:42,230 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {4220#(exists ((|v_main_~#a~0.base_BEFORE_CALL_3| (_ BitVec 32))) (and (= (bvadd (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv8 32)) (_ bv4294967294 32)) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv4 32)) (_ bv1 32))) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv0 32)) (_ bv0 32)) (= (bvadd (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_3|) (_ bv12 32)) (_ bv4294967293 32)) (_ bv0 32))))} {4213#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} #76#return; {4213#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} is VALID [2018-11-23 10:33:42,232 INFO L273 TraceCheckUtils]: 26: Hoare triple {4213#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} havoc #t~mem6; {4213#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} is VALID [2018-11-23 10:33:42,233 INFO L273 TraceCheckUtils]: 27: Hoare triple {4213#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (= main_~i~0 (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))} #t~post5 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post5);havoc #t~post5; {4239#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:42,236 INFO L273 TraceCheckUtils]: 28: Hoare triple {4239#(and (= (_ bv3 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv12 32)))) (= (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|) (_ bv0 32)) (= (_ bv2 32) (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32)))) (= |main_~#a~0.offset| (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {4243#(and (not (bvsgt |main_#t~mem6| (_ bv1 32))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:33:42,237 INFO L256 TraceCheckUtils]: 29: Hoare triple {4243#(and (not (bvsgt |main_#t~mem6| (_ bv1 32))) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {4247#(= (bvadd |__VERIFIER_assert_#in~cond| (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:33:42,238 INFO L273 TraceCheckUtils]: 30: Hoare triple {4247#(= (bvadd |__VERIFIER_assert_#in~cond| (_ bv4294967295 32)) (_ bv0 32))} ~cond := #in~cond; {4251#(= (bvadd __VERIFIER_assert_~cond (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:33:42,239 INFO L273 TraceCheckUtils]: 31: Hoare triple {4251#(= (bvadd __VERIFIER_assert_~cond (_ bv4294967295 32)) (_ bv0 32))} assume 0bv32 == ~cond; {4144#false} is VALID [2018-11-23 10:33:42,239 INFO L273 TraceCheckUtils]: 32: Hoare triple {4144#false} assume !false; {4144#false} is VALID [2018-11-23 10:33:42,246 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 0 proven. 11 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 10:33:42,246 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 10:33:43,266 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 62 treesize of output 58 [2018-11-23 10:33:43,303 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 10:33:43,310 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 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 46 treesize of output 62 [2018-11-23 10:33:43,431 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 10:33:43,431 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 10:33:43,458 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 2 disjoint index pairs (out of 3 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 37 treesize of output 49 [2018-11-23 10:33:43,464 INFO L267 ElimStorePlain]: Start of recursive call 4: 2 dim-0 vars, End of recursive call: 2 dim-0 vars, and 2 xjuncts. [2018-11-23 10:33:43,469 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 10:33:43,472 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 27 [2018-11-23 10:33:43,474 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-0 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 10:33:43,545 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: 5 dim-0 vars, and 5 xjuncts. [2018-11-23 10:33:43,634 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: 5 dim-0 vars, and 5 xjuncts. [2018-11-23 10:33:43,721 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: 5 dim-0 vars, and 5 xjuncts. [2018-11-23 10:33:43,721 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:62, output treesize:104 [2018-11-23 10:33:43,732 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 10:33:43,733 WARN L384 uantifierElimination]: Input elimination task: ∀ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse1 (bvmul (_ bv8 32) main_~i~0)) (.cse2 (bvmul (_ bv2 32) main_~i~0))) (let ((.cse0 (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| .cse1 (_ bv4294967288 32)) (bvadd .cse2 (_ bv4294967294 32))))) (or (bvsgt (select .cse0 (bvadd |main_~#a~0.offset| .cse1 (_ bv4294967292 32))) (bvadd .cse2 (_ bv4294967295 32))) (bvsle (select (store .cse0 (bvadd |main_~#a~0.offset| .cse1 (_ bv4 32)) (bvadd .cse2 (_ bv1 32))) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))))) [2018-11-23 10:33:43,733 WARN L385 uantifierElimination]: ElimStorePlain result: ∀ [v_arrayElimCell_31, v_arrayElimCell_30, v_arrayElimCell_32, v_prenex_4, v_prenex_5]. (let ((.cse4 (bvmul (_ bv2 32) main_~i~0)) (.cse5 (bvmul (_ bv8 32) main_~i~0))) (let ((.cse1 (= (_ bv0 32) .cse5)) (.cse3 (= (bvadd |main_~#a~0.offset| .cse5 (_ bv4294967292 32)) (bvadd |main_~#a~0.offset| (_ bv4 32)))) (.cse2 (bvsle (bvadd .cse4 (_ bv1 32)) (_ bv1 32))) (.cse0 (bvadd .cse4 (_ bv4294967295 32)))) (and (or (bvsgt v_arrayElimCell_30 .cse0) .cse1 (bvsle v_arrayElimCell_30 (_ bv1 32))) (or (bvsgt v_arrayElimCell_31 .cse0) .cse2 .cse3) (or (not .cse1) .cse2 (bvsgt v_arrayElimCell_32 .cse0)) (or (bvsgt v_prenex_4 .cse0) .cse1 .cse3) (or .cse2 (bvsgt v_prenex_5 .cse0) (bvsle v_prenex_5 (_ bv1 32)))))) [2018-11-23 10:33:45,949 INFO L273 TraceCheckUtils]: 32: Hoare triple {4144#false} assume !false; {4144#false} is VALID [2018-11-23 10:33:45,950 INFO L273 TraceCheckUtils]: 31: Hoare triple {4261#(not (= (_ bv0 32) __VERIFIER_assert_~cond))} assume 0bv32 == ~cond; {4144#false} is VALID [2018-11-23 10:33:45,951 INFO L273 TraceCheckUtils]: 30: Hoare triple {4265#(not (= |__VERIFIER_assert_#in~cond| (_ bv0 32)))} ~cond := #in~cond; {4261#(not (= (_ bv0 32) __VERIFIER_assert_~cond))} is VALID [2018-11-23 10:33:45,951 INFO L256 TraceCheckUtils]: 29: Hoare triple {4269#(bvsle |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {4265#(not (= |__VERIFIER_assert_#in~cond| (_ bv0 32)))} is VALID [2018-11-23 10:33:45,952 INFO L273 TraceCheckUtils]: 28: Hoare triple {4273#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0))) main_~i~0)} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {4269#(bvsle |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 10:33:47,961 INFO L273 TraceCheckUtils]: 27: Hoare triple {4277#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} #t~post5 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post5);havoc #t~post5; {4273#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0))) main_~i~0)} is UNKNOWN [2018-11-23 10:33:47,962 INFO L273 TraceCheckUtils]: 26: Hoare triple {4277#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} havoc #t~mem6; {4277#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} is VALID [2018-11-23 10:33:47,964 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {4143#true} {4277#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} #76#return; {4277#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} is VALID [2018-11-23 10:33:47,964 INFO L273 TraceCheckUtils]: 24: Hoare triple {4143#true} assume true; {4143#true} is VALID [2018-11-23 10:33:47,964 INFO L273 TraceCheckUtils]: 23: Hoare triple {4143#true} assume !(0bv32 == ~cond); {4143#true} is VALID [2018-11-23 10:33:47,964 INFO L273 TraceCheckUtils]: 22: Hoare triple {4143#true} ~cond := #in~cond; {4143#true} is VALID [2018-11-23 10:33:47,964 INFO L256 TraceCheckUtils]: 21: Hoare triple {4277#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {4143#true} is VALID [2018-11-23 10:33:47,965 INFO L273 TraceCheckUtils]: 20: Hoare triple {4277#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {4277#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} is VALID [2018-11-23 10:33:47,966 INFO L273 TraceCheckUtils]: 19: Hoare triple {4302#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} ~i~0 := 0bv32; {4277#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} is VALID [2018-11-23 10:33:47,966 INFO L273 TraceCheckUtils]: 18: Hoare triple {4302#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {4302#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} is VALID [2018-11-23 10:33:47,968 INFO L273 TraceCheckUtils]: 17: Hoare triple {4302#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4302#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} is VALID [2018-11-23 10:33:48,007 INFO L273 TraceCheckUtils]: 16: Hoare triple {4312#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} assume ~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {4302#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} is VALID [2018-11-23 10:33:48,008 INFO L273 TraceCheckUtils]: 15: Hoare triple {4312#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {4312#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} is VALID [2018-11-23 10:33:48,013 INFO L273 TraceCheckUtils]: 14: Hoare triple {4312#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {4312#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} is VALID [2018-11-23 10:33:48,015 INFO L273 TraceCheckUtils]: 13: Hoare triple {4312#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {4312#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} is VALID [2018-11-23 10:33:48,021 INFO L273 TraceCheckUtils]: 12: Hoare triple {4325#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv1 32))) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {4312#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} is VALID [2018-11-23 10:33:48,022 INFO L273 TraceCheckUtils]: 11: Hoare triple {4329#(or (bvsgt |main_#t~mem4| (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv1 32))) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32)))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {4325#(bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv1 32))) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32))} is VALID [2018-11-23 10:33:48,027 INFO L273 TraceCheckUtils]: 10: Hoare triple {4333#(or (bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv1 32))) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32)) (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {4329#(or (bvsgt |main_#t~mem4| (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv1 32))) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32)))} is VALID [2018-11-23 10:33:50,029 INFO L273 TraceCheckUtils]: 9: Hoare triple {4337#(and (or (forall ((v_prenex_5 (_ BitVec 32))) (or (bvsgt v_prenex_5 (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvsle v_prenex_5 (_ bv1 32)))) (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv1 32)) (_ bv1 32))) (or (= (bvadd (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (_ bv0 32)) (= (_ bv0 32) (bvmul (_ bv8 32) main_~i~0))))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {4333#(or (bvsle (select (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4 32)) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv1 32))) (bvadd |main_~#a~0.offset| (_ bv4 32))) (_ bv1 32)) (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967292 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))))} is UNKNOWN [2018-11-23 10:33:50,031 INFO L273 TraceCheckUtils]: 8: Hoare triple {4337#(and (or (forall ((v_prenex_5 (_ BitVec 32))) (or (bvsgt v_prenex_5 (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvsle v_prenex_5 (_ bv1 32)))) (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv1 32)) (_ bv1 32))) (or (= (bvadd (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (_ bv0 32)) (= (_ bv0 32) (bvmul (_ bv8 32) main_~i~0))))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {4337#(and (or (forall ((v_prenex_5 (_ BitVec 32))) (or (bvsgt v_prenex_5 (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvsle v_prenex_5 (_ bv1 32)))) (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv1 32)) (_ bv1 32))) (or (= (bvadd (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (_ bv0 32)) (= (_ bv0 32) (bvmul (_ bv8 32) main_~i~0))))} is VALID [2018-11-23 10:33:50,032 INFO L273 TraceCheckUtils]: 7: Hoare triple {4143#true} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {4337#(and (or (forall ((v_prenex_5 (_ BitVec 32))) (or (bvsgt v_prenex_5 (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967295 32))) (bvsle v_prenex_5 (_ bv1 32)))) (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv1 32)) (_ bv1 32))) (or (= (bvadd (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (_ bv0 32)) (= (_ bv0 32) (bvmul (_ bv8 32) main_~i~0))))} is VALID [2018-11-23 10:33:50,032 INFO L273 TraceCheckUtils]: 6: Hoare triple {4143#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {4143#true} is VALID [2018-11-23 10:33:50,032 INFO L273 TraceCheckUtils]: 5: Hoare triple {4143#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {4143#true} is VALID [2018-11-23 10:33:50,033 INFO L256 TraceCheckUtils]: 4: Hoare triple {4143#true} call #t~ret7 := main(); {4143#true} is VALID [2018-11-23 10:33:50,033 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {4143#true} {4143#true} #72#return; {4143#true} is VALID [2018-11-23 10:33:50,033 INFO L273 TraceCheckUtils]: 2: Hoare triple {4143#true} assume true; {4143#true} is VALID [2018-11-23 10:33:50,033 INFO L273 TraceCheckUtils]: 1: Hoare triple {4143#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {4143#true} is VALID [2018-11-23 10:33:50,033 INFO L256 TraceCheckUtils]: 0: Hoare triple {4143#true} call ULTIMATE.init(); {4143#true} is VALID [2018-11-23 10:33:50,036 INFO L134 CoverageAnalysis]: Checked inductivity of 11 backedges. 2 proven. 9 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 10:33:50,038 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 10:33:50,038 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 13] total 27 [2018-11-23 10:33:50,040 INFO L78 Accepts]: Start accepts. Automaton has 27 states. Word has length 33 [2018-11-23 10:33:50,041 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:33:50,041 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 27 states. [2018-11-23 10:33:54,372 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 57 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2018-11-23 10:33:54,372 INFO L459 AbstractCegarLoop]: Interpolant automaton has 27 states [2018-11-23 10:33:54,373 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 27 interpolants. [2018-11-23 10:33:54,373 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=127, Invalid=574, Unknown=1, NotChecked=0, Total=702 [2018-11-23 10:33:54,374 INFO L87 Difference]: Start difference. First operand 202 states and 278 transitions. Second operand 27 states. [2018-11-23 10:33:57,901 WARN L180 SmtUtils]: Spent 218.00 ms on a formula simplification. DAG size of input: 49 DAG size of output: 40 [2018-11-23 10:33:58,519 WARN L180 SmtUtils]: Spent 209.00 ms on a formula simplification. DAG size of input: 46 DAG size of output: 37 [2018-11-23 10:33:59,127 WARN L180 SmtUtils]: Spent 259.00 ms on a formula simplification. DAG size of input: 51 DAG size of output: 42 [2018-11-23 10:34:00,955 WARN L180 SmtUtils]: Spent 118.00 ms on a formula simplification. DAG size of input: 44 DAG size of output: 41 [2018-11-23 10:34:10,694 WARN L180 SmtUtils]: Spent 106.00 ms on a formula simplification. DAG size of input: 54 DAG size of output: 37 [2018-11-23 10:34:11,621 WARN L180 SmtUtils]: Spent 116.00 ms on a formula simplification that was a NOOP. DAG size: 30 [2018-11-23 10:34:12,373 WARN L180 SmtUtils]: Spent 144.00 ms on a formula simplification. DAG size of input: 46 DAG size of output: 43 [2018-11-23 10:34:14,356 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:34:14,356 INFO L93 Difference]: Finished difference Result 408 states and 547 transitions. [2018-11-23 10:34:14,356 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 39 states. [2018-11-23 10:34:14,356 INFO L78 Accepts]: Start accepts. Automaton has 27 states. Word has length 33 [2018-11-23 10:34:14,357 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:34:14,357 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 27 states. [2018-11-23 10:34:14,361 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 195 transitions. [2018-11-23 10:34:14,362 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 27 states. [2018-11-23 10:34:14,366 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 195 transitions. [2018-11-23 10:34:14,366 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 39 states and 195 transitions. [2018-11-23 10:34:23,785 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 195 edges. 191 inductive. 0 not inductive. 4 times theorem prover too weak to decide inductivity. [2018-11-23 10:34:23,800 INFO L225 Difference]: With dead ends: 408 [2018-11-23 10:34:23,800 INFO L226 Difference]: Without dead ends: 406 [2018-11-23 10:34:23,802 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 90 GetRequests, 39 SyntacticMatches, 2 SemanticMatches, 49 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 674 ImplicationChecksByTransitivity, 7.2s TimeCoverageRelationStatistics Valid=508, Invalid=2041, Unknown=1, NotChecked=0, Total=2550 [2018-11-23 10:34:23,802 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 406 states. [2018-11-23 10:34:24,695 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 406 to 250. [2018-11-23 10:34:24,695 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:34:24,696 INFO L82 GeneralOperation]: Start isEquivalent. First operand 406 states. Second operand 250 states. [2018-11-23 10:34:24,696 INFO L74 IsIncluded]: Start isIncluded. First operand 406 states. Second operand 250 states. [2018-11-23 10:34:24,696 INFO L87 Difference]: Start difference. First operand 406 states. Second operand 250 states. [2018-11-23 10:34:24,715 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:34:24,716 INFO L93 Difference]: Finished difference Result 406 states and 544 transitions. [2018-11-23 10:34:24,716 INFO L276 IsEmpty]: Start isEmpty. Operand 406 states and 544 transitions. [2018-11-23 10:34:24,717 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:34:24,718 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:34:24,718 INFO L74 IsIncluded]: Start isIncluded. First operand 250 states. Second operand 406 states. [2018-11-23 10:34:24,718 INFO L87 Difference]: Start difference. First operand 250 states. Second operand 406 states. [2018-11-23 10:34:24,737 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:34:24,738 INFO L93 Difference]: Finished difference Result 406 states and 544 transitions. [2018-11-23 10:34:24,738 INFO L276 IsEmpty]: Start isEmpty. Operand 406 states and 544 transitions. [2018-11-23 10:34:24,739 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:34:24,740 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:34:24,740 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:34:24,740 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:34:24,740 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 250 states. [2018-11-23 10:34:24,750 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 250 states to 250 states and 342 transitions. [2018-11-23 10:34:24,750 INFO L78 Accepts]: Start accepts. Automaton has 250 states and 342 transitions. Word has length 33 [2018-11-23 10:34:24,751 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:34:24,751 INFO L480 AbstractCegarLoop]: Abstraction has 250 states and 342 transitions. [2018-11-23 10:34:24,751 INFO L481 AbstractCegarLoop]: Interpolant automaton has 27 states. [2018-11-23 10:34:24,751 INFO L276 IsEmpty]: Start isEmpty. Operand 250 states and 342 transitions. [2018-11-23 10:34:24,752 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2018-11-23 10:34:24,752 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:34:24,753 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 10:34:24,753 INFO L423 AbstractCegarLoop]: === Iteration 8 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:34:24,753 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:34:24,753 INFO L82 PathProgramCache]: Analyzing trace with hash -1916608614, now seen corresponding path program 2 times [2018-11-23 10:34:24,753 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:34:24,754 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 9 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:34:24,780 INFO L101 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2018-11-23 10:34:24,854 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-23 10:34:24,855 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 10:34:24,893 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:34:24,900 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:34:25,291 WARN L180 SmtUtils]: Spent 113.00 ms on a formula simplification that was a NOOP. DAG size: 11 [2018-11-23 10:34:25,543 WARN L180 SmtUtils]: Spent 132.00 ms on a formula simplification that was a NOOP. DAG size: 13 [2018-11-23 10:34:25,849 WARN L180 SmtUtils]: Spent 133.00 ms on a formula simplification that was a NOOP. DAG size: 15 [2018-11-23 10:34:26,166 WARN L180 SmtUtils]: Spent 128.00 ms on a formula simplification that was a NOOP. DAG size: 13 [2018-11-23 10:34:26,189 INFO L256 TraceCheckUtils]: 0: Hoare triple {6084#true} call ULTIMATE.init(); {6084#true} is VALID [2018-11-23 10:34:26,190 INFO L273 TraceCheckUtils]: 1: Hoare triple {6084#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {6084#true} is VALID [2018-11-23 10:34:26,190 INFO L273 TraceCheckUtils]: 2: Hoare triple {6084#true} assume true; {6084#true} is VALID [2018-11-23 10:34:26,190 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {6084#true} {6084#true} #72#return; {6084#true} is VALID [2018-11-23 10:34:26,190 INFO L256 TraceCheckUtils]: 4: Hoare triple {6084#true} call #t~ret7 := main(); {6084#true} is VALID [2018-11-23 10:34:26,190 INFO L273 TraceCheckUtils]: 5: Hoare triple {6084#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {6084#true} is VALID [2018-11-23 10:34:26,191 INFO L273 TraceCheckUtils]: 6: Hoare triple {6084#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {6107#(bvsgt ~SIZE~0 (_ bv1 32))} is VALID [2018-11-23 10:34:26,191 INFO L273 TraceCheckUtils]: 7: Hoare triple {6107#(bvsgt ~SIZE~0 (_ bv1 32))} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {6111#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:34:26,192 INFO L273 TraceCheckUtils]: 8: Hoare triple {6111#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {6111#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:34:26,192 INFO L273 TraceCheckUtils]: 9: Hoare triple {6111#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {6111#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:34:26,193 INFO L273 TraceCheckUtils]: 10: Hoare triple {6111#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {6111#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:34:26,193 INFO L273 TraceCheckUtils]: 11: Hoare triple {6111#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {6111#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:34:26,194 INFO L273 TraceCheckUtils]: 12: Hoare triple {6111#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {6127#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)) (= (_ bv2 32) main_~i~0))} is VALID [2018-11-23 10:34:26,194 INFO L273 TraceCheckUtils]: 13: Hoare triple {6127#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)) (= (_ bv2 32) main_~i~0))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} is VALID [2018-11-23 10:34:26,195 INFO L273 TraceCheckUtils]: 14: Hoare triple {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} ~i~0 := 0bv32; {6135#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (= main_~i~0 (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)))} is VALID [2018-11-23 10:34:26,196 INFO L273 TraceCheckUtils]: 15: Hoare triple {6135#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (= main_~i~0 (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {6135#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (= main_~i~0 (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)))} is VALID [2018-11-23 10:34:26,198 INFO L256 TraceCheckUtils]: 16: Hoare triple {6135#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (= main_~i~0 (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} is VALID [2018-11-23 10:34:26,198 INFO L273 TraceCheckUtils]: 17: Hoare triple {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} ~cond := #in~cond; {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} is VALID [2018-11-23 10:34:26,199 INFO L273 TraceCheckUtils]: 18: Hoare triple {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} assume !(0bv32 == ~cond); {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} is VALID [2018-11-23 10:34:26,200 INFO L273 TraceCheckUtils]: 19: Hoare triple {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} assume true; {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} is VALID [2018-11-23 10:34:26,201 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} {6135#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (= main_~i~0 (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)))} #76#return; {6135#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (= main_~i~0 (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)))} is VALID [2018-11-23 10:34:26,202 INFO L273 TraceCheckUtils]: 21: Hoare triple {6135#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (= main_~i~0 (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)))} havoc #t~mem6; {6135#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (= main_~i~0 (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)))} is VALID [2018-11-23 10:34:26,211 INFO L273 TraceCheckUtils]: 22: Hoare triple {6135#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (= main_~i~0 (_ bv0 32)) (bvsgt ~SIZE~0 (_ bv1 32)))} #t~post5 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post5);havoc #t~post5; {6160#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:34:26,212 INFO L273 TraceCheckUtils]: 23: Hoare triple {6160#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {6160#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:34:26,212 INFO L256 TraceCheckUtils]: 24: Hoare triple {6160#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} is VALID [2018-11-23 10:34:26,213 INFO L273 TraceCheckUtils]: 25: Hoare triple {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} ~cond := #in~cond; {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} is VALID [2018-11-23 10:34:26,214 INFO L273 TraceCheckUtils]: 26: Hoare triple {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} assume !(0bv32 == ~cond); {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} is VALID [2018-11-23 10:34:26,214 INFO L273 TraceCheckUtils]: 27: Hoare triple {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} assume true; {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} is VALID [2018-11-23 10:34:26,215 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {6131#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)))} {6160#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} #76#return; {6160#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:34:26,216 INFO L273 TraceCheckUtils]: 29: Hoare triple {6160#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} havoc #t~mem6; {6160#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:34:26,216 INFO L273 TraceCheckUtils]: 30: Hoare triple {6160#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} #t~post5 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post5);havoc #t~post5; {6185#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)) (= (_ bv2 32) main_~i~0))} is VALID [2018-11-23 10:34:26,236 INFO L273 TraceCheckUtils]: 31: Hoare triple {6185#(and (= (bvsrem ~SIZE~0 (_ bv2 32)) (_ bv0 32)) (not (bvsle (_ bv2 32) (bvsdiv ~SIZE~0 (_ bv2 32)))) (bvsgt ~SIZE~0 (_ bv1 32)) (= (_ bv2 32) main_~i~0))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {6085#false} is VALID [2018-11-23 10:34:26,236 INFO L256 TraceCheckUtils]: 32: Hoare triple {6085#false} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {6085#false} is VALID [2018-11-23 10:34:26,236 INFO L273 TraceCheckUtils]: 33: Hoare triple {6085#false} ~cond := #in~cond; {6085#false} is VALID [2018-11-23 10:34:26,236 INFO L273 TraceCheckUtils]: 34: Hoare triple {6085#false} assume 0bv32 == ~cond; {6085#false} is VALID [2018-11-23 10:34:26,237 INFO L273 TraceCheckUtils]: 35: Hoare triple {6085#false} assume !false; {6085#false} is VALID [2018-11-23 10:34:26,240 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 6 proven. 7 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 10:34:26,240 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 10:34:27,859 INFO L273 TraceCheckUtils]: 35: Hoare triple {6085#false} assume !false; {6085#false} is VALID [2018-11-23 10:34:27,859 INFO L273 TraceCheckUtils]: 34: Hoare triple {6085#false} assume 0bv32 == ~cond; {6085#false} is VALID [2018-11-23 10:34:27,859 INFO L273 TraceCheckUtils]: 33: Hoare triple {6085#false} ~cond := #in~cond; {6085#false} is VALID [2018-11-23 10:34:27,859 INFO L256 TraceCheckUtils]: 32: Hoare triple {6085#false} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {6085#false} is VALID [2018-11-23 10:34:27,859 INFO L273 TraceCheckUtils]: 31: Hoare triple {6213#(not (bvslt main_~i~0 ~SIZE~0))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {6085#false} is VALID [2018-11-23 10:34:27,861 INFO L273 TraceCheckUtils]: 30: Hoare triple {6217#(not (bvslt (bvadd main_~i~0 (_ bv1 32)) ~SIZE~0))} #t~post5 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post5);havoc #t~post5; {6213#(not (bvslt main_~i~0 ~SIZE~0))} is VALID [2018-11-23 10:34:27,861 INFO L273 TraceCheckUtils]: 29: Hoare triple {6217#(not (bvslt (bvadd main_~i~0 (_ bv1 32)) ~SIZE~0))} havoc #t~mem6; {6217#(not (bvslt (bvadd main_~i~0 (_ bv1 32)) ~SIZE~0))} is VALID [2018-11-23 10:34:27,862 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {6084#true} {6217#(not (bvslt (bvadd main_~i~0 (_ bv1 32)) ~SIZE~0))} #76#return; {6217#(not (bvslt (bvadd main_~i~0 (_ bv1 32)) ~SIZE~0))} is VALID [2018-11-23 10:34:27,862 INFO L273 TraceCheckUtils]: 27: Hoare triple {6084#true} assume true; {6084#true} is VALID [2018-11-23 10:34:27,862 INFO L273 TraceCheckUtils]: 26: Hoare triple {6084#true} assume !(0bv32 == ~cond); {6084#true} is VALID [2018-11-23 10:34:27,862 INFO L273 TraceCheckUtils]: 25: Hoare triple {6084#true} ~cond := #in~cond; {6084#true} is VALID [2018-11-23 10:34:27,862 INFO L256 TraceCheckUtils]: 24: Hoare triple {6217#(not (bvslt (bvadd main_~i~0 (_ bv1 32)) ~SIZE~0))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {6084#true} is VALID [2018-11-23 10:34:27,863 INFO L273 TraceCheckUtils]: 23: Hoare triple {6217#(not (bvslt (bvadd main_~i~0 (_ bv1 32)) ~SIZE~0))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {6217#(not (bvslt (bvadd main_~i~0 (_ bv1 32)) ~SIZE~0))} is VALID [2018-11-23 10:34:27,883 INFO L273 TraceCheckUtils]: 22: Hoare triple {6242#(not (bvslt (bvadd main_~i~0 (_ bv2 32)) ~SIZE~0))} #t~post5 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post5);havoc #t~post5; {6217#(not (bvslt (bvadd main_~i~0 (_ bv1 32)) ~SIZE~0))} is VALID [2018-11-23 10:34:27,884 INFO L273 TraceCheckUtils]: 21: Hoare triple {6242#(not (bvslt (bvadd main_~i~0 (_ bv2 32)) ~SIZE~0))} havoc #t~mem6; {6242#(not (bvslt (bvadd main_~i~0 (_ bv2 32)) ~SIZE~0))} is VALID [2018-11-23 10:34:27,884 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {6084#true} {6242#(not (bvslt (bvadd main_~i~0 (_ bv2 32)) ~SIZE~0))} #76#return; {6242#(not (bvslt (bvadd main_~i~0 (_ bv2 32)) ~SIZE~0))} is VALID [2018-11-23 10:34:27,885 INFO L273 TraceCheckUtils]: 19: Hoare triple {6084#true} assume true; {6084#true} is VALID [2018-11-23 10:34:27,885 INFO L273 TraceCheckUtils]: 18: Hoare triple {6084#true} assume !(0bv32 == ~cond); {6084#true} is VALID [2018-11-23 10:34:27,885 INFO L273 TraceCheckUtils]: 17: Hoare triple {6084#true} ~cond := #in~cond; {6084#true} is VALID [2018-11-23 10:34:27,885 INFO L256 TraceCheckUtils]: 16: Hoare triple {6242#(not (bvslt (bvadd main_~i~0 (_ bv2 32)) ~SIZE~0))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {6084#true} is VALID [2018-11-23 10:34:27,885 INFO L273 TraceCheckUtils]: 15: Hoare triple {6242#(not (bvslt (bvadd main_~i~0 (_ bv2 32)) ~SIZE~0))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {6242#(not (bvslt (bvadd main_~i~0 (_ bv2 32)) ~SIZE~0))} is VALID [2018-11-23 10:34:27,886 INFO L273 TraceCheckUtils]: 14: Hoare triple {6267#(not (bvslt (_ bv2 32) ~SIZE~0))} ~i~0 := 0bv32; {6242#(not (bvslt (bvadd main_~i~0 (_ bv2 32)) ~SIZE~0))} is VALID [2018-11-23 10:34:27,886 INFO L273 TraceCheckUtils]: 13: Hoare triple {6271#(or (not (bvslt (_ bv2 32) ~SIZE~0)) (bvsle main_~i~0 (bvsdiv ~SIZE~0 (_ bv2 32))))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {6267#(not (bvslt (_ bv2 32) ~SIZE~0))} is VALID [2018-11-23 10:34:27,903 INFO L273 TraceCheckUtils]: 12: Hoare triple {6275#(or (bvsle (bvadd main_~i~0 (_ bv1 32)) (bvsdiv ~SIZE~0 (_ bv2 32))) (not (bvslt (_ bv2 32) ~SIZE~0)))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {6271#(or (not (bvslt (_ bv2 32) ~SIZE~0)) (bvsle main_~i~0 (bvsdiv ~SIZE~0 (_ bv2 32))))} is VALID [2018-11-23 10:34:27,905 INFO L273 TraceCheckUtils]: 11: Hoare triple {6275#(or (bvsle (bvadd main_~i~0 (_ bv1 32)) (bvsdiv ~SIZE~0 (_ bv2 32))) (not (bvslt (_ bv2 32) ~SIZE~0)))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {6275#(or (bvsle (bvadd main_~i~0 (_ bv1 32)) (bvsdiv ~SIZE~0 (_ bv2 32))) (not (bvslt (_ bv2 32) ~SIZE~0)))} is VALID [2018-11-23 10:34:27,905 INFO L273 TraceCheckUtils]: 10: Hoare triple {6275#(or (bvsle (bvadd main_~i~0 (_ bv1 32)) (bvsdiv ~SIZE~0 (_ bv2 32))) (not (bvslt (_ bv2 32) ~SIZE~0)))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {6275#(or (bvsle (bvadd main_~i~0 (_ bv1 32)) (bvsdiv ~SIZE~0 (_ bv2 32))) (not (bvslt (_ bv2 32) ~SIZE~0)))} is VALID [2018-11-23 10:34:27,906 INFO L273 TraceCheckUtils]: 9: Hoare triple {6275#(or (bvsle (bvadd main_~i~0 (_ bv1 32)) (bvsdiv ~SIZE~0 (_ bv2 32))) (not (bvslt (_ bv2 32) ~SIZE~0)))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {6275#(or (bvsle (bvadd main_~i~0 (_ bv1 32)) (bvsdiv ~SIZE~0 (_ bv2 32))) (not (bvslt (_ bv2 32) ~SIZE~0)))} is VALID [2018-11-23 10:34:27,906 INFO L273 TraceCheckUtils]: 8: Hoare triple {6288#(or (bvsle (bvadd main_~i~0 (_ bv1 32)) (bvsdiv ~SIZE~0 (_ bv2 32))) (not (bvslt (_ bv2 32) ~SIZE~0)) (not (bvsle main_~i~0 (bvsdiv ~SIZE~0 (_ bv2 32)))))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {6275#(or (bvsle (bvadd main_~i~0 (_ bv1 32)) (bvsdiv ~SIZE~0 (_ bv2 32))) (not (bvslt (_ bv2 32) ~SIZE~0)))} is VALID [2018-11-23 10:34:27,925 INFO L273 TraceCheckUtils]: 7: Hoare triple {6084#true} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {6288#(or (bvsle (bvadd main_~i~0 (_ bv1 32)) (bvsdiv ~SIZE~0 (_ bv2 32))) (not (bvslt (_ bv2 32) ~SIZE~0)) (not (bvsle main_~i~0 (bvsdiv ~SIZE~0 (_ bv2 32)))))} is VALID [2018-11-23 10:34:27,926 INFO L273 TraceCheckUtils]: 6: Hoare triple {6084#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {6084#true} is VALID [2018-11-23 10:34:27,926 INFO L273 TraceCheckUtils]: 5: Hoare triple {6084#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {6084#true} is VALID [2018-11-23 10:34:27,927 INFO L256 TraceCheckUtils]: 4: Hoare triple {6084#true} call #t~ret7 := main(); {6084#true} is VALID [2018-11-23 10:34:27,927 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {6084#true} {6084#true} #72#return; {6084#true} is VALID [2018-11-23 10:34:27,927 INFO L273 TraceCheckUtils]: 2: Hoare triple {6084#true} assume true; {6084#true} is VALID [2018-11-23 10:34:27,927 INFO L273 TraceCheckUtils]: 1: Hoare triple {6084#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {6084#true} is VALID [2018-11-23 10:34:27,928 INFO L256 TraceCheckUtils]: 0: Hoare triple {6084#true} call ULTIMATE.init(); {6084#true} is VALID [2018-11-23 10:34:27,929 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 6 proven. 7 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 10:34:27,932 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 10:34:27,932 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 9] total 16 [2018-11-23 10:34:27,932 INFO L78 Accepts]: Start accepts. Automaton has 16 states. Word has length 36 [2018-11-23 10:34:27,933 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:34:27,933 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 16 states. [2018-11-23 10:34:28,426 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:34:28,426 INFO L459 AbstractCegarLoop]: Interpolant automaton has 16 states [2018-11-23 10:34:28,426 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2018-11-23 10:34:28,426 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=72, Invalid=168, Unknown=0, NotChecked=0, Total=240 [2018-11-23 10:34:28,427 INFO L87 Difference]: Start difference. First operand 250 states and 342 transitions. Second operand 16 states. [2018-11-23 10:34:33,101 WARN L180 SmtUtils]: Spent 161.00 ms on a formula simplification that was a NOOP. DAG size: 14 [2018-11-23 10:34:33,529 WARN L180 SmtUtils]: Spent 156.00 ms on a formula simplification that was a NOOP. DAG size: 11 [2018-11-23 10:34:34,218 WARN L180 SmtUtils]: Spent 167.00 ms on a formula simplification that was a NOOP. DAG size: 14 [2018-11-23 10:34:38,864 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:34:38,864 INFO L93 Difference]: Finished difference Result 316 states and 412 transitions. [2018-11-23 10:34:38,864 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2018-11-23 10:34:38,864 INFO L78 Accepts]: Start accepts. Automaton has 16 states. Word has length 36 [2018-11-23 10:34:38,865 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:34:38,865 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 16 states. [2018-11-23 10:34:38,867 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 77 transitions. [2018-11-23 10:34:38,867 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 16 states. [2018-11-23 10:34:38,868 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 77 transitions. [2018-11-23 10:34:38,869 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states and 77 transitions. [2018-11-23 10:34:39,773 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 77 edges. 77 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 10:34:39,781 INFO L225 Difference]: With dead ends: 316 [2018-11-23 10:34:39,781 INFO L226 Difference]: Without dead ends: 262 [2018-11-23 10:34:39,782 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 74 GetRequests, 55 SyntacticMatches, 2 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 76 ImplicationChecksByTransitivity, 3.8s TimeCoverageRelationStatistics Valid=104, Invalid=238, Unknown=0, NotChecked=0, Total=342 [2018-11-23 10:34:39,782 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 262 states. [2018-11-23 10:34:40,398 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 262 to 250. [2018-11-23 10:34:40,398 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 10:34:40,398 INFO L82 GeneralOperation]: Start isEquivalent. First operand 262 states. Second operand 250 states. [2018-11-23 10:34:40,399 INFO L74 IsIncluded]: Start isIncluded. First operand 262 states. Second operand 250 states. [2018-11-23 10:34:40,399 INFO L87 Difference]: Start difference. First operand 262 states. Second operand 250 states. [2018-11-23 10:34:40,408 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:34:40,408 INFO L93 Difference]: Finished difference Result 262 states and 355 transitions. [2018-11-23 10:34:40,409 INFO L276 IsEmpty]: Start isEmpty. Operand 262 states and 355 transitions. [2018-11-23 10:34:40,410 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:34:40,410 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:34:40,410 INFO L74 IsIncluded]: Start isIncluded. First operand 250 states. Second operand 262 states. [2018-11-23 10:34:40,410 INFO L87 Difference]: Start difference. First operand 250 states. Second operand 262 states. [2018-11-23 10:34:40,418 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:34:40,418 INFO L93 Difference]: Finished difference Result 262 states and 355 transitions. [2018-11-23 10:34:40,419 INFO L276 IsEmpty]: Start isEmpty. Operand 262 states and 355 transitions. [2018-11-23 10:34:40,420 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 10:34:40,420 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 10:34:40,420 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 10:34:40,420 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 10:34:40,420 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 250 states. [2018-11-23 10:34:40,427 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 250 states to 250 states and 340 transitions. [2018-11-23 10:34:40,428 INFO L78 Accepts]: Start accepts. Automaton has 250 states and 340 transitions. Word has length 36 [2018-11-23 10:34:40,428 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 10:34:40,428 INFO L480 AbstractCegarLoop]: Abstraction has 250 states and 340 transitions. [2018-11-23 10:34:40,428 INFO L481 AbstractCegarLoop]: Interpolant automaton has 16 states. [2018-11-23 10:34:40,428 INFO L276 IsEmpty]: Start isEmpty. Operand 250 states and 340 transitions. [2018-11-23 10:34:40,430 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2018-11-23 10:34:40,430 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 10:34:40,430 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 10:34:40,430 INFO L423 AbstractCegarLoop]: === Iteration 9 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 10:34:40,430 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 10:34:40,430 INFO L82 PathProgramCache]: Analyzing trace with hash -699544460, now seen corresponding path program 1 times [2018-11-23 10:34:40,431 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 10:34:40,431 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 10 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 10 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 10:34:40,458 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 10:34:40,582 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:34:40,621 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 10:34:40,624 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 10:34:40,729 INFO L478 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 0 case distinctions, treesize of input 20 treesize of output 17 [2018-11-23 10:34:40,736 INFO L478 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 17 treesize of output 16 [2018-11-23 10:34:40,740 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:34:40,746 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:34:40,760 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:34:40,761 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:26, output treesize:22 [2018-11-23 10:34:41,345 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 29 treesize of output 23 [2018-11-23 10:34:41,357 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 10:34:41,358 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 10:34:41,364 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 20 [2018-11-23 10:34:41,367 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 10:34:41,373 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:34:41,378 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 10:34:41,378 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 3 variables, input treesize:32, output treesize:8 [2018-11-23 10:34:41,396 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 10:34:41,397 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|, |main_~#a~0.offset|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (not (bvsgt (select .cse0 (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= |main_#t~mem6| (select .cse0 (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0)))) (= (_ bv0 32) (select .cse0 |main_~#a~0.offset|)) (= (_ bv2 32) main_~i~0))) [2018-11-23 10:34:41,397 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (not (bvsgt |main_#t~mem6| (_ bv2 32))) (= (_ bv2 32) main_~i~0)) [2018-11-23 10:34:41,482 INFO L256 TraceCheckUtils]: 0: Hoare triple {7589#true} call ULTIMATE.init(); {7589#true} is VALID [2018-11-23 10:34:41,482 INFO L273 TraceCheckUtils]: 1: Hoare triple {7589#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {7589#true} is VALID [2018-11-23 10:34:41,483 INFO L273 TraceCheckUtils]: 2: Hoare triple {7589#true} assume true; {7589#true} is VALID [2018-11-23 10:34:41,483 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {7589#true} {7589#true} #72#return; {7589#true} is VALID [2018-11-23 10:34:41,483 INFO L256 TraceCheckUtils]: 4: Hoare triple {7589#true} call #t~ret7 := main(); {7589#true} is VALID [2018-11-23 10:34:41,484 INFO L273 TraceCheckUtils]: 5: Hoare triple {7589#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {7589#true} is VALID [2018-11-23 10:34:41,484 INFO L273 TraceCheckUtils]: 6: Hoare triple {7589#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {7589#true} is VALID [2018-11-23 10:34:41,485 INFO L273 TraceCheckUtils]: 7: Hoare triple {7589#true} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {7615#(= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:34:41,485 INFO L273 TraceCheckUtils]: 8: Hoare triple {7615#(= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {7615#(= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:34:41,487 INFO L273 TraceCheckUtils]: 9: Hoare triple {7615#(= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {7622#(and (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:34:41,487 INFO L273 TraceCheckUtils]: 10: Hoare triple {7622#(and (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {7622#(and (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:34:41,488 INFO L273 TraceCheckUtils]: 11: Hoare triple {7622#(and (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {7622#(and (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:34:41,489 INFO L273 TraceCheckUtils]: 12: Hoare triple {7622#(and (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (_ bv2 32)) (bvmul (_ bv2 32) main_~i~0)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {7632#(and (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32))) (_ bv4 32)) (bvmul (_ bv2 32) main_~i~0)) (= (_ bv2 32) main_~i~0))} is VALID [2018-11-23 10:34:41,490 INFO L273 TraceCheckUtils]: 13: Hoare triple {7632#(and (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32))) (_ bv4 32)) (bvmul (_ bv2 32) main_~i~0)) (= (_ bv2 32) main_~i~0))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {7636#(and (= (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) |main_#t~mem3|) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32))) (_ bv4 32)) (bvmul (_ bv2 32) main_~i~0)) (= (_ bv2 32) main_~i~0))} is VALID [2018-11-23 10:34:41,493 INFO L273 TraceCheckUtils]: 14: Hoare triple {7636#(and (= (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) |main_#t~mem3|) (= (bvadd (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967280 32))) (_ bv4 32)) (bvmul (_ bv2 32) main_~i~0)) (= (_ bv2 32) main_~i~0))} assume !~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3; {7640#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} is VALID [2018-11-23 10:34:41,494 INFO L273 TraceCheckUtils]: 15: Hoare triple {7640#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {7640#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} is VALID [2018-11-23 10:34:41,495 INFO L273 TraceCheckUtils]: 16: Hoare triple {7640#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {7640#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} is VALID [2018-11-23 10:34:41,495 INFO L273 TraceCheckUtils]: 17: Hoare triple {7640#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {7640#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} is VALID [2018-11-23 10:34:41,496 INFO L273 TraceCheckUtils]: 18: Hoare triple {7640#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {7640#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} is VALID [2018-11-23 10:34:41,497 INFO L273 TraceCheckUtils]: 19: Hoare triple {7640#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} ~i~0 := 0bv32; {7656#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} is VALID [2018-11-23 10:34:41,499 INFO L273 TraceCheckUtils]: 20: Hoare triple {7656#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {7656#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} is VALID [2018-11-23 10:34:41,503 INFO L256 TraceCheckUtils]: 21: Hoare triple {7656#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {7663#(exists ((|v_main_~#a~0.base_BEFORE_CALL_5| (_ BitVec 32)) (|v_main_~#a~0.offset_BEFORE_CALL_5| (_ BitVec 32))) (and (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) |v_main_~#a~0.offset_BEFORE_CALL_5|) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) (bvadd |v_main_~#a~0.offset_BEFORE_CALL_5| (_ bv8 32))) (_ bv2 32)))))} is VALID [2018-11-23 10:34:41,504 INFO L273 TraceCheckUtils]: 22: Hoare triple {7663#(exists ((|v_main_~#a~0.base_BEFORE_CALL_5| (_ BitVec 32)) (|v_main_~#a~0.offset_BEFORE_CALL_5| (_ BitVec 32))) (and (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) |v_main_~#a~0.offset_BEFORE_CALL_5|) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) (bvadd |v_main_~#a~0.offset_BEFORE_CALL_5| (_ bv8 32))) (_ bv2 32)))))} ~cond := #in~cond; {7663#(exists ((|v_main_~#a~0.base_BEFORE_CALL_5| (_ BitVec 32)) (|v_main_~#a~0.offset_BEFORE_CALL_5| (_ BitVec 32))) (and (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) |v_main_~#a~0.offset_BEFORE_CALL_5|) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) (bvadd |v_main_~#a~0.offset_BEFORE_CALL_5| (_ bv8 32))) (_ bv2 32)))))} is VALID [2018-11-23 10:34:41,504 INFO L273 TraceCheckUtils]: 23: Hoare triple {7663#(exists ((|v_main_~#a~0.base_BEFORE_CALL_5| (_ BitVec 32)) (|v_main_~#a~0.offset_BEFORE_CALL_5| (_ BitVec 32))) (and (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) |v_main_~#a~0.offset_BEFORE_CALL_5|) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) (bvadd |v_main_~#a~0.offset_BEFORE_CALL_5| (_ bv8 32))) (_ bv2 32)))))} assume !(0bv32 == ~cond); {7663#(exists ((|v_main_~#a~0.base_BEFORE_CALL_5| (_ BitVec 32)) (|v_main_~#a~0.offset_BEFORE_CALL_5| (_ BitVec 32))) (and (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) |v_main_~#a~0.offset_BEFORE_CALL_5|) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) (bvadd |v_main_~#a~0.offset_BEFORE_CALL_5| (_ bv8 32))) (_ bv2 32)))))} is VALID [2018-11-23 10:34:41,505 INFO L273 TraceCheckUtils]: 24: Hoare triple {7663#(exists ((|v_main_~#a~0.base_BEFORE_CALL_5| (_ BitVec 32)) (|v_main_~#a~0.offset_BEFORE_CALL_5| (_ BitVec 32))) (and (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) |v_main_~#a~0.offset_BEFORE_CALL_5|) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) (bvadd |v_main_~#a~0.offset_BEFORE_CALL_5| (_ bv8 32))) (_ bv2 32)))))} assume true; {7663#(exists ((|v_main_~#a~0.base_BEFORE_CALL_5| (_ BitVec 32)) (|v_main_~#a~0.offset_BEFORE_CALL_5| (_ BitVec 32))) (and (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) |v_main_~#a~0.offset_BEFORE_CALL_5|) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) (bvadd |v_main_~#a~0.offset_BEFORE_CALL_5| (_ bv8 32))) (_ bv2 32)))))} is VALID [2018-11-23 10:34:41,506 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {7663#(exists ((|v_main_~#a~0.base_BEFORE_CALL_5| (_ BitVec 32)) (|v_main_~#a~0.offset_BEFORE_CALL_5| (_ BitVec 32))) (and (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) |v_main_~#a~0.offset_BEFORE_CALL_5|) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) (bvadd |v_main_~#a~0.offset_BEFORE_CALL_5| (_ bv8 32))) (_ bv2 32)))))} {7656#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} #76#return; {7656#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} is VALID [2018-11-23 10:34:41,506 INFO L273 TraceCheckUtils]: 26: Hoare triple {7656#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} havoc #t~mem6; {7656#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} is VALID [2018-11-23 10:34:41,507 INFO L273 TraceCheckUtils]: 27: Hoare triple {7656#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= main_~i~0 (_ bv0 32)) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)))} #t~post5 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post5);havoc #t~post5; {7682#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:34:41,509 INFO L273 TraceCheckUtils]: 28: Hoare triple {7682#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {7682#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:34:41,512 INFO L256 TraceCheckUtils]: 29: Hoare triple {7682#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {7663#(exists ((|v_main_~#a~0.base_BEFORE_CALL_5| (_ BitVec 32)) (|v_main_~#a~0.offset_BEFORE_CALL_5| (_ BitVec 32))) (and (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) |v_main_~#a~0.offset_BEFORE_CALL_5|) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) (bvadd |v_main_~#a~0.offset_BEFORE_CALL_5| (_ bv8 32))) (_ bv2 32)))))} is VALID [2018-11-23 10:34:41,513 INFO L273 TraceCheckUtils]: 30: Hoare triple {7663#(exists ((|v_main_~#a~0.base_BEFORE_CALL_5| (_ BitVec 32)) (|v_main_~#a~0.offset_BEFORE_CALL_5| (_ BitVec 32))) (and (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) |v_main_~#a~0.offset_BEFORE_CALL_5|) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) (bvadd |v_main_~#a~0.offset_BEFORE_CALL_5| (_ bv8 32))) (_ bv2 32)))))} ~cond := #in~cond; {7663#(exists ((|v_main_~#a~0.base_BEFORE_CALL_5| (_ BitVec 32)) (|v_main_~#a~0.offset_BEFORE_CALL_5| (_ BitVec 32))) (and (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) |v_main_~#a~0.offset_BEFORE_CALL_5|) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) (bvadd |v_main_~#a~0.offset_BEFORE_CALL_5| (_ bv8 32))) (_ bv2 32)))))} is VALID [2018-11-23 10:34:41,514 INFO L273 TraceCheckUtils]: 31: Hoare triple {7663#(exists ((|v_main_~#a~0.base_BEFORE_CALL_5| (_ BitVec 32)) (|v_main_~#a~0.offset_BEFORE_CALL_5| (_ BitVec 32))) (and (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) |v_main_~#a~0.offset_BEFORE_CALL_5|) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) (bvadd |v_main_~#a~0.offset_BEFORE_CALL_5| (_ bv8 32))) (_ bv2 32)))))} assume !(0bv32 == ~cond); {7663#(exists ((|v_main_~#a~0.base_BEFORE_CALL_5| (_ BitVec 32)) (|v_main_~#a~0.offset_BEFORE_CALL_5| (_ BitVec 32))) (and (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) |v_main_~#a~0.offset_BEFORE_CALL_5|) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) (bvadd |v_main_~#a~0.offset_BEFORE_CALL_5| (_ bv8 32))) (_ bv2 32)))))} is VALID [2018-11-23 10:34:41,515 INFO L273 TraceCheckUtils]: 32: Hoare triple {7663#(exists ((|v_main_~#a~0.base_BEFORE_CALL_5| (_ BitVec 32)) (|v_main_~#a~0.offset_BEFORE_CALL_5| (_ BitVec 32))) (and (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) |v_main_~#a~0.offset_BEFORE_CALL_5|) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) (bvadd |v_main_~#a~0.offset_BEFORE_CALL_5| (_ bv8 32))) (_ bv2 32)))))} assume true; {7663#(exists ((|v_main_~#a~0.base_BEFORE_CALL_5| (_ BitVec 32)) (|v_main_~#a~0.offset_BEFORE_CALL_5| (_ BitVec 32))) (and (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) |v_main_~#a~0.offset_BEFORE_CALL_5|) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) (bvadd |v_main_~#a~0.offset_BEFORE_CALL_5| (_ bv8 32))) (_ bv2 32)))))} is VALID [2018-11-23 10:34:41,516 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {7663#(exists ((|v_main_~#a~0.base_BEFORE_CALL_5| (_ BitVec 32)) (|v_main_~#a~0.offset_BEFORE_CALL_5| (_ BitVec 32))) (and (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) |v_main_~#a~0.offset_BEFORE_CALL_5|) (_ bv0 32)) (not (bvsgt (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_5|) (bvadd |v_main_~#a~0.offset_BEFORE_CALL_5| (_ bv8 32))) (_ bv2 32)))))} {7682#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} #76#return; {7682#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:34:41,516 INFO L273 TraceCheckUtils]: 34: Hoare triple {7682#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} havoc #t~mem6; {7682#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} is VALID [2018-11-23 10:34:41,517 INFO L273 TraceCheckUtils]: 35: Hoare triple {7682#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= (bvadd main_~i~0 (_ bv4294967295 32)) (_ bv0 32)))} #t~post5 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post5);havoc #t~post5; {7707#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= (_ bv2 32) main_~i~0))} is VALID [2018-11-23 10:34:41,520 INFO L273 TraceCheckUtils]: 36: Hoare triple {7707#(and (not (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))) (= (_ bv0 32) (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= (_ bv2 32) main_~i~0))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {7711#(and (not (bvsgt |main_#t~mem6| (_ bv2 32))) (= (_ bv2 32) main_~i~0))} is VALID [2018-11-23 10:34:41,522 INFO L256 TraceCheckUtils]: 37: Hoare triple {7711#(and (not (bvsgt |main_#t~mem6| (_ bv2 32))) (= (_ bv2 32) main_~i~0))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {7715#(= (bvadd |__VERIFIER_assert_#in~cond| (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:34:41,527 INFO L273 TraceCheckUtils]: 38: Hoare triple {7715#(= (bvadd |__VERIFIER_assert_#in~cond| (_ bv4294967295 32)) (_ bv0 32))} ~cond := #in~cond; {7719#(= (bvadd __VERIFIER_assert_~cond (_ bv4294967295 32)) (_ bv0 32))} is VALID [2018-11-23 10:34:41,527 INFO L273 TraceCheckUtils]: 39: Hoare triple {7719#(= (bvadd __VERIFIER_assert_~cond (_ bv4294967295 32)) (_ bv0 32))} assume 0bv32 == ~cond; {7590#false} is VALID [2018-11-23 10:34:41,528 INFO L273 TraceCheckUtils]: 40: Hoare triple {7590#false} assume !false; {7590#false} is VALID [2018-11-23 10:34:41,536 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 0 proven. 19 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 10:34:41,536 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 10:34:44,565 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 47 treesize of output 43 [2018-11-23 10:34:44,632 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 12 [2018-11-23 10:34:44,636 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-0 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 10:34:44,665 INFO L478 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 19 treesize of output 23 [2018-11-23 10:34:44,672 INFO L267 ElimStorePlain]: Start of recursive call 4: 2 dim-0 vars, End of recursive call: 2 dim-0 vars, and 2 xjuncts. [2018-11-23 10:34:44,730 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: 5 dim-0 vars, and 5 xjuncts. [2018-11-23 10:34:44,825 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-2 vars, End of recursive call: 7 dim-0 vars, and 5 xjuncts. [2018-11-23 10:34:44,826 INFO L202 ElimStorePlain]: Needed 4 recursive calls to eliminate 3 variables, input treesize:47, output treesize:92 [2018-11-23 10:34:44,838 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 10:34:44,839 WARN L384 uantifierElimination]: Input elimination task: ∀ [|#memory_int|, |main_~#a~0.base|, |main_~#a~0.offset|]. (let ((.cse1 (bvmul (_ bv8 32) main_~i~0)) (.cse2 (bvmul (_ bv2 32) main_~i~0))) (let ((.cse0 (store (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| .cse1 (_ bv4294967288 32)) (bvadd .cse2 (_ bv4294967294 32))))) (or (bvsle (select .cse0 (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32)) (bvsgt (select .cse0 (bvadd |main_~#a~0.offset| .cse1)) .cse2)))) [2018-11-23 10:34:44,839 WARN L385 uantifierElimination]: ElimStorePlain result: ∀ [|main_~#a~0.offset|, v_prenex_7, v_arrayElimCell_38, v_prenex_6, v_prenex_9, v_arrayElimCell_36, v_prenex_8]. (let ((.cse2 (bvmul (_ bv8 32) main_~i~0)) (.cse0 (bvmul (_ bv2 32) main_~i~0))) (let ((.cse1 (bvsle (bvadd .cse0 (_ bv4294967294 32)) (_ bv2 32))) (.cse3 (= (_ bv16 32) .cse2))) (and (or (bvsgt v_arrayElimCell_38 .cse0) .cse1 (bvsle v_arrayElimCell_38 (_ bv2 32))) (or (= (bvadd |main_~#a~0.offset| .cse2) (bvadd |main_~#a~0.offset| (_ bv8 32))) (bvsgt v_prenex_7 .cse0) .cse3) (or .cse1 (bvsgt v_prenex_6 .cse0) (= (bvadd v_prenex_9 .cse2) (bvadd v_prenex_9 (_ bv8 32)))) (or .cse1 (not .cse3) (bvsgt v_arrayElimCell_36 .cse0)) (or (bvsgt v_prenex_8 .cse0) (bvsle v_prenex_8 (_ bv2 32)) .cse3)))) [2018-11-23 10:34:45,106 WARN L180 SmtUtils]: Spent 123.00 ms on a formula simplification. DAG size of input: 40 DAG size of output: 16 [2018-11-23 10:34:45,123 INFO L273 TraceCheckUtils]: 40: Hoare triple {7590#false} assume !false; {7590#false} is VALID [2018-11-23 10:34:45,123 INFO L273 TraceCheckUtils]: 39: Hoare triple {7729#(not (= (_ bv0 32) __VERIFIER_assert_~cond))} assume 0bv32 == ~cond; {7590#false} is VALID [2018-11-23 10:34:45,124 INFO L273 TraceCheckUtils]: 38: Hoare triple {7733#(not (= |__VERIFIER_assert_#in~cond| (_ bv0 32)))} ~cond := #in~cond; {7729#(not (= (_ bv0 32) __VERIFIER_assert_~cond))} is VALID [2018-11-23 10:34:45,125 INFO L256 TraceCheckUtils]: 37: Hoare triple {7737#(bvsle |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {7733#(not (= |__VERIFIER_assert_#in~cond| (_ bv0 32)))} is VALID [2018-11-23 10:34:45,125 INFO L273 TraceCheckUtils]: 36: Hoare triple {7741#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0))) main_~i~0)} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {7737#(bvsle |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 10:34:47,140 INFO L273 TraceCheckUtils]: 35: Hoare triple {7745#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} #t~post5 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post5);havoc #t~post5; {7741#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0))) main_~i~0)} is UNKNOWN [2018-11-23 10:34:47,140 INFO L273 TraceCheckUtils]: 34: Hoare triple {7745#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} havoc #t~mem6; {7745#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} is VALID [2018-11-23 10:34:47,141 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {7589#true} {7745#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} #76#return; {7745#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} is VALID [2018-11-23 10:34:47,142 INFO L273 TraceCheckUtils]: 32: Hoare triple {7589#true} assume true; {7589#true} is VALID [2018-11-23 10:34:47,142 INFO L273 TraceCheckUtils]: 31: Hoare triple {7589#true} assume !(0bv32 == ~cond); {7589#true} is VALID [2018-11-23 10:34:47,142 INFO L273 TraceCheckUtils]: 30: Hoare triple {7589#true} ~cond := #in~cond; {7589#true} is VALID [2018-11-23 10:34:47,142 INFO L256 TraceCheckUtils]: 29: Hoare triple {7745#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {7589#true} is VALID [2018-11-23 10:34:47,142 INFO L273 TraceCheckUtils]: 28: Hoare triple {7745#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {7745#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} is VALID [2018-11-23 10:34:49,152 INFO L273 TraceCheckUtils]: 27: Hoare triple {7770#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv8 32))) (bvadd main_~i~0 (_ bv2 32)))} #t~post5 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post5);havoc #t~post5; {7745#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv4 32))) (bvadd main_~i~0 (_ bv1 32)))} is UNKNOWN [2018-11-23 10:34:49,153 INFO L273 TraceCheckUtils]: 26: Hoare triple {7770#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv8 32))) (bvadd main_~i~0 (_ bv2 32)))} havoc #t~mem6; {7770#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv8 32))) (bvadd main_~i~0 (_ bv2 32)))} is VALID [2018-11-23 10:34:49,153 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {7589#true} {7770#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv8 32))) (bvadd main_~i~0 (_ bv2 32)))} #76#return; {7770#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv8 32))) (bvadd main_~i~0 (_ bv2 32)))} is VALID [2018-11-23 10:34:49,153 INFO L273 TraceCheckUtils]: 24: Hoare triple {7589#true} assume true; {7589#true} is VALID [2018-11-23 10:34:49,154 INFO L273 TraceCheckUtils]: 23: Hoare triple {7589#true} assume !(0bv32 == ~cond); {7589#true} is VALID [2018-11-23 10:34:49,154 INFO L273 TraceCheckUtils]: 22: Hoare triple {7589#true} ~cond := #in~cond; {7589#true} is VALID [2018-11-23 10:34:49,154 INFO L256 TraceCheckUtils]: 21: Hoare triple {7770#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv8 32))) (bvadd main_~i~0 (_ bv2 32)))} call __VERIFIER_assert((if ~bvsle32(#t~mem6, ~i~0) then 1bv32 else 0bv32)); {7589#true} is VALID [2018-11-23 10:34:49,154 INFO L273 TraceCheckUtils]: 20: Hoare triple {7770#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv8 32))) (bvadd main_~i~0 (_ bv2 32)))} assume !!~bvslt32(~i~0, ~SIZE~0);call #t~mem6 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~i~0)), 4bv32); {7770#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv8 32))) (bvadd main_~i~0 (_ bv2 32)))} is VALID [2018-11-23 10:34:49,155 INFO L273 TraceCheckUtils]: 19: Hoare triple {7795#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))} ~i~0 := 0bv32; {7770#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv4 32) main_~i~0) (_ bv8 32))) (bvadd main_~i~0 (_ bv2 32)))} is VALID [2018-11-23 10:34:49,155 INFO L273 TraceCheckUtils]: 18: Hoare triple {7795#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))} assume !~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32)); {7795#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))} is VALID [2018-11-23 10:34:49,155 INFO L273 TraceCheckUtils]: 17: Hoare triple {7795#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {7795#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))} is VALID [2018-11-23 10:34:49,156 INFO L273 TraceCheckUtils]: 16: Hoare triple {7795#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {7795#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))} is VALID [2018-11-23 10:34:49,156 INFO L273 TraceCheckUtils]: 15: Hoare triple {7795#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {7795#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))} is VALID [2018-11-23 10:34:49,157 INFO L273 TraceCheckUtils]: 14: Hoare triple {7811#(or (bvsgt |main_#t~mem3| (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) (bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32)))} assume !~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3; {7795#(bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32))} is VALID [2018-11-23 10:34:49,175 INFO L273 TraceCheckUtils]: 13: Hoare triple {7815#(or (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) (bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32)))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {7811#(or (bvsgt |main_#t~mem3| (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) (bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32)))} is VALID [2018-11-23 10:34:51,192 INFO L273 TraceCheckUtils]: 12: Hoare triple {7819#(or (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0))) (bvmul (_ bv2 32) main_~i~0)) (bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32)))} #t~post2 := ~i~0;~i~0 := ~bvadd32(1bv32, #t~post2);havoc #t~post2; {7815#(or (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32))) (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32))) (bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32)))} is UNKNOWN [2018-11-23 10:34:51,193 INFO L273 TraceCheckUtils]: 11: Hoare triple {7819#(or (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0))) (bvmul (_ bv2 32) main_~i~0)) (bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32)))} assume !~bvsgt32(#t~mem4, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32));havoc #t~mem4; {7819#(or (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0))) (bvmul (_ bv2 32) main_~i~0)) (bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32)))} is VALID [2018-11-23 10:34:51,194 INFO L273 TraceCheckUtils]: 10: Hoare triple {7819#(or (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0))) (bvmul (_ bv2 32) main_~i~0)) (bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32)))} call #t~mem4 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 1bv32))), 4bv32); {7819#(or (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0))) (bvmul (_ bv2 32) main_~i~0)) (bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32)))} is VALID [2018-11-23 10:34:53,197 INFO L273 TraceCheckUtils]: 9: Hoare triple {7829#(and (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)) (_ bv2 32)) (or (= (bvadd (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (_ bv0 32)) (= (_ bv16 32) (bvmul (_ bv8 32) main_~i~0))))} assume ~bvsgt32(#t~mem3, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32));havoc #t~mem3;call write~intINTTYPE4(~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32), ~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {7819#(or (bvsgt (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (bvmul (_ bv8 32) main_~i~0))) (bvmul (_ bv2 32) main_~i~0)) (bvsle (select (select |#memory_int| |main_~#a~0.base|) (bvadd |main_~#a~0.offset| (_ bv8 32))) (_ bv2 32)))} is UNKNOWN [2018-11-23 10:34:53,198 INFO L273 TraceCheckUtils]: 8: Hoare triple {7829#(and (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)) (_ bv2 32)) (or (= (bvadd (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (_ bv0 32)) (= (_ bv16 32) (bvmul (_ bv8 32) main_~i~0))))} assume !!~bvsle32(~i~0, ~bvsdiv32(~SIZE~0, 2bv32));call #t~mem3 := read~intINTTYPE4(~#a~0.base, ~bvadd32(~#a~0.offset, ~bvmul32(4bv32, ~bvsub32(~bvmul32(2bv32, ~i~0), 2bv32))), 4bv32); {7829#(and (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)) (_ bv2 32)) (or (= (bvadd (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (_ bv0 32)) (= (_ bv16 32) (bvmul (_ bv8 32) main_~i~0))))} is VALID [2018-11-23 10:34:53,199 INFO L273 TraceCheckUtils]: 7: Hoare triple {7589#true} assume !(0bv32 != ~bvsrem32(~SIZE~0, 2bv32));assume 0bv32 != (if 0bv32 == ~bvsrem32(~SIZE~0, 2bv32) then 1bv32 else 0bv32);~i~0 := 1bv32; {7829#(and (bvsle (bvadd (bvmul (_ bv2 32) main_~i~0) (_ bv4294967294 32)) (_ bv2 32)) (or (= (bvadd (bvmul (_ bv8 32) main_~i~0) (_ bv4294967288 32)) (_ bv0 32)) (= (_ bv16 32) (bvmul (_ bv8 32) main_~i~0))))} is VALID [2018-11-23 10:34:53,199 INFO L273 TraceCheckUtils]: 6: Hoare triple {7589#true} assume ~bvsgt32(~SIZE~0, 1bv32);havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~bvmul32(4bv32, ~SIZE~0)); {7589#true} is VALID [2018-11-23 10:34:53,199 INFO L273 TraceCheckUtils]: 5: Hoare triple {7589#true} ~SIZE~0 := #t~nondet1;havoc #t~nondet1; {7589#true} is VALID [2018-11-23 10:34:53,199 INFO L256 TraceCheckUtils]: 4: Hoare triple {7589#true} call #t~ret7 := main(); {7589#true} is VALID [2018-11-23 10:34:53,199 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {7589#true} {7589#true} #72#return; {7589#true} is VALID [2018-11-23 10:34:53,199 INFO L273 TraceCheckUtils]: 2: Hoare triple {7589#true} assume true; {7589#true} is VALID [2018-11-23 10:34:53,199 INFO L273 TraceCheckUtils]: 1: Hoare triple {7589#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];~SIZE~0 := 0bv32; {7589#true} is VALID [2018-11-23 10:34:53,200 INFO L256 TraceCheckUtils]: 0: Hoare triple {7589#true} call ULTIMATE.init(); {7589#true} is VALID [2018-11-23 10:34:53,203 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 8 proven. 11 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 10:34:53,204 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 10:34:53,205 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 13] total 25 [2018-11-23 10:34:53,205 INFO L78 Accepts]: Start accepts. Automaton has 25 states. Word has length 41 [2018-11-23 10:34:53,205 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 10:34:53,205 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 25 states. [2018-11-23 10:35:03,541 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 68 edges. 63 inductive. 0 not inductive. 5 times theorem prover too weak to decide inductivity. [2018-11-23 10:35:03,541 INFO L459 AbstractCegarLoop]: Interpolant automaton has 25 states [2018-11-23 10:35:03,541 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 25 interpolants. [2018-11-23 10:35:03,542 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=97, Invalid=502, Unknown=1, NotChecked=0, Total=600 [2018-11-23 10:35:03,542 INFO L87 Difference]: Start difference. First operand 250 states and 340 transitions. Second operand 25 states. [2018-11-23 10:35:17,607 WARN L180 SmtUtils]: Spent 2.03 s on a formula simplification. DAG size of input: 27 DAG size of output: 17 [2018-11-23 10:35:25,775 WARN L180 SmtUtils]: Spent 105.00 ms on a formula simplification that was a NOOP. DAG size: 30 [2018-11-23 10:35:53,387 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 10:35:53,388 INFO L93 Difference]: Finished difference Result 385 states and 500 transitions. [2018-11-23 10:35:53,388 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 33 states. [2018-11-23 10:35:53,388 INFO L78 Accepts]: Start accepts. Automaton has 25 states. Word has length 41 [2018-11-23 10:35:53,388 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 10:35:53,389 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 25 states. [2018-11-23 10:35:53,391 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 136 transitions. [2018-11-23 10:35:53,391 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 25 states. [2018-11-23 10:35:53,393 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 136 transitions. [2018-11-23 10:35:53,393 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 33 states and 136 transitions. [2018-11-23 10:36:10,161 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 136 edges. 128 inductive. 0 not inductive. 8 times theorem prover too weak to decide inductivity. [2018-11-23 10:36:10,172 INFO L225 Difference]: With dead ends: 385 [2018-11-23 10:36:10,172 INFO L226 Difference]: Without dead ends: 383 [2018-11-23 10:36:10,173 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 102 GetRequests, 56 SyntacticMatches, 4 SemanticMatches, 42 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 415 ImplicationChecksByTransitivity, 13.4s TimeCoverageRelationStatistics Valid=289, Invalid=1599, Unknown=4, NotChecked=0, Total=1892 [2018-11-23 10:36:10,174 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 383 states.